Mechanic 공방

12. 풀업 저항, 풀다운 저항 (플로팅 현상) 본문

아두이노 (Arduino)

12. 풀업 저항, 풀다운 저항 (플로팅 현상)

H-Mechanic 2020. 7. 25. 08:45
728x90
반응형

저번 포스팅에서 버튼을 사용한 아두이노 LED 예제에 대하여 실습을 해보았다.

 

사용한 버튼의 경우, 누르는 동작으로 회로가 연결되어 on/off 신호를 조절할 수 있는 부품이다.

 

이렇게 디지털 신호를 사용한 스위치(혹은 버튼)를 사용할 때에는 아래와 같이 두 가지의 형태로 구현이 가능하게 되는데, 각 경우마다 특정 현상이 발생하게 된다.

 

1. 전원부에 스위치를 연결한 경우

위와 같이 전원부에 스위치를 연결한 경우, 스위치를 on 하게 되면 MCU에는 5VHIGH 신호가 입력되게 된다.

 

하지만, 스위치를 off 하게 되면 MCU에서는 0VLOW 신호인지를 판단할 길이 없기 때문에 스위치 off를 제대로 인식할 수 없게 된다.

 

2. 접지부에 스위치를 연결한 경우

위와 같이 GND에 스위치를 연결한 경우, 스위치를 on 하게 되면 MCU에는 0VLOW값 신호가 입력된다.

 

하지만, 스위치를 off하게 되면 위와 동일한 현상이 발생하게 되어 MCU는 스위치 off를 인식할 수 없게 된다.

 

위와 같은 현상을 '플로팅 현상'이라고 한다.

 

'플로팅 현상'이란, 신호가 뜨게 되어 HIGH 인지 LOW 인지 인식하지 못한다는 것을 의미한다.

 

이와 같은 현상을 해결하기 위해서는 Pull-up 저항과 Pull-down 저항이 필요하다.

 

1. 풀업(Pull-up) 저항

접지부에 스위치를 연결한 경우에 Floating 현상을 제거하기 위한 방법이다.

 

아래와 같이 전원부에 저항을 연결하여 pull-up 저항을 구현하게 된다.

위와 같이 회로를 구성하게 되면, 스위치 on 시에는 정상적으로 0VLOW 값을 인식하게 되고 스위치 off 시에는 전원부에 연결된 회로에 의해 5VHIGH 값을 인식하게 되는 것이다.

 

2. 풀다운(Pull-down) 저항

전원부에 스위치를 연결한 경우에 Floating 현상을 제거하기 위한 방법이다.

 

아래와 같이 GND에 저항을 연결하여 pull-down 저항을 구현하게 된다.

위와 같이 회로를 구성하게 되면, 스위치 on 시에는 정상적으로 5VHIGH 값을 인식하게 되고 스위치 off 시에는 GND에 연결된 회로에 의해 0VLOW 값을 인식하게 되는 것이다.

 

이렇게 회로 상에서 일어나는 현상을 방지하기 위해 회로적으로 보완하는 방법이 풀업, 풀다운 저항이다.

728x90
반응형