Trafikklys
Innledning
| Mikrokontroller: | Atmega16 |
| Utviklingskit: | EasyAVR6 |
| Utvidelseskort: | Relay4 |
| Annet utstyr: | 12v strømforsyning |
| Trafikklys for fotgjengerovergang (rød, grønn) | |
| Trafikklys for biler (rød, gul, grønn) |
Trafikklysprosjektet har vi jobbet we sakte men sikkert med i ett par måneder nå, og målet er nådd for fase 1. Vi har implementert tidsstyrt automatikk for biler og fotgjengere som planlagt.
Kildekode
program TrafficLight;
var
i: byte;
const
TRAFFIC_RED = %00000100;
TRAFFIC_YELLOW = %00000010;
TRAFFIC_GREEN = %00000001;
TRAFFIC_BLANK = %00000000;
procedure ERR1();
begin
PORTB := TRAFFIC_BLANK; // Off
PORTC := TRAFFIC_YELLOW; // Road yellow
Delay_ms(500);
PORTC := TRAFFIC_BLANK; // Off
Delay_ms(500);
end;
procedure INIT1();
begin
PORTB := TRAFFIC_RED; // Walk red
PORTC := TRAFFIC_RED; // Road red
Delay_ms(20000);
end;
procedure STEP1();
begin
PORTC := TRAFFIC_GREEN; // Road green
PORTB := TRAFFIC_RED; // Walk red
Delay_ms(20000);
end;
procedure STEP3();
begin
PORTC := TRAFFIC_YELLOW; // Road green
PORTB := TRAFFIC_RED; // Walk red
Delay_ms(4000);
end;
procedure STEP4();
begin
PORTC := TRAFFIC_RED; // Road red
PORTB := TRAFFIC_RED; // Walk red
Delay_ms(4000);
end;
procedure STEP5();
begin
PORTC := TRAFFIC_RED; // Road red
PORTB := TRAFFIC_GREEN; // Walk green
Delay_ms(20000);
end;
procedure STEP6();
var
j: byte;
begin
PORTC := TRAFFIC_RED; // Road red
for j := 0 to 20 do
begin
PORTB := TRAFFIC_GREEN; // Walk green
Delay_ms(500);
PORTB := TRAFFIC_BLANK; // Walk off
Delay_ms(500);
end;
end;
procedure STEP7();
begin
PORTC := TRAFFIC_RED; // Road red
PORTB := TRAFFIC_RED; // Walk red
Delay_ms(4000);
end;
procedure STEP8();
begin
PORTC := %00000110; // Road red/yellow
PORTB := TRAFFIC_RED; // Walk red
Delay_ms(4000);
end;
procedure PedestrianLightGreen();
begin
PORTB := TRAFFIC_GREEN; // Walk green
end;
begin
DDRB := 0xFF; // Set direction to be output
DDRC := 0xFF; // Set direction to be output
for i := 0 to 20 do
begin
ERR1();
end;
INIT1();
while TRUE do
begin
STEP4();
STEP5();
STEP6();
STEP7();
STEP8();
STEP1();
STEP3();
end; // Endless loop}
end.
Nedlastinger
| Last ned kildekode og HEX fil for dette prosjektet |
Har du spørsmål om prosjektet, kontakt Stine Urke :-)
Dette eksempelet er et prosjekt mellom Stormvest AS og Stine Urke for å promotere og vise at produktene fra mikroElektronika og Stormvest AS er de enkleste og beste i sitt segment - perfekte for alle fra nybegynnere til proffer.





