Jak zrobić kontroler sygnalizacji świetlnej oparty na Arduino?

Sygnalizacja świetlna to urządzenia sygnalizacyjne służące do sterowania przepływem ruchu na skrzyżowaniach jezdni, przejściach dla pieszych i innych miejscach. Jest to połączenie trzech kolorów światła: czerwonego, żółtego i zielonego. Czerwone światło mówi ludziom, żeby się zatrzymali, żółte - aby się przygotować lub uruchomić silnik, jeśli jest wyłączony, a zielone światło wskazuje, że można jechać dalej.



Sygnalizacja świetlna

W ramach tego projektu wykonamy czterokierunkowy system sygnalizacji drogowej z wykorzystaniem mikrokontrolera. Spalimy Kod C. na płycie Arduino Uno, aby poinformować go, jak włączać i wyłączać diody LED, aby uzyskać idealny czas przełączania w procesie sygnalizacji. W celach testowych zastosowane zostaną 4 kombinacje 4 diod LED, które zostaną umieszczone na płytce stykowej.



Jak uzyskać 4-kierunkowy sygnał drogowy za pomocą Seeeduino v4.2?

Sygnały drogowe są najważniejszą rzeczą, która jest instalowana na drogach, aby zapewnić płynny i stały przepływ ruchu i zminimalizować ryzyko wypadków. Możemy wykonać ten projekt na małej płytce stykowej. Zbierzmy trochę informacji o tym projekcie i zacznijmy działać.



Krok 1: Zbieranie komponentów

Najlepszym podejściem do rozpoczęcia każdego projektu jest sporządzenie listy kompletnych komponentów na początku i przeprowadzenie krótkiej analizy każdego z nich. Pomaga nam to uniknąć niedogodności w trakcie realizacji projektu. Pełna lista wszystkich komponentów użytych w tym projekcie znajduje się poniżej.



  • Seeeduino V4.2
  • Przewody połączeniowe
  • LED (4x zielony, 4x żółty, 4x czerwony)
  • Zasilacz 12V AC do DC

Krok 2: Badanie komponentów

Teraz, gdy znamy streszczenie naszego projektu i mamy również pełną listę wszystkich komponentów, przejdźmy o krok do przodu i przeprowadźmy krótkie badanie komponentów, których będziemy używać.

Seeeduino v4.2 to jedna z najlepszych na świecie płyt kompatybilnych z Arduino, oparta na mikrokontrolerze Atmega 328 MCU. ponieważ jest łatwy w użyciu, stabilniejszy i wygląda lepiej niż wiele innych płyt. Oparty jest o bootloader Arduino. ma ATMEGA16U2 jako konwerter UART-na-USB, ponieważ może być używany jako układ FTDI. jest podłączony do komputera za pomocą kabla micro USB, który jest ogólnie nazywany kablem Android. Do zasilania płyty można również użyć gniazda DC. moc wejściowa musi wynosić od 7 V do 15 V.

Seeeduino



DO Płytka prototypowa jest urządzeniem bezlutowym. Służy do wykonywania i testowania tymczasowych prototypowych układów elektronicznych i projektów. Większość elementów elektronicznych jest po prostu podłączana do płytki stykowej po prostu przez włożenie ich pinów do płytki stykowej. Otwory płytki stykowej kładzie się pasek metalu, a otwory są łączone w określony sposób. Połączenia otworów pokazano na poniższym schemacie:

Płytka prototypowa

Krok 3: Zasada działania

Przejdźmy przez krótkie wprowadzenie do zasady działania projektu 4-kierunkowej sygnalizacji świetlnej. Ponieważ jest to 4-drożne, będziemy potrzebować dwunastu diod LED i czterech kombinacji trzech diod. Kod jest napisany w taki sposób, że jeśli jedna kombinacja świeci zielonym światłem, wszystkie inne kombinacje będą świecić światłem czerwonym. Jeśli sygnał zmienia się z zielonego na żółty lub czerwony na żółty, inna kombinacja diod LED również pokaże transakcję odpowiednio z czerwonego na żółty lub z żółtego na czerwony.

Wszystko to będzie się odbywać z opóźnieniem czasowym między przejściem sygnałów. Na przykład dioda LED pozostanie zielona przez prawie piętnaście sekund, dioda LED pozostanie żółta przez prawie dwie sekundy. Czas trwania czerwonej diody LED zależy od czasu trwania zielonej diody. Oznacza to, że jeśli dioda LED świeci się na zielono przez piętnaście sekund, wszystkie pozostałe czerwone diody pozostaną włączone przez piętnaście sekund.

Krok 4: Wykonanie obwodu

Teraz, gdy znamy już zasadnicze działanie komponentów, przejdźmy dalej i zacznijmy składać komponenty, aby utworzyć obwód. Wykonaj poniższe czynności, aby poprawnie podłączyć wszystkie komponenty w płytce stykowej.

  1. Przede wszystkim weź wszystkie diody LED i podłącz je w płytce stykowej w odpowiedniej kolejności jako czerwony, żółty i zielony.
  2. Wykonaj wspólne połączenie mas wszystkich diod LED. Lepiej jest podłączyć rezystor 220 omów do dodatniego zacisku diody LED.
  3. Teraz podłącz odpowiednio przewody łączące.
  4. Teraz podłącz diody LED do Arduino, jak pokazano na schemacie poniżej. LED-1, LED-2 do LED-12 zostaną podłączone do pinów 1, pin2 do pinów 12 płyty Arduino Uno.
  5. Prześlij kod do Arduino Uno i zasil go za pomocą laptopa lub adaptera AC na DC.
  6. Obwód będzie wyglądał jak na poniższym obrazku:

    Schemat obwodu

Krok 5: Pierwsze kroki z Arduino

Jeśli wcześniej nie znasz Arduino IDE, nie martw się, ponieważ poniżej możesz zobaczyć wyraźne kroki nagrywania kodu na płycie mikrokontrolera za pomocą Arduino IDE. Możesz pobrać najnowszą wersję Arduino IDE z tutaj i wykonaj kroki wymienione poniżej:

1). Gdy płytka Arduino jest podłączona do komputera, otwórz „Panel sterowania” i kliknij „Sprzęt i dźwięk”. Następnie kliknij „Urządzenia i drukarki”. Znajdź nazwę portu, do którego jest podłączona płyta Arduino. W moim przypadku jest to „COM14”, ale na Twoim komputerze może wyglądać inaczej.

Znajdowanie portu

2). Teraz otwórz Arduino IDE. W Narzędziach ustaw płytę Arduino na Arduino / Genuino UNO.

Tablica nastawcza

3). Z tego samego menu Narzędzia ustaw numer portu, który widziałeś w panelu sterowania.

Ustawianie portu

4). Pobierz załączony poniżej kod i skopiuj go do swojego IDE. Aby przesłać kod, kliknij przycisk przesyłania.

Przekazać plik

Możesz pobrać kod przez klikając tutaj.

Krok 6: Kod

Kod jest dobrze skomentowany i nie wymaga objaśnień, ale nadal niektóre jego części są pokrótce wyjaśnione poniżej.

1. Na początku wszystkie piny są nazwane, które później zostaną podłączone do Arduino.

int led1 = 1; // czerwone światło 1 int led2 = 2; // żółte światło 1 int led3 = 3; // zielone światło 1 int led4 = 4; // czerwone światło 2 int led5 = 5; // żółte światło 2 int led6 = 6; // zielone światło 2 int led7 = 7; // czerwone światło 3 int led8 = 8; // żółte światło 3 int led9 = 9; // zielone światło 3 int led10 = 10; // czerwone światło 4 int led11 = 11; // żółte światło 4 int led12 = 12; // zielone światło 4

2. void setup () to funkcja, w której deklarujemy wszystkie piny płyty Arduino jako WEJŚCIE lub WYJŚCIE. W tej funkcji ustawia się również szybkość transmisji. Szybkość transmisji to prędkość komunikacji w bitach na sekundę, z jaką płyta mikrokontrolera komunikuje się z urządzeniami zewnętrznymi. Ta funkcja działa tylko raz po naciśnięciu przycisku włączania płytki mikrokontrolera.

void setup () {Serial.begin (9600;) // Prędkość transmisji jest ustawiona na 9600 pinMode (led1, OUTPUT); // Wszystkie piny podłączone do diod LED są ustawione jako OUTPUT pinMode (led2, OUTPUT); pinMode (led3, WYJŚCIE); pinMode (led4, WYJŚCIE); pinMode (led5, WYJŚCIE); pinMode (led6, WYJŚCIE); pinMode (led7, WYJŚCIE); pinMode (led8, WYJŚCIE); pinMode (led9, WYJŚCIE); pinMode (led10, WYJŚCIE); pinMode (led11, WYJŚCIE); pinMode (led12, WYJŚCIE); }

3. void loop to funkcja, która powtarza się w pętli. W tej funkcji zakodujemy całą procedurę, za pomocą której mikrokontroler będzie sterował zewnętrznymi diodami LED. Poniżej znajduje się mały fragment kodu. Tutaj zielone światło z pierwszej strony jest włączone, a wszystkie pozostałe strony mają włączone czerwone światło. Te światła pozostaną w tym stanie przez 15 sekund. Po 15 sekundach żółte światło pierwszej i drugiej strony zaświeci się na pozostałych dwóch stronach, a czerwone światło pozostanie włączone. Po upływie dwóch sekund pierwsza strona zaświeci się na czerwono, a na drugiej stronie zaświeci się zielone światło. Dzieje się tak, dopóki wszystkie cztery strony nie będą miały zapalonych zielonych świateł, na swojej kolejce, a wtedy pętla się powtórzy.

digitalWrite (led1, LOW); // Czerwone światło pierwszej strony jest wyłączone digitalWrite (led2, LOW); // żółte światło pierwszej strony jest wyłączone digitalWrite (led3, HIGH); // Zielone światło pierwszej strony jest na digitalWrite (led4, HIGH); // Czerwone światło strony seconf świeci digitalWrite (led5, LOW); // żółte światło drugiej strony jest wyłączone digitalWrite (led6, LOW); // zielone światło drugiej strony jest wyłączone digitalWrite (led7, HIGH); // Czerwone światło trzeciej strony świeci na digitalWrite (led8, LOW); // żółte światło trzeciej strony jest wyłączone digitalWrite (led9, LOW); // zielone światło trzeciej strony jest wyłączone digitalWrite (led10, HIGH); // czerwone światło czwartej strony świeci digitalWrite (led11, LOW); // żółte światło czwartej strony jest wyłączone digitalWrite (led12, LOW); // zielone światło czwartej strony to opóźnienie wyłączenia (15000); // z powodu opóźnienia wynoszącego 15 sekund, zielone światło pierwszej strony i czerwone światła pozostałych trzech stron pozostaną włączone przez 15 sekund digitalWrite (led1, LOW); // czerwone światło pierwszej strony jest wyłączone digitalWrite (led2, HIGH); // Żółte światło pierwszej strony świeci digitalWrite (led3, LOW); // zielone światło pierwszej strony jest wyłączone digitalWrite (led4, LOW); // czerwone światło drugiej strony jest wyłączone digitalWrite (led5, HIGH); // Żółte światło drugiej strony świeci digitalWrite (led6, LOW); // zielone światło drugiej strony jest wyłączone digitalWrite (led7, HIGH); // Czerwone światło trzeciej strony świeci na digitalWrite (led8, LOW); // żółte światło trzeciej strony jest wyłączone digitalWrite (led9, LOW); // zielone światło trzeciej strony jest wyłączone digitalWrite (led10, HIGH); // czerwone światło czwartej strony świeci digitalWrite (led11, LOW); // żółte światło czwartej strony jest wyłączone digitalWrite (led12, LOW); // zielone światło czwartej strony to opóźnienie wyłączenia (2000); // z powodu opóźnienia wynoszącego 2 sekundy żółte światło pierwszej i drugiej strony pozostanie włączone

Więc to była cała procedura 4-kierunkowego sygnalizacji świetlnej. Teraz możesz cieszyć się robieniem tego do nauki lub projektu szkolnego.