Sadržaj:

Arduino: Precizni držač za koračni motor: 19 koraka
Arduino: Precizni držač za koračni motor: 19 koraka

Video: Arduino: Precizni držač za koračni motor: 19 koraka

Video: Arduino: Precizni držač za koračni motor: 19 koraka
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Prosinac
Anonim
Image
Image
Globalne varijable
Globalne varijable

Danas ću vam pokazati biblioteku za vozača motora s punim korakom s krajnjim prekidačima i kretanje motora s ubrzanjem i mikrokorakom. Ovaj Lib, koji radi i na Arduino Uno i na Arduino Mega, omogućuje vam pomicanje motora ne samo po broju koraka, već i po milimetrima. A i prilično je točan.

Važna značajka ove biblioteke je ta što vam omogućuje da izgradite vlastiti CNC stroj, koji nije nužno samo X, Y, već i prekidač sekcija, na primjer, jer to nije spreman GRBL, već programiranje koje omogućuje vam da napravite idealan stroj za vas.

Međutim, sljedeća izjava važan je detalj! Ovaj video je samo za one koji su već navikli na programiranje. Ako niste upoznati s Arduino programiranjem, prvo biste trebali pogledati druge uvodne videozapise na mom kanalu. To je zato što u ovom specifičnom videu raspravljam o naprednoj temi i detaljnije objašnjavam Lib koji se koristi u videu: Koračni motor s ubrzanjem i završetkom hoda.

1. korak: biblioteka StepDriver

Ova knjižnica pokriva tri najčešće vrste upravljačkih programa na tržištu: A4988, DRV8825 i TB6600. On konfigurira pinove upravljačkih programa, dopuštajući im da izvrše resetiranje i prelazak u stanje mirovanja, kao i da aktivira i deaktivira izlaze motora koji djeluju na pin Enable. Također postavlja ulaze mikrokoračnih pinova upravljačkog programa te ograničava prekidače i njihovu razinu aktiviranja (visoka ili niska). Također ima kôd kretanja motora s kontinuiranim ubrzanjem u mm / s², najvećom brzinom u mm / s i minimalnom brzinom u mm / s.

Za one koji su gledali dijelove 1 i 2 videa Step Motor with Acceleration and End of Stroke, preuzmite ovu novu biblioteku dostupnu danas, jer sam napravio neke izmjene u toj prvoj datoteci kako bih joj olakšao upotrebu.

Korak 2: Globalne varijable

Pokazujem točno čemu služi svaka od globalnih varijabli.

Korak 3: Funkcije - Postavljanje upravljačkih pinova

Funkcije - Postavljanje upravljačkih pinova
Funkcije - Postavljanje upravljačkih pinova

Ovdje opisujem neke metode.

Postavio sam Pinout postavku i Arduino pinove kao izlaz.

Korak 4: Funkcije - osnovne funkcije upravljačkog programa

Funkcije - osnovne funkcije upravljačkog programa
Funkcije - osnovne funkcije upravljačkog programa

U ovom dijelu radimo s konfiguracijom upravljačkog programa i njegovim osnovnim funkcijama.

Korak 5: Funkcije - Postavljanje koraka motora

Funkcije - Podešavanje koraka motora
Funkcije - Podešavanje koraka motora
Funkcije - Podešavanje koraka motora
Funkcije - Podešavanje koraka motora

U ovom koraku koda konfiguriramo količinu koraka po milimetru koju motor mora izvršiti.

Korak 6: Funkcije - Postavljanje načina rada motora korak

Funkcije - Postavljanje načina rada motora korak
Funkcije - Postavljanje načina rada motora korak
Funkcije - Postavljanje načina rada motora korak
Funkcije - Postavljanje načina rada motora korak
Funkcije - Postavljanje načina rada motora korak
Funkcije - Postavljanje načina rada motora korak

Ova tablica prikazuje postavke za način rada koraka motora. Evo nekoliko primjera.

Korak 7: Funkcije - Postavljanje graničnih sklopki

Funkcije - Postavljanje graničnih sklopki
Funkcije - Postavljanje graničnih sklopki

Ovdje moram pročitati cijele i boolove vrijednosti. Potrebno je postaviti da li je aktivna tipka gore ili dolje, a pritom postaviti maksimalnu i minimalnu granicu završetka.

Korak 8: Funkcije - čitanje graničnih sklopki

Funkcije - Očitavanje graničnih sklopki
Funkcije - Očitavanje graničnih sklopki
Funkcije - Očitavanje graničnih sklopki
Funkcije - Očitavanje graničnih sklopki
Funkcije - Očitavanje graničnih sklopki
Funkcije - Očitavanje graničnih sklopki

Ovaj se dio razlikuje od onog u Libu koji sam stavio na raspolaganje prošli tjedan. Zašto sam to promijenio? Pa, stvorio sam eRead kako bih zamijenio neke druge. Ovdje će eRead čitati LVL, digitalRead (pin) i vratiti TRUE. Sve to treba izvesti na visokoj razini. Sljedeći rad s aktivnim ključem bit će na niskoj razini. Ovdje ću vam pokazati tablicu "Istina".

Na sliku koda postavio sam dijagram koji će pomoći u razumijevanju da se u ovom dijelu izvornog koda krećem prema Uzlaznom i da još nisam pritisnuo tipku za kraj tečaja.

Sada, na ovoj slici os kod bool DRV8825, pokazujem motor koji se i dalje kreće u smjeru rasta. Međutim, aktiviran je maksimalni granični prekidač. Mehanizam, dakle, mora zaustaviti kretanje.

Za kraj, pokazujem isti pokret, ali u suprotnom smjeru.

Ovdje ste već aktivirali prekidač za kraj naravno.

Korak 9: Funkcije - Postavljanje pokreta

Funkcije - Postavljanje pokreta
Funkcije - Postavljanje pokreta

Glavna korisnost metode motionConfig je pretvaranje milimetara u sekundi (mjerenje koje se koristi u CNC strojevima) u korake, kako bi se zadovoljili kontroler koračnog motora. Stoga u ovom dijelu instanciram varijable kako bih razumio korake, a ne milimetre.

Korak 10: Funkcije - Funkcija kretanja

Funkcije - Funkcija kretanja
Funkcije - Funkcija kretanja

U ovom koraku obrađujemo naredbu koja pomiče korak u željenom smjeru u razdoblju u mikrosekundama. Također smo postavili pin za usmjeravanje vozača, vrijeme kašnjenja i smjer krajnjih prekidača.

Korak 11: Funkcije - Funkcija kretanja - Varijable

Funkcije - Funkcija kretanja - Varijable
Funkcije - Funkcija kretanja - Varijable

U ovom dijelu konfiguriramo sve varijable koje uključuju razdoblja maksimalne i minimalne brzine, udaljenost putanje i korake potrebne za prekidanje putanje, između ostalih.

Korak 12: Funkcije - Funkcija kretanja - Ubrzanje

Funkcije - Funkcija kretanja - Ubrzanje
Funkcije - Funkcija kretanja - Ubrzanje
Funkcije - Funkcija kretanja - Ubrzanje
Funkcije - Funkcija kretanja - Ubrzanje

Ovdje iznosim neke detalje o tome kako smo došli do podataka o ubrzanju, koji su izračunati pomoću Torricellijeve jednadžbe, budući da se u obzir uzimaju prostori za rad na ubrzanju, a ne vrijeme. No, ovdje je važno shvatiti da se cijela ova jednadžba odnosi samo na jedan redak koda.

Na gornjoj slici smo identificirali trapez, jer su početni okretaji loši za većinu koračnih motora. Ista stvar se događa s usporavanjem. Zbog toga vizualiziramo trapez u razdoblju između ubrzanja i usporavanja.

Korak 13: Funkcije - Funkcija kretanja - Kontinuirana brzina

Funkcije - Funkcija kretanja - Kontinuirana brzina
Funkcije - Funkcija kretanja - Kontinuirana brzina
Funkcije - Funkcija kretanja - Kontinuirana brzina
Funkcije - Funkcija kretanja - Kontinuirana brzina

Ovdje zadržavamo broj koraka koji se koriste pri ubrzanju, nastavljamo kontinuiranom brzinom i držimo se maksimalne brzine, što se može vidjeti na donjoj slici.

Korak 14: Funkcije - Funkcija kretanja - Usporavanje

Funkcije - Funkcija kretanja - Usporavanje
Funkcije - Funkcija kretanja - Usporavanje
Funkcije - Funkcija kretanja - Usporavanje
Funkcije - Funkcija kretanja - Usporavanje

Ovdje imamo drugu jednadžbu, ovaj put s negativnom vrijednošću ubrzanja. Također je prikazan u retku koda, koji na donjoj slici predstavlja pravokutnik s oznakom Usporavanje.

Korak 15: Funkcije - Funkcija kretanja - Kontinuirana brzina

Funkcije - Funkcija kretanja - Kontinuirana brzina
Funkcije - Funkcija kretanja - Kontinuirana brzina
Funkcije - Funkcija kretanja - Kontinuirana brzina
Funkcije - Funkcija kretanja - Kontinuirana brzina

Vraćamo se na kontinuiranu brzinu kako bismo radili drugu polovicu putanje, kao što se vidi dolje.

Korak 16: Funkcije - Funkcija premještanja - Premještanje Zakreti

Funkcije - Premjesti Funkcija - Premjesti Okreti
Funkcije - Premjesti Funkcija - Premjesti Okreti

U ovom dijelu pomičemo motor u određenom broju okreta u željenom smjeru, pretvarajući broj okretaja u milimetre. Na kraju, pomičemo motor u željenom smjeru.

Korak 17: Karta kretanja - Brzina položaja

Grafikon kretanja - Brzina položaja
Grafikon kretanja - Brzina položaja

Na ovom grafikonu imam podatke koji su izvučeni iz jednadžbe koju smo koristili u dijelu Ubrzanje. Uzeo sam vrijednosti i igrao na Arduino seriji, a od ovoga sam prešao u Excel, što je rezultiralo ovom tablicom. Ova tablica prikazuje napredak koraka.

Korak 18: Grafikon kretanja - položaj vs. Položaj

Grafikon kretanja - položaj vs. Položaj
Grafikon kretanja - položaj vs. Položaj

Ovdje uzimamo položaj, u koracima, i brzinu i pretvaramo ga u period, u mikrosekundi. U ovom koraku primjećujemo da je razdoblje obrnuto proporcionalno brzini.

Korak 19: Grafikon kretanja - Brzina vs. Trenutak

Grafikon kretanja - Velocity vs. Trenutak
Grafikon kretanja - Velocity vs. Trenutak

Konačno, imamo brzinu u funkciji trenutka, pa zbog toga imamo ravnu liniju, budući da je to brzina u funkciji vremena.

Preporučeni: