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입니다. 핀이 완전히 분리하면, 그것은 무작위로 읽 HIGH와 LOW. 당신은 + 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.