-
버튼 제어Arduino/Button 2020. 10. 21. 17:54
버튼을 아두이노와 연결해보자.
버튼의 입력핀은 11번핀을 사용한다.
저항은 10k이고, 흰색선은 5V에 연결되고, 노란선은 GND에 연결되고
붉은선은 11번핀에 연결되었다.
연결이 다 되어으면, 버튼이 눌렸거나 떼졌을 때를 판단하는 프로그램을 작성해보자.
아래의 소스를 실행해보자.
소스 코드
더보기// 버튼이 눌리면 1을, 그렇지 않으면 0이 출력되는 예제 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(11,INPUT); // 1번 핀은 입/출력이 다 되는 핀이다. } void loop() { // put your main code here, to run repeatedly: Serial.println(digitalRead(11)); delay(100); }
버튼과 LED의 연결해서, 버튼이 눌리면 LED가 켜지고 버튼이 안 눌리면 LED가 꺼지는 예제
아래는 하드웨어를 연결한 그림이다.
소스는 두 가지인데, 마음에 드는 것을 선택하면 된다. 로직은 서로 같다.
소스 코드1
더보기// 버튼이 눌림에 따라 LED on/off void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(11,INPUT); // 1번 핀은 입/출력이 다 되는 핀이다. pinMode(3,OUTPUT); // 3번핀을 LED핀으로 설정 } void loop() { // put your main code here, to run repeatedly: int btn = digitalRead(11); digitalWrite(3,btn); delay(100); }
소스 코드2
더보기// 버튼이 눌림에 따라 LED on/off void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(11,INPUT); // 1번 핀은 입/출력이 다 되는 핀이다. pinMode(3,OUTPUT); // 3번핀을 LED핀으로 설정 } void loop() { // put your main code here, to run repeatedly: Serial.println(digitalRead(11)); // 버튼이 눌리면, LED on. if (digitalRead(11) == HIGH) digitalWrite(3,HIGH); // 버튼이 떼지면, LED off. else digitalWrite(3,LOW); delay(100); }
버튼을 누르고 있었던 시간 구하기
아래의 그림은 하드웨어 연결이다.
micros(}, millis() 함수를 이용하면 된다.
더보기// 버튼을 누른 시간 구하기 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(11,INPUT); // 1번 핀은 입/출력이 다 되는 핀이다. } double startTime; // 버튼을 누른 시각 double endTime; // 버튼을 뗀 시각 void loop() { // put your main code here, to run repeatedly: // Serial.println(millis()/1000); // 1초 if (digitalRead(11)) { startTime = millis(); // 시간을 밀리second 단위로 가지고 옴 while (1) { if (digitalRead(11) == LOW) { endTime = millis(); break; } } double t = endTime - startTime; // 두 차가 버튼을 누르고 있던 시간 간격 Serial.println(t / 1000); // 밀리secnd를 second로 환산 } }
'Arduino > Button' 카테고리의 다른 글
버튼과 인터럽트 (0) 2020.10.23 시간 간격을 통해 버튼을 누를 때마다 LED를 깜빡이게 하기 (0) 2020.10.22 시간 간격을 통해 버튼을 누를 때마다 LED를 반전 (0) 2020.10.22 Pull down & Pull up 저항 (0) 2020.10.22 버튼 누른 회수 구하기 (0) 2020.10.22