poniedziałek, 25 marca 2019

Sygnalizacja świetlna na przejściu dla pieszych, kolejne zastosowanie arduino


Kolejne ciekawe zastosowanie kontrolera arduino, projekt można rozbudowywać o dowolną ilość i sekwencję świateł na całe skrzyżowanie. Można dołożyć także tzw. zielone strzałki albo zamiast przełączników dołączyć sygnał z czujnika zbliżenia, by sygnalizator zapalał się w przypadku dojazdu samochodów do skrzyżowania.





Co potrzebujemy?

Kontroler arduino z poprzednich naszych ćwiczeń:

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

   

  }
  }






Whatsapp Button works on Mobile Device only

Wpisz czego szukasz i kliknij w ikonkę lupy