BASIC4MCU | 질문게시판 | 버튼과 led 제어 질문있습니다..
페이지 정보
작성자 지우개 작성일2020-12-21 00:37 조회131회 댓글3건본문
밑에 코드에서 while문(다른 조건문이나 반복문포함)을 넣었을 때 스위치(2번째 눌렀을 때)가 안꺼집니다.
단독으로 digitalWrite(LED, HIGH);만 주면 잘 작동이 되는데말이죠..
제가 스위치 버튼은 없고 푸시 버튼 뿐입니다.. 가능하다면 푸시버튼으로 부탁드립니다ㅠㅠㅠ
뭐가 문제인지 알려주시면 감사하겠습니다.
int LED = 3;
int BUTTON = 2;
int val= 0;
int old_val = 0;
int state = 0;
void setup()
{
pinMode(BUTTON,INPUT);
pinMode(LED,OUTPUT);
}
void loop()
{
val = digitalRead(BUTTON);
if((val==HIGH)&&(old_val==LOW))
{
state = 1-state;
delay(50);
}
old_val = val;
if(state == 1)
{
while(true){
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
}
else
{
digitalWrite(LED,LOW);
}
}
댓글 3
조회수 131master님의 댓글
master 작성일
while(true){ digitalWrite(LED, HIGH); delay(1000); digitalWrite(LED, LOW); delay(1000); }
무한루프를 사용하면 다른 코드가 동작하지 않습니다.
지우개님의 댓글
지우개
감사합니다! 답변 많이 도움이 되었어요
master님의 댓글
master 작성일
void loop(){
val=digitalRead(BUTTON);
if((val==1)&&(old_val==0)){
state^=1;
if(state)digitalWrite(LED,1);
else digitalWrite(LED,0);
delay(50);
}
old_val=val;
}