Kaip padaryti „Arduino“ pagrindu veikiantį šviesoforo valdiklį?

Šviesoforai yra signalizavimo įtaisai, naudojami eismo srautui kelio sankryžose, pėsčiųjų perėjose ir kitose vietose valdyti. Tai trijų spalvų spalvų derinys: raudona, geltona ir žalia. Raudona lemputė liepia žmonėms sustoti, geltona liepia ruoštis arba užvesti variklį, jei jis yra išjungtas, o žalia lemputė rodo, kad jūs galite eiti į priekį.



Šviesoforas

Šiame projekte ketiname sukurti keturių krypčių eismo signalų sistemą naudodami mikrovaldiklį. Mes sudeginsime a C kodas „Arduino Uno“ lentoje nurodykite, kaip įjungti ir išjungti šviesos diodus, kad signalizavimo procese būtų galima pasiekti geriausią perjungimo laiką. Testavimo tikslais bus naudojami 4 deriniai iš 4 šviesos diodų ir įdėti į duoną.



Kaip padaryti 4 krypčių eismo signalą naudojant Seeeduino v4.2?

Eismo signalai yra svarbiausias dalykas, kuris montuojamas keliuose, kad būtų užtikrintas tolygus ir pastovus eismo srautas, ir tai sumažina avarijų tikimybę. Šį projektą galime pagaminti ant mažos duonos lentos. Surinkime šiek tiek informacijos apie šį projektą ir pradėkime dirbti.



1 veiksmas: rinkite komponentus

Geriausias būdas pradėti bet kokį projektą yra sudaryti visų komponentų sąrašą pradžioje ir atlikti trumpą kiekvieno komponento tyrimą. Tai mums padeda išvengti nepatogumų projekto viduryje. Išsamus visų šiame projekte naudojamų komponentų sąrašas pateiktas žemiau.



  • Seeeduino V4.2
  • Šuolių laidai
  • LED (4xžalia, 4xgeltona, 4xRed)
  • 12 V kintamosios srovės adapteris

2 žingsnis: komponentų studijavimas

Dabar, kai žinome savo projekto santrauką ir turime išsamų visų komponentų sąrašą, pažvelkime į priekį ir trumpai išnagrinėkime komponentus, kuriuos ketiname naudoti.

Seeeduino v4.2 yra viena iš geriausių „Arduino“ suderinamų plokščių pasaulyje, paremta mikrovaldikliu „Atmega 328 MCU“. nes jis yra lengvai naudojamas, stabilesnis ir atrodo geriau nei daugelis kitų plokščių. Jo pagrindas yra „Arduino“ įkrovos programa. jis turi ATMEGA16U2 kaip UART į USB keitiklį, nes iš kurio jis gali būti naudojamas kaip FTDI lustas. jis prijungtas prie kompiuterio naudojant mikro USB laidą, kuris paprastai vadinamas „Android“ kabeliu. Plokštės maitinimui taip pat galima naudoti nuolatinės srovės lizdą. įėjimo galia turi būti nuo 7 V iki 15 V.

Seeeduino



Į Bandomoji Lenta yra be litavimo įtaisas. Jis naudojamas laikinų elektroninių grandinių ir konstrukcijų prototipų gamybai ir bandymams atlikti. Dauguma elektroninių komponentų yra tiesiog prijungti prie duonos, tik įkišus jų kaiščius į duoną. Duonos lentos skylėse nustatoma metalinė juosta ir skylės sujungiamos tam tikru būdu. Skylių jungtys parodytos toliau pateiktoje diagramoje:

Bandomoji Lenta

3 žingsnis: darbo principas

Trumpai supažindinkime su 4 krypčių eismo signalo projekto principu. Kadangi tai yra keturių krypčių, mums reikės dvylikos šviesos diodų ir keturių trijų šviesos diodų derinių. Kodas parašytas taip, kad jei vienas derinys rodo žalią šviesą, visi kiti deriniai rodys raudoną šviesą. Jei signalas keičiasi iš žalios į geltoną arba raudoną į geltoną, kitas šviesos diodų derinys taip pat parodys operaciją atitinkamai nuo raudonos iki geltonos arba geltonos iki raudonos.

Visa tai bus padaryta su laiko vėlavimu tarp signalų perėjimo. Pavyzdžiui, šviesos diodas liks žalias beveik penkiolika sekundžių, šviesos diodas liks geltonas beveik dvi sekundes. Raudonos šviesos diodo veikimo trukmė priklauso nuo žalios šviesos diodo trukmės. Tai reiškia, kad jei šviesos diodas šviečia penkiolika sekundžių, visi kiti raudoni šviesos diodai liks penkiolika sekundžių.

4 žingsnis: grandinės sudarymas

Dabar, kai žinome pagrindinį komponentų darbą, eikime į priekį ir pradėkime surinkti komponentus, kad būtų sukurta grandinė. Atlikite šiuos veiksmus, kad tinkamai sujungtumėte visus duonos elementus.

  1. Pirmiausia paimkite visus šviesos diodus ir prijunkite juos duonos lentoje teisinga tvarka kaip raudona, geltona ir žalia.
  2. Užmegzkite bendrą šviesos diodų pagrindų jungtį. Prie teigiamo šviesos diodo gnybto geriau prijungti 220 omų rezistorių.
  3. Dabar atitinkamai prijunkite jungiamuosius laidus.
  4. Dabar prijunkite šviesos diodus prie „Arduino“, kaip parodyta žemiau esančioje grandinės schemoje. „LED-1“, „LED-2“ iki „LED-12“ bus prijungtos prie „Arduino Uno“ plokštės pin1, pin2 iki 12 pin.
  5. Įkelkite kodą į „Arduino Uno“ ir įjunkite jį naudodami nešiojamąjį kompiuterį arba kintamosios srovės adapterį.
  6. Grandinė atrodys taip, kaip parodyta žemiau:

    Grandinės schema

5 žingsnis: darbo pradžia naudojant „Arduino“

Jei anksčiau nesate susipažinę su „Arduino IDE“, nesijaudinkite, nes žemiau galite pamatyti aiškius kodo įrašymo mikrovaldiklio valdyboje veiksmus, naudodami „Arduino IDE“. Naujausią „Arduino IDE“ versiją galite atsisiųsti iš čia ir atlikite toliau nurodytus veiksmus:

1). Kai „Arduino“ plokštė prijungta prie jūsų kompiuterio, atidarykite „Control panel“ ir spustelėkite „Hardware and Sound“. Tada spustelėkite „Įrenginiai ir spausdintuvai“. Raskite prievado, prie kurio prijungta jūsų „Arduino“ plokštė, pavadinimą. Mano atveju tai yra „COM14“, bet jūsų kompiuteryje jis gali skirtis.

Rasti uostą

2). Dabar atidarykite „Arduino IDE“. Iš įrankių nustatykite „Arduino“ lentą į „Arduino“ / „Genuino UNO“.

Nustatymo lenta

3). Tame pačiame meniu Įrankis nustatykite prievado numerį, kurį matėte valdymo skydelyje.

Uosto nustatymas

4). Atsisiųskite žemiau pridėtą kodą ir nukopijuokite jį į savo IDE. Norėdami įkelti kodą, spustelėkite mygtuką įkelti.

Įkelti

Galite atsisiųsti kodą iki paspaudę čia.

6 žingsnis: kodas

Kodas yra gerai komentuojamas ir savaime suprantamas, tačiau kai kurios kodo dalys yra trumpai paaiškintos žemiau.

1. Pradžioje įvardijami visi kaiščiai, kurie vėliau bus prijungti prie „Arduino“.

int led1 = 1; // raudona lemputė 1 int led2 = 2; // geltona lemputė 1 int led3 = 3; // žalia lemputė 1 int led4 = 4; // raudona lemputė 2 int led5 = 5; // geltona lemputė 2 int led6 = 6; // žalia lemputė 2 int led7 = 7; // raudona lemputė 3 int led8 = 8; // geltona lemputė 3 int led9 = 9; // žalia lemputė 3 int led10 = 10; // raudona lemputė 4 int led11 = 11; // geltona lemputė 4 int led12 = 12; // žalia lemputė 4

2. negaliojanti sąranka () yra funkcija, kurioje mes skelbiame, kad visi „Arduino“ plokštės kaiščiai naudojami kaip INPUT arba OUTPUT. Šioje funkcijoje taip pat nustatytas perdavimo greitis. „Baud Rate“ yra ryšio greitis bitais per sekundę, kuriuo mikrovaldiklio plokštė bendrauja su išoriniais įrenginiais. Ši funkcija veikia tik vieną kartą paspaudus mikrovaldiklio plokštės įjungimo mygtuką.

negaliojanti sąranka () {Serial.begin (9600;) // perdavimo sparta nustatyta kaip 9600 pinMode (led1, OUTPUT); // Visi kaiščiai, prijungti prie šviesos diodų, yra nustatyti kaip 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 yra funkcija, kuri kartojasi cikle. Šioje funkcijoje užkoduosime visą procedūrą, kuria mikrovaldiklis valdys išorinius šviesos diodus. Žemiau pateikiama nedidelė kodo dalis. Čia dega pirmosios pusės žalia šviesa ir visos kitos pusės dega raudona šviesa. Šios šviesos tokioje būsenoje liks 15 sekundžių. Po 15 sekundžių geltona pirmosios ir antrosios pusės lemputė užsidegs kitose dviejose pusėse. Po dviejų sekundžių vėlavimo pirmoji pusė degs raudona šviesa, o antroji - žalia. Tai įvyks tol, kol visoms keturioms pusėms bus įjungtos žalios lemputės, o eilė pasikartos.

„digitalWrite“ („led1“, „LOW“); // Pirmosios pusės raudona lemputė išjungta digitalWrite (led2, LOW); // geltona lemputė f pirmoji pusė yra išjungta digitalWrite (led3, HIGH); // Pirmosios pusės žalia lemputė dega „digitalWrite“ („led4“, „HIGH“); // Raudona „seconf“ pusės lemputė dega „digitalWrite“ (led5, LOW); // geltona antrosios pusės lemputė išjungta digitalWrite (led6, LOW); // antrosios pusės žalia lemputė išjungta digitalWrite (led7, HIGH); // Raudona trečiosios pusės lemputė dega „digitalWrite“ (led8, LOW); // geltona trečiosios pusės lemputė išjungta digitalWrite (led9, LOW); // trečiosios pusės žalia lemputė išjungta digitalWrite (led10, HIGH); // raudona ketvirtosios pusės lemputė dega digitalWrite (led11, LOW); // ketvirtosios pusės geltona lemputė yra išjungta digitalWrite (led12, LOW); // ketvirtosios pusės žalia lemputė išsijungia (15000); // dėl 15 sekundžių vėlavimo pirmosios pusės žalia lemputė ir kitų trijų pusių raudonos šviesos liks įjungtos 15 sekundžių digitalWrite (led1, LOW); // pirmosios pusės raudona lemputė išjungta digitalWrite (led2, HIGH); // Geltona pirmosios pusės lemputė dega „digitalWrite“ (led3, LOW); // pirmosios pusės žalia lemputė išjungta digitalWrite (led4, LOW); // raudona antrosios pusės lemputė išjungta digitalWrite (led5, HIGH); // „DigitalWrite“ dega geltona antrosios pusės lemputė (led6, LOW); // antrosios pusės žalia lemputė išjungta digitalWrite (led7, HIGH); // Raudona trečiosios pusės lemputė dega „digitalWrite“ (led8, LOW); // geltona trečiosios pusės lemputė išjungta digitalWrite (led9, LOW); // trečiosios pusės žalia lemputė išjungta digitalWrite (led10, HIGH); // raudona ketvirtosios pusės lemputė dega digitalWrite (led11, LOW); // ketvirtosios pusės geltona lemputė yra išjungta digitalWrite (led12, LOW); // ketvirtosios pusės žalia lemputė išsijungia (2000); dėl 2 sekundžių vėlavimo pirmosios ir antrosios pusės geltona šviesa liks įjungta

Taigi, tai buvo visa 4 krypčių eismo signalo perdavimo procedūra. Dabar galite mėgautis mokymusi ar mokyklos projektu.