BASIC4MCU | 질문게시판 | led하나 스위치 하나로 스위치가 눌릴때마다 변화
페이지 정보
작성자 돌쇠 작성일2022-09-29 11:39 조회4,108회 댓글1건본문
LED하나이고 스위치하나입니다 누를떄마다 변화해야하는데,,혹시 스위치 문이랑 if문 count문 state문으로 해서 만들어야하는데 도와주세요 ㅠㅜ 4번눌르면 1번으로 돌아가는것도요...어렵네요
int LED =13;
int BUTTON =12;
int state = 0;
int BUTTONstate;
int count =0;
void setup() {
pinMode(LED,OUTPUT);
pinMode(BUTTON,INPUT);
}
void loop() {
BUTTONstate = digitalRead(BUTTON);
if(BUTTONstate == HIGH){
if(state == 0){
delay(20);
state = 1;
}
}
if(BUTTONstate == LOW){
if(state == 1) {
(count +=1);
delay(20);
state = 0;
}
}
if(count >=3){
digitalWrite(LED,HIGH);
}
if(count >=6){
digitalWrite(LED,LOW);
delay(100);
digitalWrite(LED,HIGH);
delay(100);
}
}
댓글 1
조회수 4,108master님의 댓글
master 작성일
int LED=13;
int BTN=12;
//
int state=0,BTNstate,count=0;
//
void setup() {
pinMode(LED,OUTPUT);
pinMode(BTN,INPUT);
}
//
void loop() {
BTNstate=digitalRead(BTN);
if(BTNstate==1 && state==0 ){ // 버튼 상승엣지 검출
if(++count>2)count=0; // 버튼 누른 횟수 증가
delay(50); // 채터링 방지용 딜레이
}
else if(BTNstate==0 && state==1 ){ // 버튼 하강엣지 검출
delay(50); // 채터링 방지용 딜레이
}
state=BTNstate;
//--------------------------------------------
if(count==0){ digitalWrite(LED,0); }
if(count==1){ digitalWrite(LED,1); }
if(count==2){ digitalWrite(LED,1); delay(100); digitalWrite(LED,0); delay(100); }
}