// Deklaracje pinów dla sygnalizacji świetlnej samochodów
const int samochodyZielone = 2;
const int samochodyZolte = 3;
const int samochodyCzerwone = 4;
// Deklaracje pinów dla sygnalizacji świetlnej pieszych
const int piesiZielone = 5;
const int piesiZieloneMrugajace = 6;
const int piesiCzerwone = 7;
// Przycisk
const int przycisk = 8;
const int buzzer = 9;
bool migajacePiesi = false; // Zmienna do śledzenia stanu migających świateł pieszych
void setup() {
// Inicjalizacja pinów jako wyjścia lub wejścia
pinMode(samochodyZielone, OUTPUT);
pinMode(samochodyZolte, OUTPUT);
pinMode(samochodyCzerwone, OUTPUT);
pinMode(piesiZielone, OUTPUT);
pinMode(piesiCzerwone, OUTPUT);
pinMode(przycisk, INPUT);
pinMode(buzzer, OUTPUT);
// Domyślny stan początkowy
digitalWrite(samochodyZielone, HIGH);
digitalWrite(samochodyZolte, LOW);
digitalWrite(samochodyCzerwone, LOW);
digitalWrite(piesiZielone, LOW);
digitalWrite(piesiZieloneMrugajace, LOW);
digitalWrite(piesiCzerwone, HIGH);
digitalWrite(buzzer, LOW);
}
void loop() {
if (digitalRead(przycisk) == HIGH) {
zmienSygnalizacje();
delay(1000); // Odczekaj 1 sekundę, aby uniknąć przypadkowego wielokrotnego naciśnięcia przycisku
}
}
void zmienSygnalizacje() {
// Dla samochodów
digitalWrite(samochodyZielone, LOW);
digitalWrite(samochodyZolte, HIGH);
delay(3000); // Czekaj 3 sekundy
digitalWrite(samochodyZolte, LOW);
digitalWrite(samochodyCzerwone, HIGH);
// Dla pieszych
delay(2000);
digitalWrite(piesiZielone, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(piesiCzerwone, LOW);
delay(20000); // Czekaj 30 sekund
// Mrugające zielone dla pieszych
digitalWrite(piesiZielone, LOW);
for (int i = 0; i < 6; i++) {
digitalWrite(piesiZielone, HIGH);
digitalWrite(buzzer, LOW);
delay(750);
digitalWrite(piesiZielone, LOW);
digitalWrite(buzzer, HIGH);
delay(750);
}
// Po zakończeniu migania zielonego dla pieszych, zapal czerwone światło dla pieszych
digitalWrite(piesiCzerwone, HIGH);
digitalWrite(buzzer, LOW);
// Dla samochodów
digitalWrite(samochodyZolte, HIGH);
delay(3000); // Czekaj 3 sekundy
digitalWrite(samochodyZolte, LOW);
digitalWrite(samochodyCzerwone, LOW);
digitalWrite(samochodyZielone, HIGH);
}