Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W tym samouczku dowiemy się, jak stworzyć sygnalizację świetlną i jak nią sterować zarządzaną przez kartę Drivemall.
Zobaczymy, jak stworzyć sygnalizację świetlną dla samochodów i pieszych z przyciskiem rezerwacji.
Jeśli nie mamy drivermall możemy użyć arduino, ale poniżej link do rozwoju Drivemall.
Zaletą preferowania Drivemall nad klasyczną płytą Arduino jest zmniejszenie złożoności połączeń, co prowadzi do bardziej uporządkowanej konfiguracji. Jest to jednak opcjonalne: wszystkie wyniki są nadal aktualne z płytą arduino, płytką stykową i wystarczającą liczbą zworek dupont do połączeń.
Krok 1: Zestawienie materiałów
- Baord Drivemall / ArduinoMega
- 4 diody czerwone
- 4 diody led zielone
- 4 diody LED żółte
- 8 tranzystorów npn
- 16 rezystorów 220 omów
- 8 rezystorów 22k ohm
- 1 rezystor 1k om
- kabel
- 1 przycisk
Krok 2: Połączenia
Sygnalizacja świetlna jest sterowana za pomocą dwóch tranzystorów PNP połączonych zgodnie ze schematem na rysunku 2. Działanie tranzystora PNP jest bardzo proste, gdy baza jest podłączona do GND przepływ prądu pomiędzy emiterem a kolektorem jest umożliwiony.
Używamy tranzystorów, aby zmniejszyć liczbę pinów płyty wymaganych do włączenia każdego pojedynczego światła.
Jeśli więc obie BAZY są VDD, zaświeci się czerwona dioda LED lub dla jasności dioda LED 21 17 14 6.
Jeśli zasilimy BAZĘ drugiego tranzystora, zaświecą się diody 3 15 18 19.
Na koniec, jeśli połączymy obie BAZY do GND, zaświecą się diody 20 16 13 10
Połączenie przycisku to zamiast tego klasyczna rezystancja podłączona do GND na jednym pinie przycisku, a drugim na VDD.
Zarejestrowane piny Arduino to te od 1 do 10.
Krok 3: Oprogramowanie układowe
Okresowo tylko jedna z sygnalizacji świetlnej jest zielona. Po naciśnięciu przycisku dla pieszych, w następnym okresie sygnalizacja świetlna dla pieszych zmienia kolor na zielony
W celu bezzwłocznego zarządzania wywołaniem przycisku pieszego w czasie rzeczywistym zastosowano funkcję milis(), która zwraca czas w milisekundach od włączenia urządzenia, dzięki czemu można z niego korzystać
przykład
unsigned long currentMillis = millis ();.
if (currentMillis - previousMillis> 2000 i bt03 == true i bbot == false)
{
Serial.println (1);
T1 ();
poprzedni Millis = obecny Millis;
bt1 = prawda;
BT03 = fałsz;
}
Wczytujemy aktualny czas przy każdej pętli i jeśli prąd minus poprzedni jest większy niż wybrany czas wpisujemy if aby zmienić stan sygnalizacji świetlnej aktywującej zmienną Boolean dla następnego przejścia oczywiście pierwszą zmienną Boolean jest już prawdziwe przed wejściem do pętli.
Krok 4: Zrzeczenie się
Poradnik powstał w ramach projektu Makerspace for Inclusion, współfinansowanego przez program Komisji Europejskiej Erasmus+.
Projekt ma na celu promowanie nieformalnej formy edukacji jako środka sprzyjającego włączeniu społecznemu młodych ludzi, edukacji nieformalnej, którą można znaleźć w przestrzeniach twórców.
Ten samouczek odzwierciedla jedynie poglądy autorów, a Komisja Europejska nie ponosi odpowiedzialności za jakiekolwiek wykorzystanie informacji w nim zawartych.