답변 : While문 코딩질문
페이지 정보
작성자 master 작성일18-06-29 04:30 조회4,994회 댓글0건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-06-29 오전 4:33:49
// by Ok-Hyun Park
//
int led1=13,led2=12;
int sensor1=11,sensor2=10;
//
int mode=0,cnt=0;
//
void setup(){
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(sensor1,INPUT_PULLUP);
pinMode(sensor2,INPUT_PULLUP);
}
//
void loop(){
if(mode==0){
if(digitalRead(sensor1)&&digitalRead(sensor2)){ mode=1; cnt=500; } // 물체가 없으면 모드1로
}
else if(mode==1){
delay(1); if(--cnt==0)mode=2; // 딜레이
}
else if(mode==2){
if(!digitalRead(sensor1)||!digitalRead(sensor2)){ mode=3; }; // 검출 되면 모드3으로
}
else if(mode==3){
if(!digitalRead(sensor1)){ // 1번 센서가 검출되면
digitalWrite(led1,HIGH); digitalWrite(led2,LOW); // LED1 ON,LED2 OFF
}
else{ // 2번 센서가 검출되면
digitalWrite(led1,LOW); digitalWrite(led2,HIGH); // LED1 OFF,LED2 ON
}
mode=4; cnt=500;
}
else if(mode==4){
delay(1); if(--cnt==0)mode=0; // 딜레이
}
//
}
센서1이 검출되고나서
센서2가 검출 될 때에도 센서1의 신호가 계속 검출 상태라면 딜레이가 필요 없습니다.
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-06-29 오전 4:37:57
// by Ok-Hyun Park
//
int led1=13,led2=12;
int sensor1=11,sensor2=10;
//
int mode=0;
//
void setup(){
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(sensor1,INPUT_PULLUP);
pinMode(sensor2,INPUT_PULLUP);
}
//
void loop(){
if(mode==0){
if(digitalRead(sensor1)&&digitalRead(sensor2)){ mode=1; } // 물체가 없으면
}
else if(mode==1){
if(!digitalRead(sensor1)||!digitalRead(sensor2)){ // 검출 되면
if(!digitalRead(sensor1)){ // 1번 센서가 검출되면
digitalWrite(led1,HIGH); digitalWrite(led2,LOW); // LED1 ON,LED2 OFF
}
else{ // 2번 센서가 검출되면
digitalWrite(led1,LOW); digitalWrite(led2,HIGH); // LED1 OFF,LED2 ON
}
mode=0;
}
}
//
}
댓글 : 0
조회수 : 4,994
등록된 댓글이 없습니다.