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


24

새로운 아두 이노에, 하나는 세 가지 상태 중 하나에 pinMode를 설정할 수 있습니다 OUTPUT, INPUT하고 INPUT_PULLUP.

이 페이지 는 말합니다 :

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

오히려 행동을 반전시키는 것이 유일한 행동은 아니라고 확신합니다.

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


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

답변:


23

기본값은 INPUT핀을로 설정하는 것 INPUT입니다. 핀이 완전히 분리하면, 그것은 무작위로 읽 HIGHLOW. 당신은 + 5V 또는 0V에 넥타이 경우, 분명히 읽 HIGH거나 LOW.

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

풀다운이 아닌 풀업 인 이유는 무엇입니까? 여러 가지 이유가있을 수 있지만, 버튼이나 스위치 또는 "정상적으로 열려있는"배선을 접지에 연결하면 + 5V를 실행할 필요가 없습니다. 어쨌든 대부분의 보드는 차폐 이유로 큰 접지 타설로 설계 될 것이기 때문에 접지와의 결합은 실질적인 이유입니다.

ARM 칩과 같은 일부 주요 IC에는 풀업 및 풀다운이 모두 있지만 8 비트 AVR 라인에는 풀업 만 제공됩니다. HIGH"open"이고 LOW"closed" 라는 것을 기억해야 합니다.


공감. 참고로 문서에 따르면 내부 풀업은 20K이지만 50K와 크게 다르지 않습니다. arduino.cc/en/Tutorial/DigitalPins
SDsolar

9

1.0.1 이전 버전에서는을 사용하여 풀업을 켤 수 있습니다 digitalWrite(). 그리고 여전히 할 수 있습니다.

코드:

pinMode(13, INPUT);
digitalWrite(13, HIGH); // Turns internal pull-up on
digitalWrite(13, LOW);  // Turns internal pull-up off

INPUT_PULLUP풀업 저항을 분명히 켜기 때문에 이것은 중요한 차이점 입니다. 그러나 덜 명백한 것은 1.0.1부터 시작하면 단순히 INPUT풀업을 강제로 끄는 것입니다. 이전에는 풀업 상태가 동일하게 유지되었습니다.

풀업의 유무에 관계없이 핀이 어떻게 작동하는지 보려면 다음 비디오를보십시오.

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

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

풀업에 대한 전체 튜토리얼 비디오 (INPUT_PULLUP이 Arduino 라이브러리에 추가되기 전에이 내용을 확인했습니다)


매우 영리한. 이것을 작성해 주셔서 감사합니다. 공감.
SDsolar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.