<목표>
- 아두이노에서 스위치 상태를 digitalRead() 함수를 통해 읽은 후, LED를 digitalWrite() 함수를 통해 제어한다.
<준비물>
- 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 브레드보드, led, 저항 1~2개, 버튼(택트스위치)
<회로도>
led에 원래 저항을 연결해주는것이 원칙이지만, 백색 led를 사용하는 경우에는 위와같이 간단하게 테스트해 볼 수 있다.
또한 스위치에 연결되어 있는 저항은 아무 저항이나 사용하면 된다.
<코드>
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
코드는 아두이노 - 파일 - 예제 - 02.Digital - Button 의 예제 파일과 동일 합니다.
예제파일을 쓰셔도 되고, 위의 코드를 복사하여 붙여넣으셔도 됩니다.
<실행 결과>
버튼이 눌려지면 LED가 켜지는 것을 확인할 수 있었다.
버튼이 눌리면 신호가 HIGH 로 받아들여지게 되고, 조건문을 통해서 신호가 HIGH일 때, LED핀에 5V 출력을 발생시킨다.
아두이노 코드 중 새로운 함수가 없고, 코드 내용 역시 앞에서 했던 것들을 참고하면 문제없을 수준이어서 코드 설명은 생략하도록 한다.
위와 같은 버튼을 읽는 방법으로 여러개의 센서들을 제어할 수 있다.
여태까지 강의를 따라왔다면 스위치에 저항을 같이 구성하는 pull-down 저항에 귀찮거나 번거로움을 많이 느꼈을 것이라 본다.
다음 강의에는 pull-up 저항을 이용해서 저항없이 깔끔하게 버튼의 상태를 읽을 수 있는 예제를 소개하고자 한다.
실전에서도 pull-down 회로보다는 pull-up 회로를 많이 이용한다는 측면에서 매우 유익한 내용이다.
※ 궁금하시거나 질문사항이 있으시면 댓글로 작성해주시면 답변해 드릴 수 있는 부분에서 친절히 답변드리겠습니다!
'코딩 > 아두이노' 카테고리의 다른 글
[아두이노 강좌] 예제로 배우는 아두이노 #8 timer interrupt() 사용법, delay 없이 LED 제어하기 (4) | 2020.03.30 |
---|---|
[아두이노 강좌] 예제로 배우는 아두이노 #7 DigitalInputPullup, 아두이노 내장 pullup 저항 이용하기 (2) | 2020.03.27 |
[아두이노 강좌] 예제로 배우는 아두이노 #5 analogWrite( ), 아두이노로 pwm 출력하기 (0) | 2020.03.25 |
[아두이노 강좌] 예제로 배우는 아두이노 #4 ReadAnalogVoltage, 아두이노로 전압측정하기 (2) | 2020.03.25 |
[아두이노 강좌] 예제로 배우는 아두이노 #3 analogRead()사용법 (0) | 2020.03.25 |
댓글