신호등제어
Traffic sign control with Arduino UNO
int redPin = 2; //2번 포트를 redPin으로 지정
int yellowPin = 3; //3번포트
int greenPin = 4;
int buttonPin = 5;
int state = 0; //상태변수 state를 0으로 default(=초기화)시킴
void setLights(int red, int yellow, int green) //메소드::함수를 새로 만드는 코드
//문법:: 변수명(내부변수, 내부변수, 내부변수)
{
digitalWrite(redPin, red);
digitalWrite(yellowPin, yellow);
digitalWrite(greenPin, green);
}
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT); //LED를 출력으로 지정
pinMode(buttonPin, INPUT); //버튼은 입력으로 지정
}
void loop()
{
if (digitalRead(buttonPin))
//만약 버튼핀의 Digital값을 읽었을때 이 값이 True인가? (입력이 되었는가? /False는 앞에 !를 붙인다.)
//풀업 풀다운 그림 링크
{
if (state == 0) //초기상태
{
setLights(HIGH, LOW, LOW);
state = 1; //현재상태 (이런 변수를 보통 Flag bit라고 부른다.)
}
else if (state == 1)
{
setLights(HIGH, HIGH, LOW);
state = 2; //현재상태의 Flag bit는 2
}
else if (state == 2)
{
setLights(LOW, LOW, HIGH);
state = 3;
}
else if (state == 3)
{
setLights(LOW, HIGH, LOW);
state = 0;
delay(3000);
}
delay(1000);
}
}