2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În acest tutorial învățăm cum să creăm un semafor și cum să-l controlăm gestionat de cardul Drivemall.
Vom vedea cum să creăm semafoare pentru mașini și pietoni cu un buton de rezervare.
Dacă nu avem drivermall putem folosi arduino, dar sub linkul pentru dezvoltarea Drivemall.
Avantajul preferării Drivemall față de placa clasică Arduino este acela de a reduce complexitatea conexiunilor care duc la o configurare mai ordonată. Cu toate acestea, acest lucru este opțional: toate rezultatele sunt încă valabile cu placa arduino, o placă de calcul și suficiente jumperi dupont pentru conexiuni.
Pasul 1: Lista materialelor
- Baord Drivemall / ArduinoMega
- 4 led roșu
- 4 led verde
- 4 led galben
- 8 tranzistori npn
- 16 rezistoare 220 ohm
- 8 rezistențe 22k ohm
- 1 rezistor 1k ohm
- cablu
- 1 buton
Pasul 2: Conexiuni
Semaforul este controlat folosind doi tranzistori PNP conectați conform schemei din figura 2. Funcționarea tranzistorului PNP este foarte simplă atunci când baza este conectată la GND, trecerea curentului între emițător și colector este activată.
Folosim tranzistoare pentru a reduce numărul pinilor de bord necesari pentru a aprinde fiecare semafor.
Deci, dacă ambele BAZE sunt VDD, LED-ul roșu se va aprinde sau va fi mai clar LED-ul 21 17 14 6.
Dacă alimentăm BAZA celui de-al doilea tranzistor, LED-urile 3 15 18 19 se vor aprinde.
În ultimul rând, dacă conectăm ambele BAZE la GND, LED-urile 20 16 13 10 se vor aprinde
Conexiunea butonului este în schimb rezistența clasică conectată la GND pe un pin al butonului și pe celălalt la VDD.
Pinii Arduino înregistrați sunt cei de la 1 la 10.
Pasul 3: Firmware
Periodic, doar unul dintre semafoare este verde. Când este apăsat butonul pentru pietoni, în perioada următoare semaforul pentru pietoni se schimbă în verde
Pentru a gestiona apelul de buton pentru pietoni fără întârziere în timp real, a fost utilizată funcția millis (), care returnează timpul în milisecunde de la pornirea dispozitivului, astfel încât să poată fi utilizat
exemplu
curent lung nesemnat Millis = millis ();.
if (currentMillis - anteriorMillis> 2000 și bt03 == adevărat și bbot == fals)
{
Serial.println (1);
T1 ();
previousMillis = curentMillis;
bt1 = adevărat;
BT03 = fals;
}
Încărcăm ora curentă la fiecare buclă și dacă curentul minus precedentul este mai mare decât timpul ales introduceți dacă pentru a schimba starea semaforului pentru a activa variabila booleană pentru următoarea tranziție, desigur prima variabilă booleană este deja adevărat înainte de intrarea în buclă.
Pasul 4: Renunțare
Acest tutorial a fost produs ca parte a proiectului Makerspace for Inclusion, cofinanțat de Programul Erasmus + al Comisiei Europene.
Proiectul își propune să promoveze o formă informală de educație ca mijloc de a încuraja incluziunea socială a tinerilor, educația informală, care poate fi găsită în spațiile Makerspaces.
Acest tutorial reflectă doar opiniile autorilor, iar Comisia Europeană nu poate fi trasă la răspundere pentru orice utilizare care ar putea fi făcută a informațiilor conținute în acesta.