วงจรระบบสัญญาณไฟจราจรที่มีความหนาแน่น
วงจรระบบสัญญาณไฟจราจรที่มีความหนาแน่น
ส่วนประกอบวงจร:
- ตัวควบคุม ATmega8
- บอร์ด PCB
- เซ็นเซอร์ IR -4
- ไฟ LED-12 (4 สีแดง 4 สีเขียว, สี 4 สีเหลือง)
- 12 โวลต์แบตเตอรี่หรืออะแดปเตอร์
- สายเคเบิลอนุกรม
- สายเชื่อมต่อ
code
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#define R1 PB0
#define Y1 PB1
#define G1 PB2
#define R2 PB3
#define Y2 PB4
#define G2 PB5
#define R3 PD5
#define Y3 PD4
#define G3 PD3
#define R4 PD2
#define Y4 PD1
#define G4 PD0
int main(void)
{
DDRB = 0xff;
DDRD = 0xff;
DDRC = 0x00;
PORTB = 0x00;
PORTD = 0x00;
while(1)
{
if((PINC&0x01) == 0x01)
{
PORTB |= (1<<G1);
PORTB |= (1<<Y2);
PORTD |= (1<<R3);
PORTD |= (1<<R4);
}
else if((PINC&0x02) == 0x02)
{
PORTB |= (1<<R1);
PORTB |= (1<<G2);
PORTD |= (1<<Y3);
PORTD |= (1<<R4);
}
else if((PINC&0x04) == 0x04)
{
PORTB |= (1<<R1);
PORTB |= (1<<R2);
PORTD |= (1<<G3);
PORTD |= (1<<Y4);
}
else if((PINC&0x08) == 0x08)
{
PORTB |= (1<<Y1);
PORTB |= (1<<R2);
PORTD |= (1<<R3);
PORTD |= (1<<G4);
}
else
{
PORTB = 0x00;
PORTD = 0x00;
PORTB |= (1<<G1);
PORTB |= (1<<Y2);
PORTD |= (1<<R3);
PORTD |= (1<<R4);
_delay_ms(7000);
PORTB = 0x00;
PORTD = 0x00;
PORTB |= (1<<R1);
PORTB |= (1<<G2);
PORTD |= (1<<Y3);
PORTD |= (1<<R4);
_delay_ms(7000);
PORTB = 0x00;
PORTD = 0x00;
PORTB |= (1<<R1);
PORTB |= (1<<R2);
PORTD |= (1<<G3);
PORTD |= (1<<Y4);
_delay_ms(7000);
PORTB = 0x00;
PORTD = 0x00;
PORTB |= (1<<Y1);
PORTB |= (1<<R2);
PORTD |= (1<<R3);
PORTD |= (1<<G4);
_delay_ms(7000);
PORTB = 0x00;
PORTD = 0x00;
}
}
}
ความคิดเห็น
แสดงความคิดเห็น