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, Juli
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. I prilično je tačan.

Važna značajka ove biblioteke je ta što vam omogućuje da napravite vlastitu CNC mašinu, koja nije nužno samo X, Y, već i prekidač sekcija, na primjer, jer to nije spreman GRBL, već programiranje koje omogućava vam da napravite idealnu mašinu za sebe.

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 videu raspravljam o naprednoj temi i detaljnije objašnjavam Lib koji se koristi u videu: Koračni motor s ubrzanjem i završetkom hoda.

Korak 1: StepDriver biblioteka

Ova biblioteka 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 za omogućavanje. Također postavlja ulaze mikrokoračnih pinova upravljačkog programa i ograničava prekidače i njihovu razinu aktiviranja (visoki ili niski). Takođe ima kôd kretanja motora sa 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 čemu tačno 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 logičke vrijednosti. Potrebno je postaviti da li je aktivni ključ gore ili dolje, a pritom postaviti maksimalnu i minimalnu granicu završetka.

Korak 8: 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
Funkcije - Očitavanje graničnih sklopki

Ovaj dio se razlikuje od onog u Libu koji sam stavio na raspolaganje prošle sedmice. 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 ovo treba izvesti na visokom nivou. Sljedeći rad s aktivnim ključem bit će na niskom nivou. Koristit ću ga ovdje da vam pokažem tabelu "Istine".

Na sliku koda postavio sam dijagram koji će mi pomoći da shvatim da se u ovom dijelu izvornog koda krećem prema Uzlaznom i da još nisam pritisnuo tipku kraja kursa.

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

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

Ovdje ste već aktivirali prekidač za kraj kursa.

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 periode 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, jer se u obzir uzimaju prostori za rad na ubrzanju, a ne vrijeme. Ali, ovdje je važno razumjeti da se cijela ova jednadžba sastoji samo od jedne linije koda.

Identificirali smo trapez na gornjoj slici, jer su početni okretaji loši za većinu koračnih motora. Ista stvar se događa sa 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 se prikazuje 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 - Pokreti se okreće

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. Konačno, pomaknemo 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 - Pozicija vs. Pozicija

Grafikon kretanja - Pozicija vs. Pozicija
Grafikon kretanja - Pozicija vs. Pozicija

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

Korak 19: Grafikon kretanja - Velocity vs. Momenat

Grafikon kretanja - Velocity vs. Momenat
Grafikon kretanja - Velocity vs. Momenat

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

Preporučuje se: