Sadržaj:

Arduino kontroler vlaka 2-u-1: 4 koraka
Arduino kontroler vlaka 2-u-1: 4 koraka

Video: Arduino kontroler vlaka 2-u-1: 4 koraka

Video: Arduino kontroler vlaka 2-u-1: 4 koraka
Video: Программирование Ардуино с нуля. Arduino для начинающих. 2024, Juli
Anonim
Arduino 2-u-1 Model Kontroler vlaka
Arduino 2-u-1 Model Kontroler vlaka

Prije četrdeset godina sam za nekoliko prijatelja dizajnirao prigušivač vlaka temeljen na op-amp-u, a zatim sam ga prije otprilike četiri godine ponovo 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 usmjeren na 12 -voltni model ž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 je definiran kao omjer vremena u kojem je izlaz logički visok u odnosu na period valnog oblika. To možete jasno vidjeti na gornjoj shemi s gornjim talasnim oblikom pri radnom ciklusu od 10%, srednjim talasnim oblikom pri 50% radnog ciklusa i donjim talasnim oblikom pri 90% radnom ciklusu. Isprekidana linija postavljena na svaki valni oblik predstavlja ekvivalentni istosmjerni napon koji vidi motor. S obzirom na to da Arduino ima ugrađenu PWM sposobnost, generiranje ove vrste upravljanja istosmjernim motorom zaista je jednostavno. Još jedna prednost korištenja PWM -a je ta što pomaže u sprječavanju pokretanja motora koji se može dogoditi pri korištenju 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 prekidače i modul upravljačkog programa motora LM298. Unutar Arduina postoje slabi pull-up otpornici pa za prekidače nisu potrebni pull-up otpornici. Prekidač za smjer je jednostavan SPST prekidač (jednopolno jednokratno bacanje). Prekidači za gas i kočnicu prikazani su kao normalno otvoreni, kratki kontaktni tasteri.

Druga slika prikazuje Arduino veze za Bluetooth modul i modul upravljačkog programa motora LM298. Bluetooth TXD izlaz povezuje se direktno sa 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 aktivirati 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 napajanja" L298N i ostavit ćemo kratkospojnik za "5V omogućavanje" na mjestu. To omogućuje 5-voltnom regulatoru izlaz na vezu "+5 napajanje" 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 izlazni napon motora varira ovisno o PWM -u koji generira Arduino, umjesto da bude samo uključen ili potpuno isključen. Da bismo to učinili, 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). Zadnji pin za svako omogućavanje je +5 volti pa želimo biti sigurni da se na to ne povezujemo.

Igle “IN1” i “IN2” na modulu povezane su sa odgovarajućim Arduino pinovima. Ti pinovi upravljaju smjerom motora i, da, postoji dobar razlog da dopustite Arduinu da ih kontrolira umjesto da jednostavno povežete prekidač s modulom. 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 kupovinu, možete pretraživati pojmove “HC-05” i HC-06 “. Razlike između njih su u firmveru i obično u broju pinova na ploči. Gornja slika je HC-06 modul i dolazi sa pojednostavljenim firmverom koji dozvoljava 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 “Master” uređaja i ne može samostalno izdavati naredbe. HC-05 modul 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. PIN za stanje nije zapravo važan, ali je ključ za ključeve (ponekad se naziva i drugim nazivima poput "EN") potreban 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 posebno 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 port. U ovom postu neću govoriti o tome kako ga izgraditi, ali trebali biste biti u mogućnosti pronaći informacije na webu. Ili jednostavno kupite interfejs. Komande za konfiguraciju koriste AT komande poput onih koje su se nekada koristile sa telefonskim modemima. Ovdje sam priložio korisnički priručnik koji uključuje AT naredbe za svaki tip 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. UPPERCASE zahtjev 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. Da biste odabrali Bluetooth verziju, jednostavno uklonite komentar s izjave "#define BT_Ctrl".

Kad sam pisao PIC kod, eksperimentirao sam s PWM frekvencijom i konačno se zaustavio na 500 Hz. Otkrio sam da, ako je frekvencija previsoka, modul LM298N ne može 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 da mijenjate radni ciklus, a ne i frekvenciju. Srećom, frekvencija je oko 490-Hz pa je to dovoljno blizu 500-Hz koje sam koristio na PIC-u.

Jedna od “karakteristika” prigušivača vlaka je osjećaj zamaha pri ubrzanju i kočenju kako bi se simuliralo kako funkcionira pravi vlak. Da bi se to postiglo, jednostavno vremensko kašnjenje je umetnuto 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. Odgoda se može lako promijeniti na duže ili kraće vrijeme. Jedini slučaj kada momentum nije na snazi je kada se promijeni prekidač smjera. Radi zaštite, radni ciklus PWM -a se odmah postavlja na 0% kad god se ovaj prekidač promijeni. To, u stvari, čini da se prekidač za smjer udvostruči i kao kočnica u nuždi.

Da bih osigurao trenutno rukovanje prekidačem smjera, stavio sam njegov kod u rukovatelj prekida. To nam također omogućuje da koristimo funkciju „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 od jednog slova za pokretanje funkcija naprijed, natrag, kočenje i gas. U stvari, 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 naredbenih nizova i imena za svaku tipku. Također vam omogućuje da postavite brzinu ponavljanja, pa sam tipke kočnice i 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 instrukcije. Ako ste zainteresirani za projekte PIC mikrokontrolera, posjetite moju web stranicu na www.boomerrules.wordpress.com

Preporučuje se: