Lekcja 98-10: Sygnalizacja świetlna Arduino
Światła drogowe to jeden z tych codziennych systemów, o których rzadko myślimy — dopóki sami takiego nie zbudujemy. W tym projekcie użyjesz Arduino do symulacji prawdziwej sekwencji świateł drogowych: zielone, potem żółte, potem czerwone, każde przez własny, konfigurowalny czas, powtarzając się w nieskończoność. To idealny projekt dla początkujących, ponieważ uczy logiki sekwencyjnego odmierzania czasu, sterowania wieloma wyjściami oraz związku między tym, co piszesz w kodzie, a tym, co widzisz w świecie fizycznym.
Poza demonstracją w klasie, logika odmierzania czasu, której się tu nauczysz, pojawia się wszędzie:
- Budowanie realistycznego modelu świateł drogowych do kolejki modelarskiej lub dioramy
- Tworzenie systemu wskaźników czasowych dla warsztatu lub garażu (np. sygnały „można wejść” / „czekaj”)
- Poznanie podstaw sygnalizacji przejścia dla pieszych z fazami wyzwalanymi przyciskiem
- Prototypowanie sekwencji przekaźników czasowych do zadań automatyki przemysłowej lub domowej
- Uczenie dzieci sekwencji, odmierzania czasu i elektroniki za pomocą znajomego, rozpoznawalnego obiektu
Najlepsze jest to: całość działa samodzielnie po wgraniu. Programujesz Arduino raz ze swojego komputera, a następnie zasilasz je z baterii lub zasilacza i działa wiecznie — komputer nie jest potrzebny (w filmie o 12:27).
Jak działa światło drogowe
Światło drogowe to tak naprawdę tylko sekwencja czasowa trzech wyjść. Arduino włącza jedną diodę LED naraz, czeka określoną liczbę sekund, wyłącza ją i przechodzi do następnej. Cykl się powtarza. W przykładowym czasie z filmu zielone świeci przez 3 sekundy, żółte przez 1 sekundę, a czerwone przez 3 sekundy — ale wszystkie te wartości można regulować w kodzie (w filmie o 49:44).
Sekwencja wydaje się realistyczna, ponieważ czasy trwania odzwierciedlają rzeczywisty przepływ ruchu: zielone i czerwone są dłuższe, bo pojazdy potrzebują czasu na przejazd przez skrzyżowanie, a żółte jest krótkie, bo to tylko ostrzeżenie o zmianie. Możesz je dostroić do dowolnego scenariusza.
Sprzęt i komponenty
Lista części do tego projektu jest minimalna:
- 1 × płytka Arduino (Uno, Nano lub Mega — cokolwiek z co najmniej 3 pinami cyfrowymi)
- 3 × diody LED (czerwona, żółta/pomarańczowa i zielona — różne kolory sprawiają, że efekt jest oczywisty)
- 3 × rezystory (300 Ω do 1 kΩ działa dobrze; w filmie użyto 1 kΩ)
- 1 × płytka stykowa
- Przewody połączeniowe
- Opcjonalnie: bateria litowo-jonowa lub zasilacz 5 V do pracy samodzielnej
Film zaleca użycie trzech wyraźnie różniących się kolorem diod LED, aby efekt świateł drogowych był natychmiast widoczny — w przeciwnym razie trzeba by je oznaczyć (w filmie o 02:04).
Zrozumienie ograniczania prądu diody LED
Każda dioda LED potrzebuje rezystora ograniczającego prąd w szeregu. Oto dlaczego: dioda LED ma prawie stałe napięcie przewodzenia (typowo około 2 V dla standardowych diod 5 mm), a jeśli podłączysz ją bezpośrednio do 5 V, prąd gwałtownie wzrośnie i ją zniszczy. Rezystor pochłania nadmiar napięcia.
Korzystając z prawa Ohma, jeśli dioda LED odkłada 2 V, a zasilanie wynosi 5 V, to 3 V musi odłożyć się na rezystorze. Przy docelowym prądzie około 10 mA wartość rezystora wynosi około 300 Ω (w filmie o 04:41). W praktyce wszystko od 300 Ω do 1 kΩ będzie działać — wyższe wartości po prostu przygaszają diodę LED.
Przewodnik po połączeniach
Każda dioda LED jest podłączona identycznie: anoda (dłuższa nóżka) łączy się z pinem cyfrowym Arduino, a katoda (krótsza nóżka, płaska strona korpusu diody) łączy się przez rezystor do masy.
W połączeniach z filmu czerwona dioda LED łączy się z pinem 2, żółta/pomarańczowa z pinem 3, a zielona z pinem 4 (w filmie o 50:50). Wszystkie trzy rezystory współdzielą wspólną szynę masy na płytce stykowej. Kolejność kolorów na płytce stykowej nie ma znaczenia — liczy się to, że numery pinów w kodzie odpowiadają pinom, których faktycznie użyłeś.
Jedna przydatna wskazówka z filmu: rezystor może znajdować się po obu stronach diody LED. Możesz umieścić go między pinem Arduino a anodą diody LED lub między katodą diody LED a masą — elektrycznie jest to to samo (w filmie o 51:52).
Wyjaśnienie kodu
Pełny program jest dostępny poniżej artykułu. Tutaj skupimy się na częściach, które będziesz chciał dostosować.
Na początku szkicu trzy definicje pinów przypisują każdą diodę LED do pinu cyfrowego. Jeśli podłączyłeś diody LED do innych pinów, zmień te wartości:
const int greenLED = 4;
const int yellowLED = 3;
const int redLED = 2;
Następnie znajdują się stałe czasowe. Kontrolują one, jak długo każde światło pozostaje włączone, w milisekundach. W filmie domyślnie używane jest 5000 ms dla zielonego, 1000 ms dla żółtego i 5000 ms dla czerwonego — ale podczas demonstracji zostały one zmienione na 3 s / 1 s / 3 s, a później na 10 s / 3 s / 10 s (w filmie o 56:27):
const int greenOnTime = 5000;
const int yellowOnTime = 1000;
const int redOnTime = 5000;
Aby zmienić rytm swojej sygnalizacji świetlnej, wystarczy edytować te trzy wartości. Chcesz wolne, realistyczne skrzyżowanie? Wypróbuj 10000, 3000, 10000. Chcesz szybką demonstrację? Wypróbuj 1000, 300, 1000.
Wewnątrz loop() sekwencja jest prosta: włącz zielone, poczekaj, wyłącz zielone; włącz żółte, poczekaj, wyłącz żółte; włącz czerwone, poczekaj, wyłącz czerwone; następnie wróć do zielonego. Monitor szeregowy wyświetla każdą zmianę stanu, dzięki czemu możesz zweryfikować, czy taktowanie odpowiada oczekiwaniom.
Demonstracja na żywo
Po wgraniu kodu Arduino samodzielnie wykonuje cykl. W filmie najpierw zapala się zielona dioda LED, następnie po upływie jej czasu na krótko włącza się żółta, potem czerwona, a cykl natychmiast się rozpoczyna od nowa (w filmie o 55:20).
Monitor szeregowy odzwierciedla to w tekście — „green LED on”, „green off”, „yellow on” i tak dalej — co jest świetnym sposobem na potwierdzenie, że wartości taktowania działają zgodnie z zamierzeniem. Gdy będziesz gotowy uruchomić go bez przewodów, odłącz USB i podłącz baterię litowo-jonową lub adapter 5 V; Arduino będzie kontynuować cykl bez komputera (w filmie o 56:11).
Powiązane projekty z tego filmu
- Lekcja 98-1: Jak włączać i wyłączać diodę LED za pomocą Arduino
- Lekcja 98-2: Jak włączać i wyłączać diodę LED za pomocą przycisku z Arduino
- Lekcja 98-3: Jak włączać/wyłączać diodę LED przełącznikowo za pomocą przycisku z Arduino
- Lekcja 98-4: Ściemnianie światła LED za pomocą Arduino: kontrola jasności
- Lekcja 98-5: Ściemnianie światła po naciśnięciu przycisku za pomocą Arduino
- Lekcja 98-6: Gra w diody LED na zasadzie huśtawki z Arduino
- Lekcja 98-7: Światło wędrujące za pomocą Arduino i 5 diod LED
- Lekcja 98-8: Światło wędrujące z przyciskiem i diodami LED z Arduino
- Lekcja 98-9: Miernik poziomu napięcia LED za pomocą Arduino lub światło wędrujące z potencjometrem
Rozdziały
- [00:00] Przegląd 10 projektów LED z Arduino
- [01:22] Wprowadzenie do kursu krok po kroku Arduino
- [02:29] Czym jest dioda LED: symbol, anoda i katoda
- [03:49] Obliczanie rezystora ograniczającego prąd diody LED
- [49:25] Wprowadzenie do projektu sygnalizacji świetlnej
- [49:44] Wyjaśnienie taktowania sygnalizacji świetlnej
- [50:34] Schemat połączeń sygnalizacji świetlnej
- [52:13] Wyjaśnienie kodu sygnalizacji świetlnej
- [54:32] Demonstracja na żywo z monitorem szeregowym
- [55:30] Zmiana wartości taktowania
- [56:11] Uruchamianie sygnalizacji świetlnej na zasilaniu bateryjnym
Obrazy
This code has not been parsed yet. Please return to the admin panel to parse it.
Rzeczy, których możesz potrzebować
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Zasoby i odniesienia
-
DokumentacjaDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Zewnętrzny
-
Zewnętrzny
-
Zewnętrzny
Pliki📁
Biblioteki Arduino (zip)
-
Kod źródłowy zestawu edukacyjnego inteligentnego samochodu SunFounder 3-w-1
3in1-kit-main-v2.zip12.80 MB
Instrukcja obsługi
-
Instrukcja montażu SunFounder 3-in-1 Arduino Smart CarTen dokument pokazuje krok po kroku montaż SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB