신호등 프로젝트
비교적 프로젝트 (1)~(3)번 정도를 경험해 봤다면
도전 할 수 있는 프로젝트다.
스위치 딜레이를 줘서 일정 시간이 되면 자동으로 다음 순서의 LED가 점등되는 프로젝트 이다.
구성품은
LED(Red, Green, Blue), 아두이노 우노, 브렛보드, 연결선, 버튼(스위치), 저항 이다.
코드는
int rpin =2;
int bpin =3;
int gpin=4;
int button=13;
int sys=0;
void setup()
{
pinMode(rpin,OUTPUT);
pinMode(gpin,OUTPUT);
pinMode(bpin,OUTPUT);
pinMode(button,INPUT_PULLUP);
}
void loop()
{
if(digitalRead(button))
{
if(sys == 0)
{
traffic(LOW,LOW,HIGH);
sys=1;
}
else if(sys == 1)
{
traffic(LOW,HIGH,LOW);
sys=2;
}
else if(sys == 2)
{
traffic(HIGH,LOW,LOW);
sys=3;
}
else if(sys == 3)
{
traffic(LOW,HIGH,LOW);
sys=0;
}
}
else
{
traffic(LOW,LOW,LOW);
}
delay(1000);
}
void traffic(int r,int b,int g)
{
digitalWrite(rpin,r);
digitalWrite(gpin,g);
digitalWrite(bpin,b);
}
주로 아두이노의 딜레이 기능과 별도의 함수 기능을 응용한 프로젝트이다.
rpin,bpin gpin은 각각의 LED 출력핀
button은 버튼(스위치) 입력핀
sys는 점멸 상태와 순서를 알려주는 변수이고
traffic 함수를 만들어 각각의 (빨강,초록,파랑)의 점멸상태를 입력 받아 출력하는 형태이다.
회로도
동영상
(단! 이 프로젝트에서 아직 해결 못한 점은 스위치(버튼)을 누르지 않았는데도 미미하게 불빛이 점등 된다는 점이다.
이를 통해 코드를 보완할 필요가 있다.)
'공대생 주석마루 > 아두이노 UNO' 카테고리의 다른 글
(18)LCD 모듈 (2) | 2018.05.08 |
---|---|
(17) 수위(빗물) 조절 센서(Water sensor) (0) | 2018.04.07 |
(16) 도트 매트릭스 (Dot Matrix) (2) | 2018.03.25 |
(15) LED RGB (2) | 2018.03.18 |
(14) Seven Segment 7세그먼트 (0) | 2018.03.15 |