Satura rādītājs:
- 1. darbība: impulsa platuma modulācija (PWM)
- 2. darbība. Aparatūra
- 3. solis: Bluetooth modulis
- 4. solis: programmatūra
Video: Arduino 2 vienā modeļa vilciena kontrolieris: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Pirms četrdesmit gadiem es pāris draugiem izveidoju uz op-amp balstītu vilciena droseļvārstu, un pēc tam apmēram pirms četriem gadiem es to atjaunoju, izmantojot PIC mikrokontrolleru. Šis Arduino projekts atjauno PIC versiju, bet arī pievieno iespēju izmantot Bluetooth savienojumu, nevis manuālos droseļvārsta, bremžu un virziena vadības slēdžus. Lai gan šeit izklāstītais dizains ir paredzēts 12 voltu dzelzceļa motoram, to var viegli mainīt dažādiem citiem līdzstrāvas motoru vadības lietojumiem.
1. darbība: impulsa platuma modulācija (PWM)
Tiem no jums, kuri nav pazīstami ar PWM, tas nav tik biedējoši, kā izklausās. Mūsu vienkāršajai motora vadības lietojumprogrammai tas patiešām nozīmē, ka mēs ģenerējam noteiktas frekvences kvadrātveida vilni un pēc tam mainām darba ciklu. Darba cikls tiek definēts kā laika attiecība, kurā produkcija ir loģiski augsta salīdzinājumā ar viļņu formas periodu. Iepriekš redzamajā diagrammā to var skaidri redzēt ar augšējo viļņu formu pie 10% darba cikla, vidējo viļņu formu ar 50% darba ciklu un apakšējo viļņu formu ar 90% darba ciklu. Katrā viļņu formā pārklātā punktētā līnija apzīmē ekvivalentu līdzstrāvas spriegumu, ko redz motors. Ņemot vērā, ka Arduino ir iebūvēta PWM iespēja, šāda veida līdzstrāvas motora vadības ģenerēšana ir patiešām vienkārša. Vēl viena PWM izmantošanas priekšrocība ir tā, ka tas palīdz novērst motora palaišanu, kas var notikt, izmantojot taisnu līdzstrāvu. Viens no PWM trūkumiem ir tas, ka dažreiz no motora PWM frekvencē ir dzirdams troksnis.
2. darbība. Aparatūra
Pirmajā attēlā parādīti slēdžu un LM298 motora draivera moduļa Arduino savienojumi. Arduino iekšpusē ir vāji pievilkšanas rezistori, tāpēc slēdžiem nav nepieciešami pievilkšanas rezistori. Virziena slēdzis ir vienkāršs SPST (viena pola viena metiena) slēdzis. Droseļvārsta un bremžu slēdži tiek parādīti kā parasti atvērtas, īslaicīgas kontakta spiedpogas.
Otrajā attēlā parādīti Arduino savienojumi Bluetooth modulim un LM298 motora draivera modulim. Bluetooth TXD izeja tiek savienota tieši ar Arduino RX sērijas ieeju.
Trešais attēls ir L298N duālais H tilta modulis. LM298 modulim ir iebūvēts 5 voltu regulators, ko var aktivizēt ar džemperi. Mums ir nepieciešami +5 volti Arduino un Bluetooth, bet mēs vēlamies, lai motors darbinātu +12 voltus. Šajā gadījumā mēs izmantojam +12 voltus L298N ieejai “+12V jauda” un atstāsim “5V enable” džemperi vietā. Tas ļauj 5 voltu regulatoram izvadīt moduļa “+5 barošanas” savienojumu. Pievienojiet to Arduino un Bluetooth. Neaizmirstiet pieslēgt +12 ieejas un +5 izejas zemējuma vadus modulim “power GND”.
Mēs vēlamies, lai motora izejas spriegums mainītos, ņemot vērā Arduino ģenerēto PWM, nevis tikai pilnu ieslēgšanu vai izslēgšanu. Lai to izdarītu, mēs noņemam džemperus no “ENA” un “ENB” un savienojam mūsu Arduino PWM izvadi ar moduļa “ENA”. Paturiet prātā, ka faktiskā iespējošanas tapa ir vistuvāk tāfeles malai (blakus “ievades” tapām). Katras iespējošanas aizmugurējā tapa ir +5 volti, tāpēc mēs vēlamies pārliecināties, ka ar to neveidojam savienojumu.
Moduļa tapas “IN1” un “IN2” ir savienotas ar attiecīgajām Arduino tapām. Šīs tapas kontrolē motora virzienu, un, jā, ir labs iemesls ļaut Arduino tos kontrolēt, nevis vienkārši savienot slēdzi ar moduli. Kāpēc, to mēs redzēsim diskusijā par programmatūru.
3. solis: Bluetooth modulis
Šeit redzamais attēls ir tipisks pieejamajiem Bluetooth moduļiem. Meklējot vienu, ko iegādāties, varat meklēt ar vārdiem “HC-05” un HC-06”. Atšķirības starp abām ir programmaparatūrā un parasti tapu skaitā uz tāfeles. Augšējā attēlā ir redzams HC-06 modulis, un tam ir vienkāršota programmaparatūra, kas ļauj veikt tikai ļoti vienkāršu konfigurāciju. Tā ir iestatīta arī kā tikai “vergu” Bluetooth ierīce. Vienkārši sakot, tas nozīmē, ka tā var reaģēt tikai uz komandām no “Master” ierīces un nevar dot komandas pati. HC-05 modulim ir vairāk konfigurācijas iespēju, un to var iestatīt kā “Master” vai “Slave” ierīci. HC-05 parasti ir sešas tapas, nevis tikai četras, kas parādītas iepriekš HC-06. Statusa spraudnis nav īsti svarīgs, taču, ja vēlaties veikt jebkādu konfigurāciju, ir nepieciešama atslēgas tapa (dažreiz tiek lietota ar citiem nosaukumiem, piemēram, “EN”). Parasti moduļiem nav nepieciešama nekāda konfigurācija, ja ar noklusējuma bodu pārraides ātrumu 9600 jums viss ir kārtībā un nav intereses modulim piešķirt konkrētu nosaukumu. Man ir vairāki projekti, kur es tos izmantoju, tāpēc man patīk tos attiecīgi nosaukt.
Lai konfigurētu Bluetooth moduļus, ir jāpērk vai jāizveido interfeiss RS-232 seriālajam portam vai USB portam. Šajā rakstā es neaprakstīšu, kā to izveidot, bet jums vajadzētu būt iespējai atrast informāciju tīmeklī. Vai vienkārši iegādājieties saskarni. Konfigurācijas komandas izmanto AT komandas, piemēram, tās, kuras tika izmantotas senatnē ar telefona modemiem. Šeit esmu pievienojis lietotāja rokasgrāmatu, kurā ir iekļautas AT komandas katram moduļa tipam. Viena lieta, kas jāņem vērā, ir tāda, ka HC-06 ir nepieciešamas komandas LIELĀKĀS, un komandu virknei jābūt pabeigtai 1 sekundes laikā. Tas nozīmē, ka dažas garākas virknes, piemēram, datu pārraides ātruma maiņa, būs jāsamazina un jāielīmē termināla programmā, vai arī jums būs jāiestata nosūtāmie teksta faili. Lielo burtu prasība ir tikai tad, ja mēģināt nosūtīt konfigurācijas komandas. Regulārais sakaru režīms var pieņemt jebkurus 8 bitu datus.
4. solis: programmatūra
Programmatūra ir diezgan vienkārša gan manuālajai, gan Bluetooth versijai. Lai izvēlētos Bluetooth versiju, vienkārši noņemiet komentāru no paziņojuma “#define BT_Ctrl”.
Kad es uzrakstīju PIC kodu, es eksperimentēju ar PWM frekvenci un beidzot nokārtoju uz 500 Hz. Es atklāju, ka, ja frekvence bija pārāk augsta, LM298N modulis nespēja pietiekami ātri reaģēt uz impulsiem. Tas nozīmēja, ka sprieguma izeja nebija lineāra un varēja veikt lielus lēcienus. Arduino ir iebūvētas PWM komandas, taču tās ļauj mainīt darba ciklu, nevis biežumu. Par laimi, frekvence ir aptuveni 490 Hz, tāpēc tā ir pietiekami tuvu 500 Hz, ko izmantoju PIC.
Viena no vilciena droseļvārstu “iezīmēm” ir paātrinājuma un bremzēšanas impulsa sajūta, lai simulētu īsta vilciena darbību. Lai to paveiktu, programmatūras manuālās versijas cilpā tiek ievietota vienkārša laika aizture. Ja tiek parādīta vērtība, no 0 līdz 12 voltiem vai no 12 voltiem līdz nullei nepieciešams apmēram 13 sekundes. Aizkavi var viegli mainīt uz ilgāku vai īsāku laiku. Vienīgais gadījums, kad impulss nav spēkā, ir, mainot virziena slēdzi. Aizsardzības nolūkos, mainot šo slēdzi, PWM darba cikls tiek nekavējoties iestatīts uz 0%. Tas faktiski padara virziena slēdzi dubultu kā avārijas bremzi.
Lai nodrošinātu virziena slēdža tūlītēju apstrādi, es ievietoju tā kodu pārtraukuma apstrādātājā. Tas arī ļauj mums izmantot funkciju “pārtraukt izmaiņas”, tāpēc nav nozīmes tam, vai izmaiņas ir no zemas uz augstu vai no augstas līdz zemai.
Programmatūras Bluetooth versijā tiek izmantotas viena burta komandas, lai sāktu pārslēgšanas, atpakaļgaitas, bremzēšanas un droseļvārsta funkcijas. Faktiski saņemtās komandas aizstāj manuālos slēdžus, bet rada tādas pašas atbildes. Lietotni, ko izmantoju Bluetooth vadībai, Next Prototypes sauc par “Bluetooth sērijas kontrolieri”. Tas ļauj konfigurēt virtuālo tastatūru un katram taustiņam iestatīt savas komandu virknes un nosaukumus. Tas arī ļauj iestatīt atkārtošanās ātrumu, tāpēc es iestatīju bremžu un droseļvārsta pogas uz 50 ms, lai dotu aptuveni 14 sekundes impulsa. Es atspējoju atkārtošanas funkciju uz priekšu un atpakaļ.
Tas ir par šo amatu. Apskatiet citus manu pamācību materiālus. Ja jūs interesē PIC mikrokontrolleru projekti, apskatiet manu vietni www.boomerrules.wordpress.com
Ieteicams:
Kontrolējiet sava modeļa vilciena izkārtojumu, izmantojot KEYBOARD !: 12 soļi
Kontrolējiet sava modeļa vilciena izkārtojumu, izmantojot savu KEYBOARD! Jūs varat arī apskatīt jaunināto versiju šeit. Šajā pamācībā es jums parādīšu, kā kontrolēt vilciena modeļa izkārtojumu, izmantojot tastatūru
Kontrolējiet sava modeļa vilciena izkārtojumu ar savu mobilo tālruni !: 11 soļi (ar attēliem)
Kontrolējiet sava vilciena modeļa izkārtojumu, izmantojot savu mobilo tālruni! Turklāt tirgū pieejamie bezvadu kontrolieri var kontrolēt tikai dažas lokomotīves
Overkill modeļa raķešu palaišanas kontrolieris!: 9 soļi (ar attēliem)
Overkill Modeļa raķešu palaišanas kontrolieris!: Kā daļa no milzīga projekta, kurā iesaistītas modeļu raķetes, man bija nepieciešams kontrolieris. Bet, tāpat kā visos savos projektos, es nevarēju tikai pieturēties pie pamatiem un izveidot rokas vienas pogas kontrolieri, kas tikai palaiž raķetes modeli, nē, man bija jāpārcenšas
Ieslēgts un izslēgts slēdzis ar UC. Viena spiedpoga. Viena tapa. Diskrēta sastāvdaļa: 5 soļi
Ieslēgts un izslēgts slēdzis ar UC. Viena spiedpoga. Viena tapa. Diskrēts komponents: Sveiki, visi meklēja ieslēgšanas/izslēgšanas ķēdi tīklā. Viss, ko atradu, nebija tas, ko meklēju. Es runāju ar sevi, tam noteikti ir ceļš. Tas bija tas, kas man bija vajadzīgs.-Tikai viena spiedpoga, lai to ieslēgtu un izslēgtu
Kontrolējiet modeļa vilciena izkārtojumu, izmantojot televizora tālvadības pulti!: 7 soļi (ar attēliem)
Kontrolējiet sava vilciena modeļa izkārtojumu, izmantojot televizora tālvadības pulti!: Šajā pamācībā es jums parādīšu, kā izveidot IR tālvadības sistēmu vilciena modelim. Pēc tam jūs varēsit kontrolēt savus vilcienus, atpūšoties uz dīvāna. Tātad, sāksim