Co potrzebujemy?
https://flesztech.blogspot.com/arduino
5 diod LED:
2x czerwone
2x zielone
1x żółta
1x biała
6 rezystorów:
dla diody białej: 70Ω
dla diody czerwonej: 190Ω
dla diody żółtej: 110Ω
dla diody zielonej: 100Ω
(jeśli nie posiadacie odpowiednich wartości rezystorów można dać dla wszystkich diod LED wartość 200 Ω, ja takich użyłem i bardzo dobrze świecą)
1x switch (przełącznik)
Schemat połączeń:
Sketch do wgrania:
void setup() {
pinMode(12, OUTPUT); //Zielone dla pieszych
pinMode(11, OUTPUT); //Czerwone dla pieszych
pinMode(10, OUTPUT); //Czerwone dla samochodów
pinMode(9, OUTPUT); //Żółte dla samochodów
pinMode(8, OUTPUT); //Zielone dla samochodów
pinMode(2, OUTPUT); //Białe Informacyjne dla pieszych (umieszczane w przyciskach świateł dla pieszych)
pinMode(7, INPUT_PULLUP); //Przycisk dla pieszych
}
void loop()
{
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, LOW); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, HIGH); //Zielone
digitalWrite(2, LOW); //Informacyjne dla pieszych
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, LOW); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, HIGH); //Zielone
digitalWrite(2, LOW); //Informacyjne dla pieszych
if (digitalRead(7) == LOW) { //Jeśli przycisk dla pieszych zostanie wciśnięty
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, LOW); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, HIGH); //Zielone
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(2, HIGH); //Informacyjne dla pieszych
delay(10000); //Czekamy na reakcję 10 sekund po naciśnięciu przycisku dla pieszych
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, LOW); //Czerwone
digitalWrite(9, HIGH); //Żółte
digitalWrite(8, LOW); //Zielone
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(2, HIGH); //Informacyjne dla pieszych
delay(2000); //Czekamy 2 sekundy po zapaleniu się żółtego dla pojazdów
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Pomarańczowa
digitalWrite(8, LOW); //Zielone
digitalWrite(2, HIGH); //Informacyjne dla pieszych
delay(2000); //Czekamy 2 sekundy po zapaleniu się czerwonego dla pojazdów i czerwonego dla przechodniów, zabezpieczenie przeciwwypadkowe
digitalWrite(12, HIGH); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
digitalWrite(2, LOW); //Informacyjne dla pieszych
delay(10000); //Czekamy 10 sekund, zielone dla przechodniów
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, HIGH); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, HIGH); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, HIGH); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, HIGH); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, LOW); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, LOW); //Zielone
delay(400); //Czekamy 0,4 milisekund, zielone dla przechodniów zaczyna migać
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, LOW); //Pomarańczowa
digitalWrite(8, LOW); //Zielone
delay(2000); //Czekamy 2 sekundy, czerwone dla wszystkich, zabezpieczenie przeciwwypadkowe, dla spóźnialskich pieszych
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, HIGH); //Czerwone
digitalWrite(9, HIGH); //Pomarańczowa
digitalWrite(8, LOW); //Zielone
delay(2000); //Czekamy 2 sekundy, światło czerwone i żółte dla pojazdów ruszających
digitalWrite(12, LOW); //Zielone dla pieszych
digitalWrite(11, HIGH); //Czerwone dla pieszych
digitalWrite(10, LOW); //Czerwone
digitalWrite(9, LOW); //Żółte
digitalWrite(8, HIGH); //Zielone
delay(500); //Pół sekundy - Określamy czas po którym przycisk dla pieszych znów jest aktywny
}
}
Gotowiec do pobrania:
Gotowy efekt: