Arduino/Button
-
버튼과 인터럽트Arduino/Button 2020. 10. 23. 18:23
버튼이 눌리면, 값을 증가하는 예제 소스 코드 더보기 void setup() { // put your setup code here, to run once: Serial.begin(9600); // 2번핀이 0번 인터럽트를 의미한다. // 인터럽트는 2번핀과 3번핀에만 적용된다. pinMode(2,INPUT_PULLUP); // 인터럽트(CHANGE, FALLING, RISING,LOW) attachInterrupt(0,func, CHANGE); // 인터럽트 발생 시키는 함수. 0번째 인터럽트 // 인터럽트는 2개만 발생가능 0과1 // CHANGE상태일때 인터럽트 발생(값이 바뀔 때) // 인터럽트 시,func 함수 호출 } int cnt = 0; void loop() { // put your main..
-
시간 간격을 통해 버튼을 누를 때마다 LED를 깜빡이게 하기Arduino/Button 2020. 10. 22. 18:49
아래의 내용을 이용해서 구현한다. designatedroom87.tistory.com/220 시간 간격을 통해 버튼을 누를 때마다 LED를 반전 하드웨어를 다음과 같이 구성한다. 내부적으로 풀업 저항으로 세팅을 한다. 버튼을 누르자마자 반응을 하기 보다는, 버튼을 누른 적정 시간이 지나야 버튼을 누른 것으로 판정을 하도록 한다 designatedroom87.tistory.com 소스 코드 // 버튼 // const int pin_switch = 2; // 4번핀 스위치 const int button_interval = 500; // 버튼 반응 속도 0.5초 long button_pressed_millis; // 버튼 눌러진 시간을 밀리초로 저장하기 위한 변수 // LED // const int pin_L..
-
시간 간격을 통해 버튼을 누를 때마다 LED를 반전Arduino/Button 2020. 10. 22. 18:34
하드웨어를 다음과 같이 구성한다. 내부적으로 풀업 저항으로 세팅을 한다. 버튼을 누르자마자 반응을 하기 보다는, 버튼을 누른 적정 시간이 지나야 버튼을 누른 것으로 판정을 하도록 한다. 소스 코드 // 버튼을 누를 때마다 LED가 반전된다. // 내부적으로 풀업 저항으로 세팅을 한다. // 버튼 // const int pin_switch = 7; // 7번핀 스위치 const int button_interval = 500; // 버튼 반응 속도 0.5초 long button_pressed_millis; // 버튼 눌러진 시간을 밀리초로 저장하기 위한 변수 // LED // const int pin_LED = 13; // 13번핀 LED 출력 // 시간 // long current_millis; // 현재..
-
Pull down & Pull up 저항Arduino/Button 2020. 10. 22. 18:17
풀다운 저항 풀다운 저항은 출력 지점을 기준으로 저항이 아래에 위치하면 풀다운 저항이다. 사용목적은 플로팅 상태 방지이다. 버튼이 OFF이면 출력값은 0이다. 버튼이 ON이면 출력값은 1이다. 풀업 저항 출력지점을 기준으로 저항이 위에 위치하면 풀업 사용목적은 플로팅 상태 방지이다. 버튼 OFF시 출력값은 1이다. 버튼 ON시 출력값은 0이다. 소스 코드 더보기 const int BUTTON_PIN = 7; // 버튼을 아두이노의 7번핀과 연결 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(BUTTON_PIN,INPUT); } void loop() { // put your main code here,..
-
버튼 누른 회수 구하기Arduino/Button 2020. 10. 22. 18:01
소스 코드 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(7,INPUT); } int count = 0; // 버튼을 누른 회수 void loop() { // 버튼이 눌렸을 때 if (digitalRead(7) == HIGH) { while (1) { if (digitalRead(7) == LOW) { Serial.println(count++); delay(100); break; } } } } 소스 코드 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(7,INPUT); } int count = 0;..
-
버튼 제어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.print..