Thinking Different




푸시버튼은 버튼을 누르는 동안 HIGH 값을 가지며 뗄 때 LOW 값을 갖습니다. 푸시버튼은 일반적으로 네 개의 단자(Terminal)로 구성되며 두 단자간 서로 연결되어 있습니다. 따라서 하나의 단자가 끊어지거나 고장이 나더라도 다른 단자로 충분히 동작 가능합니다.

 

푸시버튼

 

 

푸시버튼 작동구조는 아래 사진과 같이 1-3 이 붙어있으며, 2-4번이 붙어있습니다. 푸시버튼을 누르고 있으면 1-3과 2-4번이 연결되게 됩니다.  푸시버튼을 눌렀을 경우 회로가 영어 대문자 'H'  가 되는거라고 생각하시면 됩니다.

 

푸시버튼 구조

 

1. 버튼 누름 상태시에 LED 점등하기

 

준비물

 

아두이노 우노, LED x 1, 220Ω 저항 x 1, 10kΩ 저항 x 1, 점프선 등

 

푸시버튼 회로

 

푸시버튼 회로에서 버튼의 GND 회로 사이에 10kΩ 저항을 연결하게 됩니다. 이는 아두이노의 전원이 쇼트되는 것을 방지하는 목적으로 구성합니다.

 

 

 

코드

 

코드는 이전 예제인 기울기센서에 사용된 예제와 동일합니다.

 

 

결과

 

 

 

 

 

 


 

 

 

2. PUSH 스위치를 일반 ON / OFF 스위치처럼 작동시키기

 

푸시버튼은 누르고 있는 동안 ON 되고 떼면 OFF로 원래의 상태로 되돌아가는 특성을 가지게 됩니다.

일반적인 거실이나 방의 등 스위치처럼 한번 누르면 켜지고, 다시 한번 누르면 꺼지게 되도록 기능을 구현해보도록 하겠습니다.

일반적인 PUSH 스위치로는 구현이 불가능한 기능을 코드를 통해서 제어가 가능하게 할 수 있습니다.

 

회로는 위 구성 회로와 똑같으며, 코드만 수정합니다.

 

 

코드

 

PUSH 스위치를 ON/OFF 스위치로 변경하기

 

 

가장 중요한 부분은 상태값을 저장하는 전역 변수가 필요합니다. 현재 상태의 값을 저장하기 위한 변수인데, 쉽게 말해서 이 변수를 활용하여 ON/OFF 의 스위치 기능을 구분하는 것입니다.

 

버튼이 눌러진 상태값을 확인해서 LED가 켜진 상태에 따라 켜짐, 꺼짐을 반복하게 됩니다.

 

어려운 코드가 아니므로 한줄씩 해석해서 알고리즘을 이해해 보시기 바랍니다. 전부 다 설명을 드리면 코드 카피밖에 되지 않아서 공부가 되지 않겠죠.

 

 

 

결과