INHOUDSOPGAWE:

Arduino: Precision Lib vir stappermotor: 19 stappe
Arduino: Precision Lib vir stappermotor: 19 stappe

Video: Arduino: Precision Lib vir stappermotor: 19 stappe

Video: Arduino: Precision Lib vir stappermotor: 19 stappe
Video: How measure DC Voltage and Current and build Energy meter with LCD Display | Lesson 104 2024, November
Anonim
Image
Image
Globale veranderlikes
Globale veranderlikes

Vandag sal ek u 'n biblioteek wys vir 'n volstapmotorbestuurder met eindskakelaars en enjinbeweging met versnelling en mikrostap. Met hierdie Lib, wat op beide die Arduino Uno en die Arduino Mega werk, kan u die enjins nie net op die aantal stappe nie, maar ook op millimeters beweeg. En dit is ook redelik akkuraat.

'N Belangrike kenmerk van hierdie biblioteek is dat dit u toelaat om u eie CNC -masjien te bou, wat nie noodwendig net die X, Y is nie, maar ook 'n seksie -skakelaar, omdat dit nie 'n gereed GRBL is nie, maar eerder die programmering wat stel u in staat om die ideale masjien vir u te maak.

Die volgende stelling is egter 'n belangrike detail! Hierdie video is slegs vir diegene wat reeds gewoond is aan programmeer. As u nie vertroud is met Arduino -programmering nie, moet u eers ander meer inleidende video's op my kanaal kyk. Dit is omdat ek 'n gevorderde onderwerp in hierdie spesifieke video bespreek, en die Lib wat in die video gebruik word, verder verduidelik: Stapmotor met versnelling en einde van beroerte.

Stap 1: StepDriver -biblioteek

Hierdie biblioteek dek die drie mees algemene bestuurdersoorte op die mark: A4988, DRV8825 en TB6600. Dit stel die penne van die bestuurders in, sodat hulle die herstel en plasing in die slaapmodus kan uitvoer, sowel as die motoruitsette wat op die Aktiveer -pen werk, kan deaktiveer en deaktiveer. Dit stel ook die insette van die mikrostappenne van die bestuurder in, en beperk skakelaars en hul aktiveringsvlak (hoog of laag). Dit het ook motorbewegingskode met deurlopende versnelling in mm / s², maksimum snelheid in mm / s en minimum snelheid in mm / s.

Vir diegene wat dele 1 en 2 van die video Step Motor with Acceleration and End of Stroke gekyk het, laai hierdie nuwe biblioteek af wat vandag beskikbaar is, want ek het 'n paar veranderinge aangebring in die eerste lêer om die gebruik daarvan te vergemaklik.

Stap 2: Globale veranderlikes

Ek wys presies waarvoor elkeen van die globale veranderlikes bedoel is.

Stap 3: Funksies - Stel die stuurpenne in

Funksies - Stel die stuurpenne in
Funksies - Stel die stuurpenne in

Hier beskryf ek 'n paar metodes.

Ek stel die Pinout -instelling en die Arduino -penne as uitset in.

Stap 4: Funksies - Basiese funksies van die bestuurder

Funksies - Basiese funksies van die bestuurder
Funksies - Basiese funksies van die bestuurder

In hierdie deel werk ons met die konfigurasie van die bestuurder en sy basiese funksies.

Stap 5: Funksies - Motorstap -instelling

Funksies - Motorstap -instelling
Funksies - Motorstap -instelling
Funksies - instelling van motorstappe
Funksies - instelling van motorstappe

In hierdie stap van die kode stel ons die hoeveelheid stappe per millimeter op wat die motor moet uitvoer.

Stap 6: Funksies - Stel die motorstapmodus in

Funksies - Stel die motorstapmodus in
Funksies - Stel die motorstapmodus in
Funksies - Stel die motorstapmodus in
Funksies - Stel die motorstapmodus in
Funksies - Stel die motorstapmodus in
Funksies - Stel die motorstapmodus in

Hierdie tabel toon die instellings vir die motorstapmodus. Hier is 'n paar voorbeelde.

Stap 7: Funksies - Stel die grensskakelaars in

Funksies - Stel die grensskakelaars in
Funksies - Stel die grensskakelaars in

Hier moet ek die hele en boolese waardes lees. Dit is nodig om in te stel of die aktiewe sleutel op of af is, terwyl die maksimum en minimum limiet eindpunt vasgestel word.

Stap 8: Funksies - Lees van limietskakelaars

Funksies - Lees van limietskakelaars
Funksies - Lees van limietskakelaars
Funksies - Lees van limietskakelaars
Funksies - Lees van limietskakelaars
Funksies - Lees van limietskakelaars
Funksies - Lees van limietskakelaars

Hierdie deel verskil van die in die Lib wat ek verlede week beskikbaar gestel het. Waarom het ek dit verander? Ek het eRead geskep om ander te vervang. Hier lees die eRead die LVL, die digitalRead (pin), en sal WAAR terugkeer. Dit alles moet op hoë vlak uitgevoer word. Die volgende werk met die aktiewe sleutel sal op 'n lae vlak wees. Ek sal dit hier gebruik om u die "Waarheid" -tabel te wys.

In die beeld van die kode het ek 'n diagram geplaas wat sal help om te verstaan dat ek in hierdie deel van die bronkode in die rigting van stygend is en nog nie die einde van die kursus -sleutel bereik het nie.

Nou, in hierdie image os code bool DRV8825, wys ek die enjin wat steeds in die groeiende rigting beweeg. Die maksimum limietskakelaar is egter geaktiveer. Die meganisme moet die beweging dan stop.

Laastens wys ek dieselfde beweging, maar in die teenoorgestelde rigting.

Hier het u die eindkursus -skakelaar reeds geaktiveer.

Stap 9: Funksies - Bewegingsopstelling

Funksies - Bewegingsopstelling
Funksies - Bewegingsopstelling

Die belangrikste nut van die motionConfig -metode is om millimeter per sekonde ('n meting wat in CNC -masjiene gebruik word) na trappe om te skakel om die bestuurder van 'n stapmotor te ontmoet. Dit is dus in hierdie deel dat ek die veranderlikes instansieer om die stappe te verstaan en nie die millimeters nie.

Stap 10: Funksies - Bewegingsfunksie

Funksies - Bewegingsfunksie
Funksies - Bewegingsfunksie

In hierdie stap behandel ons die opdrag wat 'n stap in die gewenste rigting beweeg in 'n periode in mikrosekondes. Ons stel ook die rigtingpen van die bestuurder, vertragingstyd en rigting van eindskakelaars in.

Stap 11: Funksies - Bewegingsfunksie - Veranderlikes

Funksies - Bewegingsfunksie - Veranderlikes
Funksies - Bewegingsfunksie - Veranderlikes

In hierdie deel stel ons al die veranderlikes op wat periodes van maksimum en minimum spoed, afstand van baan en stappe insluit wat onder meer nodig is om die baan te onderbreek.

Stap 12: Funksies - Bewegingsfunksie - Versnelling

Funksies - Bewegingsfunksie - Versnelling
Funksies - Bewegingsfunksie - Versnelling
Funksies - Bewegingsfunksie - Versnelling
Funksies - Bewegingsfunksie - Versnelling

Hier gee ek 'n paar besonderhede oor hoe ons by die versnellingsdata gekom het, wat deur Torricelli se vergelyking bereken is, aangesien dit die spasies in ag neem om die versnelling te werk en nie die tyd nie. Maar hier is dit belangrik om te verstaan dat hierdie hele vergelyking slegs oor een reël kode handel.

Ons het 'n trap in die bostaande prentjie geïdentifiseer, omdat die aanvanklike omwentelinge min vir die meeste stepper motors is. Dieselfde gebeur met die vertraging. As gevolg hiervan, visualiseer ons 'n trapezium in die tydperk tussen versnelling en vertraging.

Stap 13: Funksies - Bewegingsfunksie - Deurlopende snelheid

Funksies - Bewegingsfunksie - Deurlopende snelheid
Funksies - Bewegingsfunksie - Deurlopende snelheid
Funksies - Bewegingsfunksie - Deurlopende snelheid
Funksies - Bewegingsfunksie - Deurlopende snelheid

Hier hou ons die aantal stappe wat gebruik word in die versnelling, ons hou aan met 'n aanhoudende snelheid en hou by die maksimum spoed, wat in die onderstaande prent gesien kan word.

Stap 14: Funksies - Bewegingsfunksie - Vertraging

Funksies - Bewegingsfunksie - Vertraging
Funksies - Bewegingsfunksie - Vertraging
Funksies - Bewegingsfunksie - Vertraging
Funksies - Bewegingsfunksie - Vertraging

Hier het ons nog 'n vergelyking, hierdie keer met 'n negatiewe versnellingswaarde. Dit word ook in 'n reël kode vertoon, wat in die onderstaande prent die reghoek verteenwoordig met die naam Deceleration.

Stap 15: Funksies - Bewegingsfunksie - Deurlopende snelheid

Funksies - Bewegingsfunksie - Deurlopende snelheid
Funksies - Bewegingsfunksie - Deurlopende snelheid
Funksies - Bewegingsfunksie - Deurlopende snelheid
Funksies - Bewegingsfunksie - Deurlopende snelheid

Ons keer terug na deurlopende snelheid om die tweede helfte van die baan te werk, soos hieronder gesien.

Stap 16: Funksies - skuiffunksie - skuifdraaie

Funksies - skuiffunksie - skuifdraaie
Funksies - skuiffunksie - skuifdraaie

In hierdie deel beweeg ons die enjin in 'n sekere aantal draaie in die gewenste rigting, omskakel die aantal draaie in millimeter. Uiteindelik beweeg ons die motor in die verlangde rigting.

Stap 17: Bewegingskaart - Posisie snelheid

Bewegingskaart - posisiesnelheid
Bewegingskaart - posisiesnelheid

In hierdie grafiek het ek data wat onttrek is uit die vergelyking wat ons in die deel van versnelling gebruik het. Ek het die waardes aangeneem en op die Arduino -reeks gespeel, en ek het hierna na Excel gegaan, wat tot hierdie tabel gelei het. Hierdie tabel toon die vordering van die stap.

Stap 18: Bewegingskaart - Posisie vs. Posisie

Bewegingskaart - Posisie vs. Posisie
Bewegingskaart - Posisie vs. Posisie

Hier neem ons die posisie, in stappe, en die snelheid en omskep dit in periode, in mikrosekonde. Ons merk op in hierdie stap dat die tydperk omgekeerd eweredig is aan die snelheid.

Stap 19: Bewegingskaart - Velocity vs. Oomblik

Bewegingskaart - Velocity vs. Oomblik
Bewegingskaart - Velocity vs. Oomblik

Laastens het ons die snelheid as 'n funksie van die oomblik, en daarom het ons 'n reguit lyn, aangesien dit die snelheid is as 'n funksie van tyd.

Aanbeveel: