Kuidas teha Arduino-põhist valgusfoori kontrollerit?

Foorid on signaalseadmed, mida kasutatakse liikluse sujuvuse reguleerimiseks tee ristmikel, ülekäigurajal ja muudes kohtades. See on kolme valguse värvi kombinatsioon, mis on punane, kollane ja roheline. Punane tuli kutsub inimesi seisma, kollane käsib mootorit valmistada või käivitada, kui see on välja lülitatud ja roheline tuli näitab, et teil on selge edasi minna.



Valgusfoorid

Selles projektis teeme mikrokontrollerit kasutades nelja suuna liiklussignaalisüsteemi. Me põletame a C kood Arduino Uno plaadil, et öelda, kuidas LED-e sisse ja välja lülitada, et signaalimisprotsessis oleks võimalik täiuslik lülitamise ajastus saavutada. Testimise eesmärgil kasutatakse 4 LED-i nelja kombinatsiooni, mis pannakse leivalauale.



Kuidas teha 4-suunalist liiklussignaali Seeeduino v4.2 abil?

Liiklusmärgid on kõige olulisem, mis teedele paigaldatakse, et hoida sujuvat ja ühtlast liiklusvoogu ning see vähendab õnnetuste tõenäosust. Saame selle projekti teha väikesel leivalaual. Kogume selle projekti kohta teavet ja alustame tööd.



1. samm: komponentide kogumine

Parim lähenemine mis tahes projekti alustamiseks on koostada alguses komponentide loetelu ja läbi viia iga komponendi lühitutvustus. See aitab meil vältida ebameeldivusi projekti keskel. Allpool on toodud kõigi selles projektis kasutatud komponentide täielik loetelu.



  • Seeeduino V4.2
  • Hüppaja juhtmed
  • LED (4xRoheline, 4xKollane, 4xPunane)
  • 12 V vahelduvvoolu adapter

2. samm: komponentide uurimine

Nüüd, kui teame oma projekti kokkuvõtet ja meil on olemas ka kõigi komponentide täielik loetelu, liigume samm edasi ja tutvume lühidalt komponentidega, mida kavatseme kasutada.

Seeeduino v4.2 on üks parimaid Arduino-ga ühilduvaid plaate maailmas, mis põhineb mikrokontrolleril Atmega 328 MCU. kuna seda on lihtne kasutada, stabiilsem ja see näeb välja parem kui paljud teised lauad. See põhineb Arduino alglaaduril. sellel on AARTEGA16U2 UART-USB-muundurina, sest sellest saab seda kasutada FTDI-kiibina. see on ühendatud arvutiga mikro-USB-kaabli abil, mida tavaliselt nimetatakse androidkaabliks. Plaadi toitmiseks võib kasutada ka alalisvoolu pistikut. sisendvõimsus peab olema vahemikus 7V kuni 15V.

Seeeduino



TO Leivaplaat on jooteta seade. Seda kasutatakse ajutiste prototüüpide elektrooniliste ahelate ja disainide valmistamiseks ja katsetamiseks. Enamik elektroonikakomponente on lihtsalt paneeliga ühendatud, lihtsalt sisestades nende tihvtid leivaplaati. Leivaplaadi augud asetatakse metallribaga ja augud ühendatakse kindlal viisil. Aukude ühendused on näidatud alloleval skeemil:

Leivaplaat

3. samm: tööpõhimõte

Tutvume lühikese sissejuhatusega 4-suunalise liiklussignaali projekti tööpõhimõtte üle. Kuna see on neljasuunaline, vajame kaksteist LED-i ja kolme kolme LED-i kombinatsiooni. Kood on kirjutatud nii, et kui üks kombinatsioon näitab rohelist tuld, siis kõik ülejäänud kombinatsioonid näitavad punast tuld. Kui signaal muutub rohelisest kollaseks või punasest kollaseks, näitab teine ​​LED-de kombinatsioon ka tehingut vastavalt punasest kollaseks või kollasest punaseks.

Seda kõike tehakse signaalide ülemineku vahelise viivitusega. Näiteks jääb LED roheliseks peaaegu viisteist sekundit, LED jääb kollaseks peaaegu kaheks sekundiks. Punase LED-i kestus sõltub rohelise LED-i kestusest. See tähendab, et kui LED on roheline viisteist sekundit, jäävad kõik teised punased LED-id põlema viisteist sekundit.

4. samm: vooluringi tegemine

Nüüd, kui teame komponentide peamist tööd, liigume edasi ja alustame komponentide kokkupanekut vooluahela loomiseks. Kõikide paneelil olevate komponentide õigeks ühendamiseks toimige järgmiselt.

  1. Kõigepealt võtke kõik valgusdioodid ja ühendage need leivalauale õiges järjekorras nagu punane, kollane ja roheline.
  2. Looge LED-ide aluste ühine ühendus. LED-i positiivse klemmiga on parem ühendada 220-oomine takisti.
  3. Nüüd ühendage ühendusjuhtmed vastavalt.
  4. Nüüd ühendage valgusdioodid Arduinoga, nagu on näidatud allpool toodud skeemil. LED-1, LED-2 kuni LED-12 ühendatakse Arduino Uno plaadi pin1-ga, pin2 kuni pin12-ni.
  5. Laadige kood Arduino Unosse üles ja toite seda sülearvuti või vahelduvvoolu-alalisvooluadapteri abil.
  6. Vooluring näeb välja nagu allpool näidatud pilt:

    Vooluringi skeem

5. samm: Arduinoga alustamine

Kui te pole Arduino IDE-ga varem tuttav, ärge muretsege, sest allpool näete Arduino IDE abil mikrokontrolleri plaadil koodi kirjutamise selgeid samme. Arduino IDE uusima versiooni saate alla laadida siit siin ja järgige allpool nimetatud samme:

1). Kui Arduino tahvel on arvutiga ühendatud, avage juhtpaneel ja klõpsake nuppu „Riistvara ja heli”. Seejärel klõpsake nuppu „Seadmed ja printerid”. Leidke selle sadama nimi, millega teie Arduino tahvel on ühendatud. Minu puhul on see COM14, kuid see võib teie arvutis olla erinev.

Sadama leidmine

2). Nüüd avage Arduino IDE. Tööriistadest seadke Arduino tahvel olekuks Arduino / Genuino UNO.

Laua määramine

3). Valige samas menüüs Tööriist pordi number, mida nägite juhtpaneelil.

Pordi seadistamine

4). Laadige alla allolev kood ja kopeerige see oma IDE-sse. Koodi üleslaadimiseks klõpsake üleslaadimise nuppu.

Laadi üles

Koodi saate alla laadida klõpsates siin.

6. samm: kood

Kood on hästi kommenteeritud ja iseenesestmõistetav, kuid siiski selgitatakse allpool mõnda koodi osa lühidalt.

1. Alguses nimetatakse kõik tihvtid, mis ühendatakse hiljem Arduinoga.

int led1 = 1; // punane tuli 1 int led2 = 2; // kollane tuli 1 int led3 = 3; // roheline tuli 1 int led4 = 4; // punane tuli 2 int led5 = 5; // kollane tuli 2 int led6 = 6; // roheline tuli 2 int led7 = 7; // punane tuli 3 int led8 = 8; // kollane tuli 3 int led9 = 9; // roheline tuli 3 int led10 = 10; // punane tuli 4 int led11 = 11; // kollane tuli 4 int led12 = 12; // roheline tuli 4

2. kehtetu seadistamine () on funktsioon, milles deklareerime kõiki Arduino tahvli tihvte kasutama sisendina või väljundina. Selles funktsioonis on seatud ka ülekandekiirus. Baudi kiirus on sidekiirus bitti sekundis, mille kaudu mikrokontrolleri plaat suhtleb väliste seadmetega. See funktsioon töötab ainult üks kord, kui vajutatakse mikrokontrolleri plaadi lubamisnuppu.

void setup () {Serial.begin (9600;) // Baudi kiiruseks on seatud 9600 pinMode (led1, OUTPUT); // Kõik LED-idega ühendatud tihvtid on seatud kui 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 on funktsioon, mis töötab tsüklis korduvalt. Selles funktsioonis kodeerime kogu protseduuri, mille abil mikrokontroller juhib väliseid LED-e. Allpool on toodud väike kooditükk. Siin põleb esimese külje roheline tuli ja kõigil teistel külgedel põleb punane tuli. Need tuled jäävad sellesse olekusse 15 sekundiks. 15 sekundi pärast põleb esimese ja teise külje kollane tuli kahel teisel küljel punane tuli põlema. Pärast kahesekundilist viivitust põleb esimesel küljel punane tuli ja teisel pool roheline tuli. See juhtub seni, kuni kõigil neljal küljel on omakorda sisse lülitatud rohelised tuled ja siis kordub silmus.

digitalWrite (led1, LOW); // Esimese külje punane tuli on väljas digitalWrite (led2, LOW); // kollane tuli f esimene külg on välja lülitatud digitalWrite (led3, HIGH); // Esimese külje roheline tuli on digitaalsel kirjutamisel (led4, HIGH); // seconfi poole punane tuli põleb digitalWrite'is (led5, LOW); // teise külje kollane tuli on digitalWrite'ist väljas (led6, LOW); // teise külje roheline tuli ei tööta digitalWrite (led7, HIGH); // DigitalWrite'is põleb kolmanda külje punane tuli (led8, LOW); // kolmanda külje kollane tuli on väljas digitalWrite (led9, LOW); // kolmanda külje roheline tuli ei tööta digitalWrite (led10, HIGH); // neljanda külje punane tuli põleb digitalWrite'is (led11, LOW); // neljanda külje kollane tuli on väljas digitalWrite (led12, LOW); // neljanda külje roheline tuli on viivitatud (15000); // 15-sekundilise viivituse tõttu jäävad esimese külje roheline tuli ja ülejäänud kolme külje punased tuled 15 sekundiks sisselülitatuks digitalWrite (led1, LOW); // esimese külje punane tuli on väljas digitalWrite (led2, HIGH); // DigitalWrite'is põleb esimese külje kollane tuli (led3, LOW); // esimese külje roheline tuli on väljas digitalWrite (led4, LOW); // teise külje punane tuli ei tööta digitalWrite (led5, HIGH); // DigitalWrite'is põleb teise külje kollane tuli (led6, LOW); // teise külje roheline tuli ei tööta digitalWrite (led7, HIGH); // DigitalWrite'is põleb kolmanda külje punane tuli (led8, LOW); // kolmanda külje kollane tuli on väljas digitalWrite (led9, LOW); // kolmanda külje roheline tuli ei tööta digitalWrite (led10, HIGH); // neljanda külje punane tuli põleb digitalWrite'is (led11, LOW); // neljanda külje kollane tuli on väljas digitalWrite (led12, LOW); // neljanda külje roheline tuli on viivitatud (2000); 2 sekundilise viivituse tõttu jääb esimese ja teise poole kollane tuli põlema

Niisiis, see oli kogu menetlus 4-suunalise liiklussignaali loomiseks. Nüüd saate nautida selle õppimiseks või kooliprojektiks.