Kazalo:

Arduino 2-v-1 modelni krmilnik vlaka: 4 koraki
Arduino 2-v-1 modelni krmilnik vlaka: 4 koraki

Video: Arduino 2-v-1 modelni krmilnik vlaka: 4 koraki

Video: Arduino 2-v-1 modelni krmilnik vlaka: 4 koraki
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Julij
Anonim
Arduino krmilnik vlaka 2 v 1
Arduino krmilnik vlaka 2 v 1

Pred štiridesetimi leti sem za nekaj prijateljev zasnoval model za upravljanje vlaka na osnovi op-amp-a, nato pa sem ga pred približno štirimi leti poustvaril z mikrokrmilnikom PIC. Ta projekt Arduino poustvarja različico PIC, dodaja pa tudi možnost uporabe povezave Bluetooth namesto ročnih stikal za ročico za plin, zavoro in smer. Čeprav je zasnova, ki jo predstavljam tukaj, namenjena 12 -voltnemu železniškemu motorju, jo je mogoče enostavno spremeniti za različne druge aplikacije krmiljenja enosmernega motorja.

Korak: Modulacija širine impulza (PWM)

Modulacija širine impulza (PWM)
Modulacija širine impulza (PWM)

Za tiste, ki ne poznate PWM, to ni tako strašljivo, kot se sliši. Za našo preprosto aplikacijo za krmiljenje motorja v resnici pomeni, da ustvarimo kvadratni val določene frekvence in nato spremenimo delovni cikel. Delovni cikel je opredeljen kot časovno razmerje, v katerem je izhod logično visok v primerjavi z obdobjem valovne oblike. To lahko jasno vidite na zgornjem diagramu z zgornjo valovno obliko pri 10% delovnem ciklu, srednjo valovno obliko pri 50% delovnem ciklu in spodnjo valovno obliko pri 90% delovnem ciklu. Črtkana črta, prekrita na vsaki valovni obliki, predstavlja ekvivalentno enosmerno napetost, ki jo vidi motor. Glede na to, da ima Arduino vgrajeno zmogljivost PWM, je ustvarjanje te vrste krmiljenja enosmernega motorja zelo preprosto. Druga prednost uporabe PWM je, da pomaga pri preprečevanju zagona motorja, kar se lahko zgodi pri uporabi čistega enosmernega toka. Ena pomanjkljivost PWM je, da včasih pri motorju sliši hrup pri frekvenci PWM.

2. korak: Strojna oprema

Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema

Prva slika prikazuje povezave Arduino za stikala in modul gonilnika motorja LM298. V Arduinu so šibki vlečni upori, zato za stikala niso potrebni vlečni upori. Stikalo za smer je preprosto stikalo SPST (enopolni enojni met). Stikala za plin in zavoro sta prikazana kot normalno odprta, trenutna stikala.

Druga slika prikazuje povezave Arduino za modul Bluetooth in modul gonilnika motorja LM298. Izhod Bluetooth TXD se poveže neposredno s serijskim vhodom Arduino RX.

Tretja slika je dvojni H-mostni modul L298N. Modul LM298 ima vgrajen 5 -voltni regulator, ki ga lahko omogoči mostiček. Za Arduino in Bluetooth potrebujemo +5 voltov, za pogon motorja pa želimo +12 voltov. V tem primeru uporabimo +12 voltov za vhod " +12V power" L298N in pustimo mostiček "5V enable" na mestu. To omogoča, da 5-voltni regulator izstopi na povezavo "+5 power" na modulu. To povežite z Arduinom in Bluetooth. Ne pozabite priključiti ozemljitvenih žic za vhod +12 in izhod +5 na modul "power GND".

Želimo, da se izhodna napetost motorja spreminja glede na PWM, ki ga ustvari Arduino, namesto da bi bila samo polna ali popolnoma izklopljena. V ta namen odstranimo mostičke iz “ENA” in “ENB” in povežemo naš Arduino PWM izhod z “ENA” na modulu. Upoštevajte, da je dejanski vklopni pin tisti, ki je najbližje robu plošče (poleg "vhodnih" zatičev). Zadnji pin za vsako omogočanje je +5 voltov, zato se želimo prepričati, da se na to ne povežemo.

Zatiči “IN1” in “IN2” na modulu so povezani z ustreznimi zatiči Arduino. Ti zatiči nadzorujejo smer motorja in ja, obstaja dober razlog, da Arduinu upravljate, namesto da preprosto priključite stikalo na modul. Zakaj, bomo videli v razpravi o programski opremi.

3. korak: Modul Bluetooth

Modul Bluetooth
Modul Bluetooth

Tu prikazana slika je značilna za razpoložljive module Bluetooth. Ko iščete enega za nakup, lahko iščete po izrazih "HC-05" in HC-06 ". Razlike med obema so v vdelani programski opremi in običajno v številu nožic na plošči. Zgornja slika je modula HC-06 in ima poenostavljeno vdelano programsko opremo, ki omogoča le zelo preprosto konfiguracijo. Nastavljena je tudi kot naprava Bluetooth, ki je samo "podrejena". Preprosto povedano, to pomeni, da se lahko odzove samo na ukaze iz naprave »Master« in ne more samo izdajati ukazov. Modul HC-05 ima več možnosti konfiguracije in ga lahko nastavite kot "glavno" ali "podrejeno" napravo. HC-05 ima ponavadi šest zatičev namesto štirih zgoraj prikazanih za HC-06. Državni zatič v resnici ni pomemben, ključni ključ (včasih ima druga imena, kot je »EN«) pa je potreben, če želite izvesti kakršno koli konfiguracijo. Na splošno moduli ne potrebujejo nobene konfiguracije, če ste v redu s privzeto hitrostjo prenosa 9600 in modulu ne želite dati posebnega imena. Imam več projektov, kjer jih uporabljam, zato jih rad poimenujem.

Za konfiguracijo modulov Bluetooth morate kupiti ali zgraditi vmesnik za serijska vrata RS-232 ali vrata USB. V tem prispevku ne bom obravnaval, kako ga sestaviti, vendar bi morali najti informacije v spletu. Ali pa preprosto kupite vmesnik. Konfiguracijski ukazi uporabljajo ukaze AT tako, kot so se v starih časih uporabljali s telefonskimi modemi. Tukaj sem priložil uporabniški priročnik, ki vključuje ukaze AT za vsako vrsto modula. Treba je opozoriti, da HC-06 zahteva ukaze UPPERCASE in ukazni niz se mora dokončati v 1 sekundi. To pomeni, da bo treba nekatere daljše nize za stvari, kot je spreminjanje hitrosti prenosa, izrezati in prilepiti v vaš terminalski program, ali pa boste morali nastaviti besedilne datoteke za pošiljanje. Zahteva VELIKA črka je le, če poskušate poslati konfiguracijske ukaze. Običajni komunikacijski način lahko sprejme vse 8-bitne podatke.

4. korak: Programska oprema

Programska oprema je precej preprosta tako za ročno različico kot za različico Bluetooth. Če želite izbrati različico Bluetooth, preprosto razkomentirajte stavek »#define BT_Ctrl«.

Ko sem napisal kodo PIC, sem eksperimentiral s frekvenco PWM in se končno odločil za 500 Hz. Odkril sem, da če je frekvenca previsoka, potem modul LM298N ne more dovolj hitro reagirati na impulze. To je pomenilo, da izhodna napetost ni linearna in bi lahko naredila velike skoke. Arduino ima vgrajene ukaze PWM, ki pa vam omogočajo le spreminjanje delovnega cikla in ne frekvence. Na srečo je frekvenca približno 490-Hz, tako da je dovolj blizu 500-Hz, ki sem jih uporabil na PIC.

Ena od "značilnosti" dušenja vlakov je občutek zagona za pospeševanje in zaviranje, ki simulira delovanje pravega vlaka. Da bi to dosegli, se v zanko za ročno različico programske opreme vstavi preprosta časovna zamuda. S prikazano vrednostjo traja približno 13 sekund, da preidete od 0 do 12 voltov ali od 12 voltov nazaj na nič. Zamudo je mogoče enostavno spremeniti za daljše ali krajše čase. Edini primer, ko zagon ni v veljavi, je sprememba smernega stikala. Zaradi zaščite je obratovalni cikel PWM takoj nastavljen na 0% vsakič, ko spremenite to stikalo. Zaradi tega je stikalo za smer tudi dvojno kot zavora v sili.

Za zagotovitev takojšnjega ravnanja s stikalom za smer sem njegovo kodo vnesel v upravljalnik prekinitev. To nam omogoča tudi uporabo funkcije »prekini ob spremembi«, tako da ni pomembno, ali je sprememba od nizke do visoke ali od visoke do nizke.

Različica programske opreme Bluetooth uporablja ukaze z eno črko za zagon funkcij naprej, nazaj, zavore in dušenja. Prejeti ukazi dejansko nadomestijo ročna stikala, vendar povzročijo enake odzive. Aplikacijo, ki jo uporabljam za nadzor prek Bluetootha, podjetje Next Prototypes imenuje »serijski krmilnik Bluetooth«. Omogoča vam, da konfigurirate navidezno tipkovnico in nastavite svoje ukazne nize in imena za vsako tipko. Omogoča vam tudi, da nastavite stopnjo ponavljanja, zato sem gumbe zavore in plina nastavil na 50 ms, da dobim približno 14 sekund zagona. Onemogočil sem funkcijo ponavljanja za gumbe naprej in nazaj.

To je to za to objavo. Oglejte si moje druge Instructables. Če vas zanimajo projekti mikrokrmilnikov PIC, obiščite mojo spletno stran www.boomerrules.wordpress.com

Priporočena: