Hvordan laver man Arduino-baseret trafiklyscontroller?
Trafiklys er signalanordninger, der bruges til at kontrollere strømmen af trafik på vejkryds, fodgængerfelt og andre steder. Det er en kombination af tre lysfarver, der er røde, gule og grønne. Det røde lys fortæller folk at stoppe, gult fortæller at de skal gøre sig klar eller starte motoren, hvis den er slukket, og det grønne lys indikerer, at du er klar til at gå videre.
I dette projekt skal vi lave et 4-vejs trafiksignalsystem ved hjælp af en mikrocontroller. Vi brænder en C-kode på Arduino Uno-tavlen for at fortælle det, hvordan man tænder og slukker lysdioderne, så den perfekte timing for skift kan opnås i signalprocessen. 4 kombinationer af 4 lysdioder vil blive brugt og placeret på brødbrættet til testformålet.
Hvordan laver man 4-vejs trafiksignal ved hjælp af Seeeduino v4.2?
Trafiksignaler er det vigtigste, der er installeret på vejene for at holde en jævn og jævn strøm af trafik, og det minimerer risikoen for ulykker. Vi kan lave dette projekt på et lille brødbræt. Lad os samle nogle oplysninger om dette projekt og begynde at arbejde.
Trin 1: Samling af komponenterne
Den bedste metode til at starte ethvert projekt er at lave en liste over komplette komponenter i starten og gennemgå en kort undersøgelse af hver komponent. Dette hjælper os med at undgå generne midt i projektet. En komplet liste over alle komponenter anvendt i dette projekt er angivet nedenfor.
Trin 2: Studere komponenterne
Nu da vi kender abstraktet af vores projekt, og vi også har en komplet liste over alle komponenterne, lad os gå et skridt videre og gennemgå en kort undersøgelse af de komponenter, vi skal bruge.
Seeeduino v4.2er et af de bedste Arduino-kompatible kort i verden, der er baseret på mikrokontroller Atmega 328 MCU. fordi det er let at bruge, mere stabilt og det ser bedre ud end mange andre brædder. Det er baseret på Arduino bootloader. den har en ATMEGA16U2 som en UART-til-USB-konverter, fordi den kan bruges som en FTDI-chip. det er tilsluttet computeren ved hjælp af et mikro-USB-kabel, der almindeligvis kaldes et android-kabel. Et jævnstrømsstik kan også bruges til at tænde kortet. indgangseffekten skal være fra 7V til 15V.
EN Brødbræter en loddefri enhed. Det bruges til at fremstille og teste midlertidige prototype elektroniske kredsløb og designs. De fleste af de elektroniske komponenter er simpelthen forbundet til et brødbræt bare ved at indsætte deres ben i brødbrættet. En strimmel af metal lægges ned i brødbrætets huller, og hullerne forbindes på en bestemt måde. Forbindelserne af hullerne er vist i nedenstående diagram:
Trin 3: Arbejdsprincip
Lad os gennemgå en kort introduktion til arbejdsprincippet i 4-vejs trafiksignalprojektet. Da dette er en 4-vejs, har vi brug for tolv lysdioder og fire kombinationer af tre lysdioder. Koden er skrevet, så hvis en kombination viser et grønt lys, viser alle de andre kombinationer rødt lys. Hvis et signal skifter fra grøn til gul eller rød til gul, vil en anden kombination af lysdioderne også vise en transaktion fra henholdsvis rød til gul eller gul til rød.
Alt dette vil ske med en tidsforsinkelse mellem signalovergangen. For eksempel forbliver en LED grøn i næsten femten sekunder, en LED forbliver gul i næsten to sekunder. Varigheden af den røde LED afhænger af varigheden af den grønne LED. Det betyder, at hvis en LED er grøn i femten sekunder, forbliver alle de andre røde lysdioder i femten sekunder.
Trin 4: Gør kredsløbet
Nu som vi kender komponenternes hovedarbejde, lad os gå videre og begynde at samle komponenterne for at skabe kredsløbet. Gå gennem følgende trin for at forbinde alle komponenter korrekt i brødpladen.
- Først og fremmest skal du tage alle lysdioderne og forbinde dem i brødbrættet i den rigtige rækkefølge som rød, gul og grøn.
- Foretag en fælles forbindelse af grundene til alle lysdioderne. Det er bedre at forbinde en 220 ohm modstand til den positive terminal på LED'en.
- Tilslut nu forbindelsesledningerne i overensstemmelse hermed.
- Tilslut nu lysdioderne til Arduino som vist i kredsløbsdiagrammet nedenfor. LED-1, LED-2 op til LED-12 forbindes til pin1, pin2 op til pin12 på Arduino Uno-kortet.
- Upload koden i Arduino Uno, og tænd den ved hjælp af en bærbar computer eller AC til DC-adapteren.
- Kredsløbet vil se ud som billedet vist nedenfor:
Trin 5: Kom godt i gang med Arduino
Hvis du ikke er bekendt med Arduino IDE før, skal du ikke bekymre dig, for nedenfor kan du se klare trin til at brænde kode på mikrocontrollerkortet ved hjælp af Arduino IDE. Du kan downloade den nyeste version af Arduino IDE herfra og følge nedenstående trin:
1). Når Arduino-kortet er tilsluttet din pc, skal du åbne "Kontrolpanel" og klikke på "Hardware og lyd". Klik derefter på "Enheder og printere". Find navnet på den port, som dit Arduino-kort er tilsluttet. I mit tilfælde er det "COM14", men det kan være anderledes på din pc.
2). Åbn nu Arduino IDE. Fra værktøjer skal du indstille Arduino-kortet til Arduino / Genuino UNO.
3). Fra den samme værktøjsmenu skal du indstille det portnummer, du så i kontrolpanelet.
4). Download nedenstående kode og kopier den til din IDE. Klik på uploadknappen for at uploade koden.
Du kan downloade koden ved at klikke her.
Trin 6: Kode
Koden er godt kommenteret og selvforklarende, men stadig er en del af koden kort forklaret nedenfor.
1. I starten navngives alle benene, som senere forbindes til Arduino.
int led1 = 1; // rødt lys 1 int led2 = 2; // gult lys 1 int led3 = 3; // grønt lys 1 int led4 = 4; // rødt lys 2 int led5 = 5; // gult lys 2 int led6 = 6; // grønt lys 2 int led7 = 7; // rødt lys 3 int led8 = 8; // gult lys 3 int led9 = 9; // grønt lys 3 int led10 = 10; // rødt lys 4 int led11 = 11; // gult lys 4 int led12 = 12; // grønt lys 4
2. ugyldig opsætning ()er en funktion, hvor vi erklærer, at alle benene på Arduino-kortet skal bruges som INPUT eller OUTPUT. Baudrate er også indstillet i denne funktion. Baudrate er kommunikationshastigheden i bits pr. Sekund, hvormed mikrokontrolkortet kommunikerer med de eksterne enheder. Denne funktion kører kun en gang, når der trykkes på aktiveringsknappen på mikrocontrolkortet.
ugyldig opsætning () {Serial.begin (9600;) // Baudrate er indstillet til 9600 pinMode (led1, OUTPUT); // Alle stifter, der er tilsluttet lysdioder, er indstillet som OUTPUT pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); pinMode (led7, OUTPUT); pinMode (led8, OUTPUT); pinMode (led9, OUTPUT); pinMode (led10, OUTPUT); pinMode (led11, OUTPUT); pinMode (led12, OUTPUT); }
3. void loop er en funktion, der kører gentagne gange i en loop. I denne funktion koder vi hele proceduren, hvormed mikrokontrolleren styrer de eksterne lysdioder. Et lille stykke kode er angivet nedenfor. Her er det grønne lys på den første side tændt, og alle andre sider har deres røde lys tændt. Disse lys forbliver i denne tilstand i 15 sekunder. Efter 15 sekunder tænder det gule lys på første og anden side på de to andre sider, og deres røde lys forbliver tændt. Efter en forsinkelse på to sekunder vil den første side have sit røde lys tændt og den anden side have sit grønne lys. Dette vil ske, indtil alle de fire sider har deres grønne lys tændt, på deres tur og derefter gentager sløjfen sig selv.
digitalWrite (led1, LOW); // Rødt lys på første side er slukket for digitalWrite (led2, LOW); // gult lys f første side er slukket for digitalWrite (led3, HIGH); // Green Light of First side er på digitalWrite (led4, HIGH); // Det røde lys på seconf-siden er på digitalWrite (led5, LOW); // det gule lys på anden side er slukket for digitalWrite (led6, LOW); // grønt lys på anden side er slukket for digitalWrite (led7, HIGH); // Rødt lys på tredje side er på digitalWrite (led8, LOW); // det gule lys på tredje side er slukket for digitalWrite (led9, LOW); // grønt lys på tredje side er slukket for digitalWrite (led10, HIGH); // rødt lys på fjerde side er på digitalWrite (led11, LOW); // gult lys på fjerde side er slukket for digitalWrite (led12, LOW); // grønt lys på fjerde side er slukket (15000); // på grund af en forsinkelse på 15 sekunder forbliver det grønne lys på første side og de røde lys på de andre tre sider tændt i 15 sekunder digitalWrite (led1, LOW); // rødt lys på første side er slukket for digitalWrite (led2, HIGH); // Det gule lys på første side er på digitalWrite (led3, LOW); // grønt lys på første side er slukket for digitalWrite (led4, LOW); // rødt lys på anden side er slukket for digitalWrite (led5, HIGH); // Det gule lys på anden side er på digitalWrite (led6, LOW); // grønt lys på anden side er slukket for digitalWrite (led7, HIGH); // Rødt lys på tredje side er på digitalWrite (led8, LOW); // det gule lys på tredje side er slukket for digitalWrite (led9, LOW); // grønt lys på tredje side er slukket for digitalWrite (led10, HIGH); // rødt lys på fjerde side er på digitalWrite (led11, LOW); // gult lys på fjerde side er slukket for digitalWrite (led12, LOW); // grønt lys på fjerde side er slukket (2000); // på grund af en forsinkelse på 2 sekunder forbliver det gule lys fra første og seond side tændt
Så dette var hele proceduren for at lave et 4-vejs trafiksignal. Nu kan du nyde at lave det til din læring eller et skoleprojekt.