Sisällysluettelo:

Arduino 2-in-1 -junaohjain: 4 vaihetta
Arduino 2-in-1 -junaohjain: 4 vaihetta

Video: Arduino 2-in-1 -junaohjain: 4 vaihetta

Video: Arduino 2-in-1 -junaohjain: 4 vaihetta
Video: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, Heinäkuu
Anonim
Arduino 2-in-1 -juna-ohjain
Arduino 2-in-1 -juna-ohjain

Neljäkymmentä vuotta sitten suunnittelin op-amp-pohjaisen mallijunakaasun parille ystävälle, ja sitten noin neljä vuotta sitten loin sen uudelleen PIC-mikrokontrollerilla. Tämä Arduino -projekti luo PIC -version, mutta lisää myös mahdollisuuden käyttää Bluetooth -yhteyttä kaasun, jarrun ja suunnan manuaalisten kytkimien sijaan. Vaikka tässä esittelemäni malli on suunnattu 12 voltin rautatiemoottorille, sitä voidaan helposti muokata moniin muihin DC -moottorin ohjaussovelluksiin.

Vaihe 1: Pulssileveyden modulointi (PWM)

Pulssileveyden modulointi (PWM)
Pulssileveyden modulointi (PWM)

Niille teistä, jotka eivät tunne PWM: ää, se ei ole niin pelottavaa kuin miltä se kuulostaa. Yksinkertaisella moottorinohjaussovelluksellamme se tarkoittaa vain sitä, että luomme jonkin taajuuden neliöaallon ja muutamme sitten käyttöjaksoa. Käyttöjakso määritellään ajan suhteena, jonka lähtö on loogisesti korkea aaltomuodon jaksoon verrattuna. Voit nähdä sen selvästi edellä olevasta kaaviosta, kun ylempi aaltomuoto on 10%: n toimintajaksolla, keskimmäinen aaltomuoto 50%: n toimintajaksolla ja alempi aaltomuoto 90%: n käyttöjaksolla. Kussakin aaltomuodossa oleva katkoviiva edustaa moottorin vastaavaa tasavirtajännitettä. Koska Arduinolla on sisäänrakennettu PWM -ominaisuus, tämäntyyppisen tasavirtamoottorin ohjauksen luominen on todella yksinkertaista. Toinen PWM: n käytön etu on se, että se auttaa pitämään moottorin vääjäämättä käynnissä, mikä voi tapahtua käytettäessä suoraa tasavirtaa. Yksi PWM: n haittapuoli on se, että moottorista kuuluu joskus ääniääntä PWM -taajuudella.

Vaihe 2: Laitteisto

Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto

Ensimmäisessä kuvassa on kytkinten Arduino -liitännät ja moottorin ohjainmoduuli LM298. Arduinon sisällä on heikkoja vetovastusvastuksia, joten kytkimiin ei tarvita vetovoimia. Suuntakytkin on yksinkertainen SPST (yksinapainen yhden heiton) -kytkin. Kaasu- ja jarrukytkimet näytetään normaalisti auki olevina hetkellisinä painikkeina.

Toisessa kuvassa on Bluetooth -moduulin ja LM298 -moottorinohjainmoduulin Arduino -liitännät. Bluetooth TXD -lähtö kytkeytyy suoraan Arduino RX -sarjatuloon.

Kolmas kuva on L298N dual H-bridge -moduuli. LM298 -moduulissa on sisäinen 5 voltin säädin, joka voidaan ottaa käyttöön hyppyjohtimella. Tarvitsemme +5 volttia Arduinolle ja Bluetoothille, mutta haluamme +12 volttia moottorin käyttämiseen. Tässä tapauksessa käytämme +12 volttia L298N: n " +12V teho" -tuloon ja jätämme "5V käyttöön" -hyppyjohdon paikalleen. Näin 5 voltin säädin voi syöttää moduulin "+5 teho" -liitäntään. Yhdistä se Arduinoon ja Bluetoothiin. Muista kytkeä +12 -tulon ja +5 -ulostulon maadoitusjohdot moduuliin "power GND".

Haluamme, että moottorin lähtöjännite vaihtelee Arduinon generoiman PWM: n perusteella sen sijaan, että se olisi kokonaan päällä tai pois päältä. Tätä varten poistamme puserot "ENA": sta ja "ENB": stä ja liitämme Arduino PWM -lähdön moduulin "ENA" -liitäntään. Muista, että todellinen sallintatappi on lähimpänä levyn reunaa ("syöttötappien" vieressä). Jokaisen käyttöönoton tappi on +5 volttia, joten haluamme varmistaa, ettemme muodosta yhteyttä siihen.

Moduulin IN1- ja IN2 -nastat on kytketty vastaaviin Arduino -nastoihin. Nämä nastat ohjaavat moottorin suuntaa, ja kyllä, on hyvä syy antaa Arduinon ohjata niitä sen sijaan, että kytket vain kytkimen moduuliin. Näemme miksi ohjelmistokeskustelussa.

Vaihe 3: Bluetooth -moduuli

Bluetooth -moduuli
Bluetooth -moduuli

Tässä näkyvä kuva on tyypillinen käytettävissä oleville Bluetooth -moduuleille. Kun etsit ostettavaa, voit hakea termeillä "HC-05" ja HC-06 ". Ero näiden kahden välillä on laiteohjelmistossa ja yleensä levyn nastojen lukumäärässä. Yllä oleva kuva on HC-06-moduulista ja sen mukana tulee yksinkertaistettu laiteohjelmisto, joka sallii vain perusasetukset. Se on myös asetettu vain "orjaksi" Bluetooth -laitteeksi. Yksinkertaisesti sanottuna se tarkoittaa, että se voi vastata vain "Master" -laitteen komentoihin eikä voi antaa komentoja yksin. HC-05-moduulissa on enemmän konfigurointimahdollisuuksia, ja se voidaan asettaa joko "isäntä"-tai "orja" -laitteeksi. HC-05: ssä on yleensä kuusi nastaa vain neljän edellä mainitun HC-06: n sijasta. Tila -nasta ei ole todella tärkeä, mutta avainneula (joskus muilla nimillä, kuten "EN") vaaditaan, jos haluat tehdä minkä tahansa määrityksen. Yleensä moduulit eivät tarvitse mitään kokoonpanoa, jos olet kunnossa oletusnopeudella 9600 etkä halua antaa tiettyä nimeä moduulille. Minulla on useita projekteja, joissa käytän näitä, joten haluan nimetä ne vastaavasti.

Bluetooth-moduulien määrittäminen edellyttää, että ostat tai rakennat rajapinnan RS-232-sarjaporttiin tai USB-porttiin. En käsittele tämän viestin rakentamista tässä viestissä, mutta sinun pitäisi pystyä löytämään tietoa verkosta. Tai vain ostaa käyttöliittymä. Konfigurointikomennot käyttävät AT -komentoja, kuten vanhoina aikoina puhelinmodeemien kanssa. Olen liittänyt tähän käyttöoppaan, joka sisältää AT -komennot kullekin moduulityypille. Yksi huomioitava asia on, että HC-06 vaatii KOKO-komentoja ja komentorivin on täytyttävä 1 sekunnin kuluessa. Tämä tarkoittaa, että jotkut pidemmistä merkkijonoista, kuten tiedonsiirtonopeuden muuttamisesta, on leikattava ja liitettävä pääteohjelmaasi tai sinun on määritettävä lähetettävät tekstitiedostot. SUURI KOKO -vaatimus on vain, jos yrität lähettää kokoonpanokomentoja. Säännöllinen kommunikaatiotila voi hyväksyä mitä tahansa 8-bittistä dataa.

Vaihe 4: Ohjelmisto

Ohjelmisto on melko yksinkertainen sekä manuaalisessa että Bluetooth -versiossa. Jos haluat valita Bluetooth -version, poista "#define BT_Ctrl" -lausekkeen kommentti.

Kun kirjoitin PIC-koodin, kokeilin PWM-taajuutta ja lopulta asettuin 500 Hz: lle. Huomasin, että jos taajuus oli liian korkea, LM298N -moduuli ei kyennyt reagoimaan riittävän nopeasti pulsseihin. Tämä tarkoitti sitä, että jännitelähtö ei ollut lineaarinen ja saattoi ottaa suuria hyppyjä. Arduinolla on sisäänrakennetut PWM -komennot, mutta niiden avulla voit vain muuttaa käyttöjaksoa eikä taajuutta. Onneksi taajuus on noin 490 Hz, joten se on tarpeeksi lähellä 500 Hz: tä, jota käytin PIC: ssä.

Yksi junakaasujen "ominaisuuksista" on kiihtyvyyden ja jarrutuksen vauhti, joka simuloi oikean junan toimintaa. Tämän saavuttamiseksi yksinkertainen aikaviive lisätään silmukkaan ohjelmiston manuaalista versiota varten. Kun arvo on näytetty, kestää noin 13 sekuntia siirtyä 0-12 voltista tai 12 voltista takaisin nollaan. Viive voidaan helposti muuttaa pidemmäksi tai lyhyemmäksi ajaksi. Ainoa tapaus, jossa vauhti ei ole voimassa, on suuntakytkimen vaihtaminen. Suojausta varten PWM -käyttöjakso asetetaan välittömästi 0%: iin aina, kun tätä kytkintä vaihdetaan. Käytännössä tämä tekee suunnanvaihtimesta myös hätäjarrun.

Suuntakytkimen välittömän käsittelyn varmistamiseksi laitoin sen koodin keskeytyskäsittelijään. Tämän ansiosta voimme myös käyttää "keskeyttää muutoksen" -toimintoa, joten ei ole väliä, onko muutos alhaisesta korkeaan vai korkeaan matalaan.

Ohjelmiston Bluetooth -versio käyttää yksikirjaimisia komentoja eteenpäin-, peruutus-, jarrutus- ja kaasutoimintojen käynnistämiseen. Itse asiassa vastaanotetut komennot korvaavat manuaaliset kytkimet, mutta aiheuttavat samat vastaukset. Sovellusta, jota käytän Bluetooth -ohjaukseen, kutsuu Next Prototypes”Bluetooth -sarjaohjaimeksi”. Sen avulla voit määrittää virtuaalisen näppäimistön ja asettaa omat komentojonot ja nimet kullekin näppäimelle. Sen avulla voit myös asettaa toistotaajuuden, joten asetin jarru- ja kaasupainikkeet 50 ms: iin, jotta saadaan noin 14 sekunnin vauhti. Poistin eteen- ja taaksepäin -painikkeiden uusintatoiminnon käytöstä.

Siinä se tästä postauksesta. Tutustu muihin ohjekirjoihini. Jos olet kiinnostunut PIC -mikro -ohjainprojekteista, tutustu verkkosivustooni osoitteessa www.boomerrules.wordpress.com

Suositeltava: