#define RED_PIN 13 //13을 RED_PIN로 사용한다는 것을 의미
#define GREEN_PIN 12
#define RED_SW 9
#define GREEN_SW 8
bool pre_State = 0; //LED의 이전 상태를 나타내는 변수
void setup() {
// put your setup code here, to run once:
pinMode(RED_PIN, OUTPUT); //빨간색 LED 점등, 소등 제어핀
pinMode(GREEN_PIN, OUTPUT); //녹색 LED 점등, 소등 제어핀
pinMode(RED_SW, INPUT); //빨간색 LED 상태 입력핀
pinMode(GREEN_SW, INPUT); //녹색 LED 상태 입력핀
}
void loop() {
// put your main code here, to run repeatedly:
int red_State = digitalRead(RED_SW); //빨간색 LED 제어 스위치의 상태를 red_State에 저장
int green_State = digitalRead(GREEN_SW); //녹색 LED 제어 스위치의 상태를 green_State에 저장
if(green_State == HIGH || pre_State == LOW) //녹색 LED 제어 스위치가 눌려졌거나 이전 상태가 안전(녹색) 상태일 때
{
digitalWrite(RED_PIN, LOW); //빨간색 LED 소등
digitalWrite(GREEN_PIN, HIGH); //녹색 LED 점등
pre_State = 0; //이전 LED 상태는 안전(녹색)을 의미하는 0 저장
}
if(red_State == HIGH || pre_State == HIGH) //빨간색 LED 제어 스위치가 눌려졌거나 이전 상태가 비상(빨간색) 상태일 때
{
digitalWrite(GREEN_PIN, LOW); //녹색 LED 소등
digitalWrite(RED_PIN, HIGH); //빨간색 LED 소등
/* delay(200);
digitalWrite(RED_PIN, LOW);
delay(200);*/
pre_State = 1; //이전 LED 상태는 비상(빨간색)을 의미하는 1 저장
}
}
댓글(0)
이모티콘