Satura rādītājs:

Arduino 2 vienā modeļa vilciena kontrolieris: 4 soļi
Arduino 2 vienā modeļa vilciena kontrolieris: 4 soļi

Video: Arduino 2 vienā modeļa vilciena kontrolieris: 4 soļi

Video: Arduino 2 vienā modeļa vilciena kontrolieris: 4 soļi
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Jūlijs
Anonim
Arduino 2 vienā modeļa vilciena kontrolieris
Arduino 2 vienā modeļa vilciena kontrolieris

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)

Pulsa platuma modulācija (PWM)
Pulsa 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

Aparatūra
Aparatūra
Aparatūra
Aparatūra
Aparatūra
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

Bluetooth modulis
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: