본문 바로가기

Arduino/Arduino 기초과정

[아두이노 기초편 3] 버튼 사용 + 가변저항

아두이노로 무엇인가를 입력시킬때 가장 기초로 보편적으로 사용하는 스위치(버튼)과 가변저항을 사용하는 방법에 대하여 알아보려한다. 


먼저 버튼을 다루어보려고 한다. 버튼을  사용하기 위해서는 풀업 저항과 풀다운 저항이라는 개념을 먼저 익혀야 하므로 풀업과 풀다운 저항에 대해 보자 .버튼이나  스위치  등의  전자적인  접촉이  발생하는  장치의  외부  입력을  받기 위해서는  digitalRead함수를 사용하여 그 상태를 알 수 있게 된다. 저항을 연결하지 않고 스위치의 입력을 그대로 받아서 처리하는 경우 그 값은 일정하지 않은 상태를 나타내게 되며 이는 회로의 불안전한 동작을 유발시키게  된다.  이러한  문제점을  방지하기  위하여  다음과  같은  풀업저항과  풀다운  저항을  연결하는 기법을 사용하는 것이다.


풀업 풀다운 저항에 대하여 알아보았으니 스위치의 구조도 확인해보자.

우리가 사용할 스위치는 위에 A와 D, B와 C가 연결되어있는 구조이고 버튼을 누르는 경우 두개가 연결되면서 신호를 보내는 형태를 취하고있다.


버튼의 구조와 풀업/풀다운 저항을 배웠으므로  이제 회로를 구성해서 가장간단한 LED를 켜보려고 한다.

이런식으로 회로를 구성하면 되는데 풀디운 저항에는 2k옴처럼 큰 저항을 연결하고 led저항에는 220옴을 연결하는 점을 유의하자.


회로를 구성하였으므로 코드를 보자.

이렇게 간단한 코드로 나타낼수있다.


지금까지 버튼의 구조와 회로를 구성하는 법과 사용하는 예제까지 전부 돠루어보았다.


지금부터 입력을 다른 방식으로 해줄수있는 가변저항에 대하여 알아보자.가변저항은 스위치와는 달리 digital입력이 아니라 analog입력에 해당된다.연속적으로 변하는 형태의 값인 아날로그 값을 읽기위해서는 아날로그핀에 연결된 외부 입력으로부터 값을 읽어 들여야 한다.아두이노 Uno는 6채널의 아날로그 입력 포트를 가지고 있으며,10비트의 해상도를 가진다. 아날로그입력 역시 전압의 변화 값으로 읽혀지게 되며 0~5V 사이의 변화 값은 10비트 해상도에 따라 0~1023의 정수 값으로 변환되어 입력이 된다.

이런 아날로그입력의 특징을 이용하기위해 가변저항을 사용하여 아날로그 입력에 따라  LED의 점멸 주기를 변경해 보려한다.


먼저 가변저항이 어떠한 구조를 갖고 있는지 살펴보자.


가변저항은  3개의 핀으로 구성되어 있으며,  R1-R3의 저항은 동일하며 이는 가변 저항 전체의 저항 값이 된다. 보통 중앙에 위치한  2번은 저항을 회전시킴에 따라 일종의 와이퍼가 좌우로 움직여 저항의 변화를 발생시키게 된다. 즉,  R1-R2와  R2-R3의 저항 값들이 변하며 전제 저항의 값은 일정하게 된다.


가변저항을 이용해서 LED의 점멸주기를 바꾸기 위한 회로를 구성하면 다음과 같이 나오게 된다.


이렇게 구성한 회로에서 LED의 점멸주기를 바꾸는 코드를 만들어보자면 이렇다.


이렇게 코드까지 집어넣고 나면 가변저항으로 LED를 제어할수있다.


지금까지 입력의 대표적인 두가지 방법인 Digital과 analog의 입력방법을 간단히 이용한 예제를 보고 연습하였다.지금 배운 내용을 토대로 앞으로 아두이노로 입력을 받을 때 많이 사용해보고 응용할수있는 좋은 예제인것 같다



// 작동 동영상은 추후 업데이트 에정입니다.