Sisukord:

Arduino 2-ühes mudeli rongikontroller: 4 sammu
Arduino 2-ühes mudeli rongikontroller: 4 sammu

Video: Arduino 2-ühes mudeli rongikontroller: 4 sammu

Video: Arduino 2-ühes mudeli rongikontroller: 4 sammu
Video: Использование драйвера шагового двигателя L298N Для управления 4-проводным шаговым двигателем 2024, Juuli
Anonim
Arduino 2-ühes mudeli rongijuht
Arduino 2-ühes mudeli rongijuht

Nelikümmend aastat tagasi kujundasin paarile sõbrale op-amp-põhise mudeli rongi gaasi ja seejärel umbes neli aastat tagasi lõin selle uuesti PIC-mikrokontrolleri abil. See Arduino projekt loob PIC -versiooni, kuid lisab ka võimaluse kasutada gaasi-, piduri- ja suunajuhtimise käsitsi lülitite asemel Bluetooth -ühendust. Kuigi siin esitatud disain on suunatud 12 -voldisele raudteemootorile, saab seda hõlpsasti muuta paljude muude alalisvoolumootori juhtimisrakenduste jaoks.

1. samm: impulsi laiuse modulatsioon (PWM)

Impulsi laiuse modulatsioon (PWM)
Impulsi laiuse modulatsioon (PWM)

Neile, kes pole PWM -iga tuttavad, pole see nii hirmutav, kui tundub. Meie lihtsa mootorijuhtimisrakenduse jaoks tähendab see tegelikult ainult seda, et genereerime teatud sagedusega ruutlaine ja seejärel muudame töötsüklit. Töötsükkel on määratletud kui aja suhe, mille jooksul väljund on lainekuju perioodiga võrreldes loogiliselt kõrge. Ülaltoodud diagrammil näete seda üsna selgelt, kui ülemine lainekuju on 10% töötsükliga, keskmine lainekuju 50% töötsükliga ja alumine lainekuju 90% töötsükliga. Iga lainekujuga katkendlik joon tähistab mootori poolt nähtud samaväärset alalispinget. Arvestades, et Arduinol on sisseehitatud PWM -funktsioon, on seda tüüpi alalisvoolumootori juhtimise loomine tõesti lihtne. Veel üks PWM -i kasutamise eelis on see, et see aitab hoida mootorit ebaõnnestunud käivitamisel, mis võib juhtuda otsese alalisvoolu kasutamisel. PWM -i üks puudus on see, et mõnikord on mootorist kuuldav müra PWM -i sagedusel.

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara

Esimesel pildil on näidatud lülitite ja LM298 mootori draiverimooduli Arduino ühendused. Arduino sisemuses on nõrgad tõmbetakistid, seega pole lülitite jaoks vaja tõmbetakistusi. Suuna lüliti on lihtne SPST (ühepooluseline ühe viskega) lüliti. Gaasi- ja pidurilülitid kuvatakse tavaliselt avatud, hetkeliste kontaktnuppudena.

Teisel pildil on Arduino ühendused Bluetooth -mooduli ja LM298 mootori draiverimooduli jaoks. Bluetooth TXD väljund ühendub otse Arduino RX jada sisendiga.

Kolmas pilt on L298N topelt H-silla moodul. LM298 moodulil on sisseehitatud 5 -voldine regulaator, mida saab hüppajaga lubada. Vajame Arduino ja Bluetoothi jaoks +5 volti, kuid tahame, et mootori käivitamiseks oleks +12 volti. Sellisel juhul rakendame +12 volti L298N sisendile „ +12V toide” ja jätame „5V lubamise” hüppaja oma kohale. See võimaldab 5-voldisel regulaatoril väljuda mooduli "+5 toite" ühendusse. Ühendage see Arduino ja Bluetoothiga. Ärge unustage ühendada +12 sisendi ja +5 väljundi maandusjuhtmed mooduliga „power GND”.

Soovime, et mootori väljundpinge muutuks sõltuvalt Arduino genereeritud PWM -ist, selle asemel et see oleks täielikult sisse või välja lülitatud. Selleks eemaldame džemprid ENA -st ja ENB -st ning ühendame Arduino PWM -väljundi mooduli ENA -ga. Pidage meeles, et tegelik lubamise tihvt on see, mis on plaadi servale kõige lähemal (sisendi tihvtide kõrval). Iga lubamise tagumine tihvt on +5 volti, nii et tahame veenduda, et me sellega ühendust ei loo.

Mooduli "IN1" ja "IN2" tihvtid on ühendatud vastavate Arduino tihvtidega. Need tihvtid juhivad mootori suunda ja jah, on hea põhjus lasta Arduino neid juhtida, selle asemel et lihtsalt lülitit mooduliga ühendada. Seda näeme tarkvara arutelus.

Samm: Bluetooth -moodul

Bluetooth -moodul
Bluetooth -moodul

Siin näidatud pilt on tüüpiline saadaolevatele Bluetooth -moodulitele. Ostes otsingut, saate otsida terminite “HC-05” ja HC-06”järgi. Erinevused nende kahe vahel on püsivaras ja tavaliselt tahvlite arvus. Ülaltoodud pilt on HC-06 moodulist ja kaasas lihtsustatud püsivara, mis võimaldab ainult väga lihtsat konfigureerimist. Samuti on see seadistatud ainult „orja” Bluetooth -seadmeks. Lihtsamalt öeldes tähendab see seda, et see saab vastata ainult "Master" seadme käskudele ega saa ise käske anda. Moodulil HC-05 on rohkem konfigureerimisvõimalusi ja seda saab seadistada kas “Master” või “Slave” seadmeks. HC-05-l on tavaliselt kuus tihvti, mitte ainult neli eespool HC-06 jaoks näidatud tihvti. Osariigi nööpnõel pole tegelikult oluline, kuid võtmehoidja (mõnikord kasutatakse teiste nimedega, näiteks „EN”) on vajalik mis tahes konfiguratsiooni tegemiseks. Üldiselt ei vaja moodulid mingit konfiguratsiooni, kui teil on vaikimisi edastuskiirus 9600 korras ja te ei hooli moodulile konkreetse nime andmisest. Mul on mitu projekti, kus ma neid kasutan, nii et mulle meeldib neid vastavalt nimetada.

Bluetooth-moodulite konfigureerimine eeldab RS-232 jadaporti või USB-porti liidese ostmist või loomist. Ma ei kata selles postituses, kuidas seda luua, kuid peaksite saama veebist teavet leida. Või lihtsalt liidese ostmine. Konfiguratsioonikäsklused kasutavad AT käske omamoodi nagu vanasti telefonimodemitega. Lisasin siia kasutusjuhendi, mis sisaldab AT -käske iga mooduli tüübi jaoks. Üks asi, mida tuleb märkida, on see, et HC-06 nõuab käske SUURED TÄHISED ja käsurida peab täituma 1 sekundi jooksul. See tähendab, et mõned pikemad stringid, nagu näiteks edastuskiiruse muutmine, tuleb lõigata ja kleepida oma terminaliprogrammi või seadistada saatmiseks tekstifailid. SUURTE TÄHEDE nõue kehtib ainult siis, kui proovite konfiguratsioonikäsklusi saata. Tavaline suhtlusrežiim võib vastu võtta mis tahes 8-bitiseid andmeid.

4. samm: tarkvara

Tarkvara on üsna lihtne nii käsitsi kui ka Bluetoothi jaoks. Bluetoothi versiooni valimiseks tühistage lihtsalt avalduse „#define BT_Ctrl” kommentaar.

Kui ma PIC-koodi kirjutasin, katsetasin PWM-sagedusega ja lõpuks asusin 500 Hz-le. Avastasin, et kui sagedus oli liiga kõrge, ei suutnud LM298N moodul impulssidele piisavalt kiiresti reageerida. See tähendas, et pinge väljund ei olnud lineaarne ja võis teha suuri hüppeid. Arduino on sisseehitatud PWM -käsud, kuid need võimaldavad teil muuta ainult töötsüklit, mitte sagedust. Õnneks on sagedus umbes 490 Hz, nii et see on piisavalt lähedal 500 Hz-le, mida kasutasin PIC-is.

Rongi gaasipedaalide üks „omadusi” on kiirenduse ja pidurdamise hoog, et simuleerida tõelise rongi tööd. Selle saavutamiseks sisestatakse tarkvara käsitsi versiooni ahelasse lihtne viivitus. Kui väärtus on näidatud, kulub 0–12 volti või 12 volti tagasi nullini jõudmiseks umbes 13 sekundit. Viivitust saab hõlpsasti muuta pikemaks või lühemaks ajaks. Ainus juhtum, kus hoog ei mõju, on suunalüliti vahetamine. Kaitse eesmärgil seatakse PWM töötsükkel kohe, kui seda lülitit muudetakse. See muudab suunalüliti tegelikult ka hädapidurina.

Suunalüliti kohese käsitsemise tagamiseks panin selle koodi katkestuskäsitlejasse. See võimaldab meil kasutada ka funktsiooni „katkesta muutusel”, nii et pole vahet, kas muutus on madalalt kõrgele või kõrgelt madalale.

Tarkvara Bluetooth -versioon kasutab edasi-, tagasikäigu-, pidurdus- ja gaasipedaali käivitamiseks ühetähelisi käske. Tegelikult asendavad saadud käsud käsitsi lülitid, kuid põhjustavad samu vastuseid. Rakendust, mida ma Bluetoothi juhtimiseks kasutan, nimetavad Next Prototypes “Bluetoothi jadakontrolleriks”. See võimaldab konfigureerida virtuaalset klaviatuuri ja määrata igale klahvile oma käsustringid ja nimed. See võimaldab teil määrata ka kordussageduse, nii et seadsin piduri- ja gaasipedaali nupud 50 ms -ni, et anda umbes 14 sekundit hoogu. Keelasin nuppude Edasi ja Tagasi kordamise funktsiooni.

See on selle postituse jaoks. Vaadake minu teisi juhendeid. Kui olete huvitatud PIC mikrokontrollerite projektidest, vaadake minu veebisaiti aadressil www.boomerrules.wordpress.com

Soovitan: