Sadržaj:

Arduino model 2-u-1 upravljač vlakom: 4 koraka
Arduino model 2-u-1 upravljač vlakom: 4 koraka

Video: Arduino model 2-u-1 upravljač vlakom: 4 koraka

Video: Arduino model 2-u-1 upravljač vlakom: 4 koraka
Video: Lego train crash at the swimming pool 2024, Srpanj
Anonim
Arduino 2-u-1 model upravljača vlakom
Arduino 2-u-1 model upravljača vlakom

Prije četrdeset godina dizajnirao sam za nekoliko prijatelja regulator vlaka temeljen na op-amp modelu, a zatim sam ga prije otprilike četiri godine ponovno stvorio pomoću PIC mikrokontrolera. Ovaj Arduino projekt ponovno stvara PIC verziju, ali također dodaje mogućnost korištenja Bluetooth veze umjesto ručnih prekidača za gas, kočnicu i kontrolu smjera. Iako je dizajn koji ovdje predstavljam namijenjen 12 -voltnom modelu željezničkog motora, može se lako promijeniti za razne druge aplikacije upravljanja istosmjernim motorom.

Korak 1: Modulacija širine impulsa (PWM)

Modulacija širine impulsa (PWM)
Modulacija širine impulsa (PWM)

Za one od vas koji nisu upoznati s PWM -om, to nije tako zastrašujuće kako zvuči. Za našu jednostavnu aplikaciju upravljanja motorom zaista znači da generiramo kvadratni val određene frekvencije, a zatim mijenjamo radni ciklus. Radni ciklus definiran je kao omjer vremena u kojem je izlaz logički visok u usporedbi s razdobljem valnog oblika. To možete jasno vidjeti na gornjem dijagramu s gornjim valnim oblikom pri radnom ciklusu od 10%, srednjim valnim oblikom pri 50% radnog ciklusa i donjim valnim oblikom pri 90% radnom ciklusu. Isprekidana linija prekrivena na svakom valnom obliku predstavlja ekvivalentni istosmjerni napon koji vidi motor. S obzirom na to da Arduino ima ugrađenu PWM sposobnost, doista je jednostavno generirati ovu vrstu upravljanja istosmjernim motorom. Još jedna prednost korištenja PWM -a je ta što pomaže u sprječavanju motora od nesigurnog pokretanja što se može dogoditi pri korištenju izravnog istosmjernog napona. Jedan nedostatak PWM -a je taj što se ponekad čuje šum motora na frekvenciji PWM -a.

Korak 2: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

Prva slika prikazuje Arduino veze za sklopke i modul upravljačkog programa motora LM298. Unutar Arduina postoje slabi pull-up otpornici pa za prekidače nisu potrebni pull-up otpornici. Prekidač smjera jednostavan je SPST prekidač (jednopolno jednokratno bacanje). Prekidači za gas i kočnicu prikazani su kao normalno otvoreni, pritisni gumbi za trenutni kontakt.

Druga slika prikazuje Arduino veze za Bluetooth modul i modul upravljačkog programa motora LM298. Bluetooth TXD izlaz povezuje se izravno s serijskim ulazom Arduino RX.

Treća slika je L298N dual H-bridge modul. Modul LM298 ima ugrađeni regulator od 5 volti koji se može omogućiti pomoću kratkospojnika. Trebamo +5 volti za Arduino i Bluetooth, ali želimo +12 volti za pogon motora. U ovom slučaju primjenjujemo +12 volti na ulaz " +12V power" L298N i ostavit ćemo kratkospojnik "5V enable" na mjestu. To omogućuje 5-voltnom regulatoru izlaz na priključak "+5 napajanja" na modulu. Spojite to na Arduino i Bluetooth. Ne zaboravite spojiti žice za uzemljenje za +12 ulaz i +5 izlaz na modul "GND za napajanje".

Želimo da se izlazni napon motora mijenja ovisno o PWM -u koji generira Arduino, umjesto da bude samo uključen ili potpuno isključen. U tu svrhu uklanjamo kratkospojnike s “ENA” i “ENB” i povezujemo naš Arduino PWM izlaz s “ENA” na modulu. Imajte na umu da je stvarni pin za omogućavanje najbliži rubu ploče (pored "ulaznih" pinova). Stražnji pin za svako omogućavanje je +5 volti pa želimo biti sigurni da se na to ne povezujemo.

Igle “IN1” i “IN2” na modulu spojene su na odgovarajuće Arduino pinove. Ti pinovi upravljaju smjerom motora i, da, postoji dobar razlog da dopustite Arduinu da upravlja njima, umjesto da jednostavno spojite prekidač na modul. Vidjet ćemo zašto u raspravi o softveru.

Korak 3: Bluetooth modul

Bluetooth modul
Bluetooth modul

Slika prikazana ovdje tipična je za dostupne Bluetooth module. Kada tražite jedan za kupnju, možete pretraživati pojmove "HC-05" i HC-06 ". Razlike između njih dvije su u firmveru i obično u broju pinova na ploči. Gornja slika je HC-06 modul i dolazi s pojednostavljenim firmwareom koji dopušta samo vrlo osnovnu konfiguraciju. Također je postavljen kao Bluetooth uređaj samo za "slave". Jednostavno rečeno, to znači da može reagirati samo na naredbe s “glavnog” uređaja i ne može samostalno izdavati naredbe. Modul HC-05 ima više mogućnosti konfiguracije i može se postaviti kao "Master" ili "Slave" uređaj. HC-05 obično ima šest pinova umjesto samo četiri prikazana gore za HC-06. Državni pin nije zapravo važan, no ključni ključ (ponekad se naziva i drugim nazivima poput "EN") potreban je ako želite izvršiti bilo koju konfiguraciju. Općenito, moduli ne trebaju nikakvu konfiguraciju ako ste u redu sa zadanom brzinom prijenosa od 9600 i ne želite dati modulu određeno ime. Imam nekoliko projekata u kojima ih koristim pa ih volim prema tome nazvati.

Konfiguriranje Bluetooth modula zahtijeva da kupite ili izgradite sučelje za RS-232 serijski port ili USB priključak. U ovom postu neću govoriti o tome kako ga izgraditi, ali trebali biste moći pronaći informacije na webu. Ili jednostavno kupite sučelje. Konfiguracijske naredbe koriste AT naredbe poput onih koje su se u stara vremena koristile s telefonskim modemima. Ovdje sam priložio korisnički priručnik koji uključuje AT naredbe za svaku vrstu modula. Treba napomenuti da HC-06 zahtijeva naredbe UPPERCASE i da se niz naredbi mora dovršiti u roku od 1 sekunde. To znači da će neke dulje nizove za stvari poput promjene brzine prijenosa trebati izrezati i zalijepiti u vaš terminalni program ili ćete morati postaviti tekstualne datoteke za slanje. ZAHTJEV U VELIKIM SLOVIMA je samo ako pokušavate poslati konfiguracijske naredbe. Uobičajeni način komunikacije može prihvatiti bilo koje 8-bitne podatke.

Korak 4: Softver

Softver je prilično jednostavan i za ručnu i za Bluetooth verziju. Za odabir Bluetooth verzije jednostavno uklonite komentar s izjave "#define BT_Ctrl".

Kad sam napisao PIC kod, eksperimentirao sam s PWM frekvencijom i konačno se zaustavio na 500 Hz. Otkrio sam da, ako je frekvencija previsoka, modul LM298N nije bio u stanju reagirati dovoljno brzo na impulse. To je značilo da izlazni napon nije linearan i da može podnijeti velike skokove. Arduino ima ugrađene PWM naredbe, ali vam dopuštaju samo mijenjanje radnog ciklusa, a ne i učestalost. Srećom, frekvencija je oko 490-Hz pa je to dovoljno blizu 500-Hz koje sam koristio na PIC-u.

Jedna od "značajki" prigušivača vlakova je osjećaj zamaha za ubrzanje i kočenje kako bi se simuliralo kako funkcionira pravi vlak. Da bi se to postiglo, jednostavno vremensko kašnjenje umetnuto je u petlju za ručnu verziju softvera. S prikazanom vrijednošću potrebno je približno 13 sekundi da prijeđete od 0 do 12 volti ili od 12 volti natrag na nulu. Kašnjenje se može lako promijeniti na duže ili kraće vrijeme. Jedini slučaj kada zamah nije na snazi je promjena smjera prekidača. Radi zaštite, radni ciklus PWM -a odmah se postavlja na 0% kad god se promijeni ovaj prekidač. Zbog toga se prekidač smjera također udvostručuje kao kočnica u nuždi.

Kako bih osigurao trenutno rukovanje prekidačem smjera, stavio sam njegov kod u rukovatelj prekida. To nam također omogućuje korištenje funkcije "prekid pri promjeni" tako da nije važno je li promjena s niske na visoku ili s visoke na nisku.

Bluetooth verzija softvera koristi naredbe s jednim slovom za pokretanje funkcija naprijed, natrag, kočenje i gas. Zapravo, primljene naredbe zamjenjuju ručne prekidače, ali izazivaju iste odgovore. Aplikaciju koju koristim za Bluetooth kontrolu naziva Next Prototypes "Bluetooth serijski kontroler". Omogućuje vam konfiguriranje virtualne tipkovnice i postavljanje vlastitih nizova naredbi i imena za svaku tipku. Također vam omogućuje da postavite brzinu ponavljanja pa sam tipke Kočnica i Prigušivač gasa postavio na 50 ms kako bih dao zamah od 14 sekundi. Onemogućio sam funkciju ponavljanja za tipke naprijed i natrag.

To je to za ovaj post. Pogledajte moje ostale Instructables. Ako ste zainteresirani za projekte PIC mikrokontrolera, posjetite moju web stranicu na www.boomerrules.wordpress.com

Preporučeni: