아두이노 내부 풀업 저항 사용하기

원문 : 아두이노 공식 홈페이지 http://arduino.cc/en/Tutorial/InputPullupSerial#.UwLY0GJ_uKI

 

1. 아두이노 내부 풀업 저항

이 예제에서는 pinMode() 함수에 INPUT_PULLUP 파라미터를 사용해서 내부 풀업 저항을 사용하는 방법을 설명합니다. 아두이노 내부 풀업 저항을 사용하면 저항 없이도 간편하게 버튼을 연결할 수 있습니다. 아두이노 공식 홈페이지에서 소개하는 예제를 번역했습니다. 사용자가 버튼을 누르면 Serial 통신으로 PC로 상태 값을 전송하며 아두이노 보드에 내장된 LED (13번 핀에 연결된) 를 on/off 시킵니다.

 

2. 연결방법

버튼의 다리 한 쪽은 아두이노 디지털 2번 핀에 연결하고 나머지 한 쪽은 GND 핀에 연결합니다. 이걸로 준비는 끝.

풀업 저항을 직접 만들어서 사용하는 경우 VCC와 버튼 사이에 저항을 넣고, 저항과 버튼 사이에서 선을 빼서 2번 핀으로 연결하는 형태가 됩니다. 여기서는 단순하게 2번 핀 – 스위치 – GND 로 연결하는 대신 2번 핀 내부의 풀업 저항을 활성화 시킵니다.

버튼을 누르지 않은 상태(open 상태) 에서는 2번 핀 내부의 풀업 저항이 활성화 되면서 5V로 연결됩니다. 따라서 2번 핀의 값을 읽으면 HIGH 값을 읽을 수 있습니다.

버튼을 누를 경우 2번 핀과 GND의 연결이 종료되는 효과가 생기므로 LOW 값을 읽을 수 있습니다.

.

3. 소스 코드 (스케치)

Setup() 함수 내에서 사용하는 코드입니다. 9600 bps 전송속도로 PC와 Serial 연결을 하기 위해 아래 코드를 사용합니다.

Serial.begin(9600);

아래 코드로 디지털 2번 핀의 내부 풀업 저항을 활성화 할 수 있습니다.

pinMode(2,INPUT_PULLUP);

아두이노 보드 내장 LED를 제어하기 위해 13번 핀 사용을 선언합니다.

pinMode(13, OUTPUT);

이제 메인 루프 함수에서 처리하는 내용들입니다.

2번 핀과 연결된 버튼 상태를 읽는 부분입니다.

int sensorValue = digitalRead(2);

아래는 Serial 통신으로 데이터를 PC로 전송하는 부분. 버튼을 누른 상태이면 0, 버튼에서 손을 뗀 상태이면 1 이 전송됩니다.

Serial.println(sensorValue, DEC);

아래 코드로 버튼 상태에 따라 LED 를 on/off 시킵니다.

    digitalWrite(13, LOW);
digitalWrite(13, HIGH);

 

Post Author: TORTUGA

TORTUGA
궁금하신 점은 새로 개편한 홈페이지의 QnA 게시판을 이용해주세요!!!!!!! http://www.hardcopyworld.com/gnuboard5/bbs/board.php?bo_table=qna

댓글 남기기

이메일은 공개되지 않습니다.