INPUT과 INPUT_PULLUP의 차이점은 ' 무엇입니까?

최신 Arduino에서는 pinMode를 세 가지 상태 중 하나로 설정할 수 있습니다. OUTPUT, INPUTINPUT_PULLUP.

이 페이지 내용 :

Arduino의 Atmega 칩에는 액세스 할 수있는 내부 풀업 저항 (내부적으로 전원에 연결되는 저항)이 있습니다. 외부 풀다운 저항 대신 이러한 저항을 사용하려면 pinMode ()에서 INPUT_PULLUP 인수를 사용할 수 있습니다. 이렇게하면 동작이 효과적으로 반전됩니다. 여기서 HIGH는 센서가 꺼져 있고 LOW는 센서가 켜져 있음을 의미합니다.

나는 오히려 동작을 반전시키는 것이 확실합니다. 하지만 그것이하는 유일한 일은 아닙니다.

INPUT_PULLUP는 무엇을합니까? INPUT와 다른 점은 무엇이며 어떤 것을 사용할지 어떻게 결정하나요?

댓글

  • INPUT_PULLUP은 IDE 1.0.1에 추가되었습니다. 사용하는 Arduino 보드와는 무관하며 모두 PULLUP을 지원합니다.

Answer

기본값은 INPUT는 핀을 INPUT로 설정합니다. 핀이 완전히 분리 된 경우 무작위로 HIGHLOW를 읽습니다. + 5V 또는 0V에 연결하면 분명히 HIGH 또는 LOW로 표시됩니다.

Arduino 내부의 Atmega 칩에는 약 20k ohm 값의 내부 풀업 저항이 있습니다. (자세한 내용은 DigitalPins 문서 참조)이 저항은 INPUT_PULLUP를 사용하여 내부적으로 선택적으로 연결할 수 있습니다. 이것은 기능적으로 (및 전기적으로) 핀과 + 5V 사이에 ~ 20k ohm 저항을 연결하는 것과 동일하며, 유일한 차이점은 외부 구성 요소가 필요하지 않으며 프로그램 실행 중에 소프트웨어에서 켜고 끌 수 있다는 것입니다.

그러면 왜 풀다운이 아닌 풀업입니까? 몇 가지 이유가있을 수 있지만, 버튼이나 스위치 또는 “정상적으로 열려있는”항목을 배선 할 때 접지에 연결하기 만하면되며 + 5V를 출력 할 필요가 없습니다. 대부분의 보드는 어쨌든 차폐를 위해 큰 그라운드 타설로 설계 되었기 때문에 그라운드에 묶는 것이 실질적인 이유입니다.

ARM 칩과 같은 더 많은 기능을 갖춘 IC에는 풀업과 풀다운이 모두 있지만 8 비트 AVR 라인에는 풀만 제공됩니다. -ups. HIGH는 “open”이고 LOW는 “closed”임을 기억해야합니다.

설명

답변

이전 1.0.1까지 digitalWrite()를 사용하여 풀업을 켤 수 있습니다. 그래도 가능합니다.

코드 :

이것은 INPUT_PULLUP가 당연히 풀업 저항을 켜기 때문에 중요한 차이점입니다. 그러나 덜 분명한 것은 1.0.1부터 INPUT를 호출하기 만하면 풀업이 강제로 꺼진다는 것입니다. (이전에는 풀업 상태가 동일하게 유지되었습니다).

풀업이 있거나없는 핀이 어떻게 작동하는지 확인하려면 다음 동영상을 시청하세요.

오실로스코프의 플로팅 핀 : http://www.youtube.com/watch?v=dBIBFLYCjMM

풀업 활성화 : http://www.youtube.com/watch?v=SAIw7LLVl-U

풀업에 대한 전체 자습서 비디오 (INPUT_PULLUP이 Arduino 라이브러리에 추가되기 전에 만들었습니다) : http://www.youtube.com/watch?&v=jJnD6LdGmUo

댓글

  • 매우 영리합니다. 이 글을 써 주셔서 감사합니다. 찬성.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다