아두이노프로세싱 프로그래밍

초보자를 위한 라즈베리 파이 3 스위치 INPUT PULL UP DOWN 파이선 코딩

coding art 2017. 5. 25. 14:16
728x90


라즈베리의 외부 PULL UP 저항을 제거하면 배선도가 그림과 같이 간단해진다.


만약 이 배선이 제대로 동작한다면 스위치 OFF 일 때 라즈베리 내부적으로 이 디지털 핀을 HIGH 로 인식할 것이고 스위치 on 이면 입력이 GND와 같아져야 하므로  즉 LOW 가 되어야 할 것이다.


즉 라즈베리 내부에 PULL UP 저항이 숨겨져 있는 양상이다.

이와같이 라즈베리 내부에 PULL UP 저항이 숨겨져 있는 경우에 대해서 기존의 INPUT 코딩 즉 BUTTON_SW_01.PY를 변경 실행해 보도록 하자.




GPIO.setup(2,GPIO.IN) 을 다음과 같이 변경하자.
GPIO.setup(2,GPIO.IN,pull_up_down=GPIO.PUD_UP)

코드를 실행 시키면 스위치가 OFF 되어 있는 상태이므로 내부의 PULL UP 저항이 작동하여 INPUT 이 HIGH 로 설정된다. 반면에 스위치를 누르면 입력이 전압이 0V인 GND에 연결되므로 LOW 가 설정된다.


아직 HIGH 또는 LOW에 대한 그래픽 확인 전까지는 바운싱 현상에 대해 판단하기는 어렵다. 하지만  외부에 PULL UP  저항을 설치할 경우 아두이노 실험에 비해서 상대적으로 바운싱 효과가 대단히 적다고 느껴진다.













파이선 실행 모니터링 결과이다.  출력 결과
가 대단히 안정적이었다.













그림의 PULL DOWN 배선도를 참조하자. PULL DOWN  경우에는 스위치를 누르지 않은 상태에서 LOW 이며 스위치를 누르면 HIGH 가 된다. 해당하는 코드는 다음과 같이 변경하면 된다.



GPIO.setup(2,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)