Sisällysluettelo:

Arduino: Tarkkuus Lib askelmoottorille: 19 vaihetta
Arduino: Tarkkuus Lib askelmoottorille: 19 vaihetta

Video: Arduino: Tarkkuus Lib askelmoottorille: 19 vaihetta

Video: Arduino: Tarkkuus Lib askelmoottorille: 19 vaihetta
Video: Измерьте ток до 500A с помощью шунтирующего резистора с помощью Arduino 2024, Marraskuu
Anonim
Image
Image
Globaalit muuttujat
Globaalit muuttujat

Tänään näytän sinulle kirjaston täyden askelmoottorin kuljettajalle, jossa on rajakytkimet ja moottorin liike kiihdytyksellä ja mikroaskeleella. Tämä Lib, joka toimii sekä Arduino Unossa että Arduino Megassa, mahdollistaa moottorien siirtämisen askelmäärän lisäksi myös millimetreinä. Ja se on myös aika tarkka.

Tämän kirjaston tärkeä piirre on, että sen avulla voit rakentaa oman CNC -koneesi, joka ei välttämättä ole vain X, Y, vaan myös esimerkiksi leikkauskytkin, koska se ei ole valmis GRBL, vaan pikemminkin ohjelmointi voit tehdä ihanteellisen koneen sinulle.

Seuraava lausunto on kuitenkin tärkeä yksityiskohta! Tämä video on tarkoitettu vain niille, jotka ovat jo tottuneet ohjelmointiin. Jos et ole perehtynyt Arduino -ohjelmointiin, sinun on ensin katsottava muita esittelyvideoita kanavallani. Tämä johtuu siitä, että keskustelen edistyneestä aiheesta tässä videossa ja selitän tarkemmin videossa käytettyä lib: Step Motor with Acceleration and End of Stroke.

Vaihe 1: StepDriver -kirjasto

Tämä kirjasto kattaa kolme yleisintä ohjaintyyppiä markkinoilla: A4988, DRV8825 ja TB6600. Se määrittää ohjainten nastat, jolloin ne voivat suorittaa nollaus- ja lepotilaan asettamisen sekä aktivoida ja deaktivoida moottorin lähdöt, jotka vaikuttavat Enable -nastaan. Se asettaa myös kuljettajan mikrotappien tulot ja rajoittaa kytkimet ja niiden aktivointitason (korkea tai matala). Siinä on myös moottorin liikekoodi jatkuvalla kiihtyvyydellä mm / s², suurin nopeus mm / s ja miniminopeus mm / s.

Niille, jotka katsoivat vaiheen 1 ja 2 videota Step Motor with Acceleration and End of Stroke, lataa tämä uusi kirjasto, joka on saatavilla tänään, koska tein joitakin muutoksia ensimmäiseen tiedostoon sen käytön helpottamiseksi.

Vaihe 2: Yleiset muuttujat

Näytän tarkalleen, mitä kukin globaali muuttuja on tarkoitettu.

Vaihe 3: Toiminnot - Ohjaimen nastojen asettaminen

Toiminnot - Ohjaimen nastojen asettaminen
Toiminnot - Ohjaimen nastojen asettaminen

Tässä kuvailen joitain menetelmiä.

Asetin Pinout -asetuksen ja Arduino -nastat lähtöksi.

Vaihe 4: Toiminnot - kuljettajan perustoiminnot

Toiminnot - Kuljettajan perustoiminnot
Toiminnot - Kuljettajan perustoiminnot

Tässä osassa käsittelemme ohjaimen kokoonpanoa ja sen perustoimintoja.

Vaihe 5: Toiminnot - Moottorin vaiheasetus

Toiminnot - Moottorin askelasetus
Toiminnot - Moottorin askelasetus
Toiminnot - Moottorin askelasetus
Toiminnot - Moottorin askelasetus

Tässä koodin vaiheessa määritämme askelmäärän millimetriä kohden, joka moottorin on suoritettava.

Vaihe 6: Toiminnot - Moottorin askeltilan asettaminen

Toiminnot - Moottorin askeltilan asettaminen
Toiminnot - Moottorin askeltilan asettaminen
Toiminnot - Moottorin askeltilan asettaminen
Toiminnot - Moottorin askeltilan asettaminen
Toiminnot - Moottorin askeltilan asettaminen
Toiminnot - Moottorin askeltilan asettaminen

Tämä taulukko näyttää moottorin askeltilan asetukset. Tässä muutamia esimerkkejä.

Vaihe 7: Toiminnot - Rajakytkimien asettaminen

Toiminnot - Rajakytkimien asettaminen
Toiminnot - Rajakytkimien asettaminen

Tässä minun on luettava koko ja boolen arvot. On asetettava, onko aktiivinen näppäin ylös- tai alaspäin, samalla kun asetetaan enimmäis- ja minimiraja.

Vaihe 8: Toiminnot - Rajakytkimien lukeminen

Toiminnot - Rajakytkimien lukeminen
Toiminnot - Rajakytkimien lukeminen
Toiminnot - Rajakytkimien lukeminen
Toiminnot - Rajakytkimien lukeminen
Toiminnot - Rajakytkimien lukeminen
Toiminnot - Rajakytkimien lukeminen

Tämä osa on erilainen kuin Lib: ssä, jonka annoin saataville viime viikolla. Miksi muutin sen? No, loin eReadin korvaamaan joitakin muita. Täällä eRead lukee LVL: n, digitalReadin (pin) ja palauttaa arvon TRUE. Kaikki tämä on suoritettava korkealla. Seuraava työ aktiivisella näppäimellä on alhaisella tasolla. Käytän sitä täällä näyttääkseni "totuus" -taulukon.

Koodin kuvaan laitoin kaavion, joka auttaa ymmärtämään, että tässä lähdekoodin osassa olen siirtymässä kohti nousevaa enkä ole vielä lyönyt kurssin loppu -näppäintä.

Tässä kuvassa os koodi bool DRV8825, näytän moottorin edelleen liikkuvaan suuntaan. Maksimirajakytkin on kuitenkin aktivoitu. Mekanismin on siis pysäytettävä liike.

Viimeiseksi näytän saman liikkeen, mutta päinvastaiseen suuntaan.

Tässä sinulla on jo kurssin loppukytkin aktivoitu.

Vaihe 9: Toiminnot - Liikeasetukset

Toiminnot - Motion Setup
Toiminnot - Motion Setup

MotionConfig -menetelmän tärkein hyöty on muuntaa millimetri sekunnissa (CNC -koneissa käytetty mittaus) askeleiksi askelmoottorin ohjaimen tapaamiseksi. Siksi tässä osassa esittelen muuttujat ymmärtääkseni askeleet eikä millimetrejä.

Vaihe 10: Toiminnot - Liiketoiminto

Toiminnot - Liiketoiminto
Toiminnot - Liiketoiminto

Tässä vaiheessa käsittelemme komentoa, joka siirtää askeleen haluttuun suuntaan mikrosekunnin aikana. Asetimme myös kuljettajan suuntatapin, viiveajan ja rajakytkinten suunnan.

Vaihe 11: Toiminnot - Liiketoiminto - Muuttujat

Toiminnot - Liiketoiminto - Muuttujat
Toiminnot - Liiketoiminto - Muuttujat

Tässä osassa määritämme kaikki muuttujat, jotka sisältävät enimmäis- ja vähimmäisnopeuden jaksoja, liikeradan etäisyyttä ja muita vaiheita, jotka ovat tarpeen radan keskeyttämiseksi.

Vaihe 12: Toiminnot - Liiketoiminto - Kiihtyvyys

Toiminnot - Liiketoiminto - Kiihtyvyys
Toiminnot - Liiketoiminto - Kiihtyvyys
Toiminnot - Liiketoiminto - Kiihtyvyys
Toiminnot - Liiketoiminto - Kiihtyvyys

Esitän tässä joitakin yksityiskohtia siitä, miten päädyimme kiihtyvyystietoihin, jotka laskettiin Torricellin yhtälön avulla, koska tässä otetaan huomioon kiihtyvyyden työskentelytilat eikä aika. Mutta tässä on tärkeää ymmärtää, että tämä koko yhtälö koskee vain yhtä koodiriviä.

Tunnistimme puolisuunnikkeen yllä olevasta kuvasta, koska ensimmäiset kierrosluvut ovat huonoja useimmille askelmoottoreille. Sama tapahtuu hidastuksen kanssa. Tämän vuoksi visualisoimme puolisuunnikkaan kiihtyvyyden ja hidastumisen välisellä aikavälillä.

Vaihe 13: Toiminnot - Liiketoiminto - Jatkuva nopeus

Toiminnot - Liiketoiminto - Jatkuva nopeus
Toiminnot - Liiketoiminto - Jatkuva nopeus
Toiminnot - Liiketoiminto - Jatkuva nopeus
Toiminnot - Liiketoiminto - Jatkuva nopeus

Täällä pidämme kiihdytyksessä käytettyjen vaiheiden määrän, jatkamme jatkuvalla nopeudella ja pidämme suurimmalla nopeudella, joka näkyy alla olevassa kuvassa.

Vaihe 14: Toiminnot - Liiketoiminto - Hidastus

Toiminnot - Liiketoiminto - Hidastus
Toiminnot - Liiketoiminto - Hidastus
Toiminnot - Liiketoiminto - Hidastus
Toiminnot - Liiketoiminto - Hidastus

Tässä on toinen yhtälö, tällä kertaa negatiivinen kiihtyvyysarvo. Se näkyy myös koodirivillä, joka edustaa alla olevassa kuvassa hidastusta.

Vaihe 15: Toiminnot - Liiketoiminto - Jatkuva nopeus

Toiminnot - Liiketoiminto - Jatkuva nopeus
Toiminnot - Liiketoiminto - Jatkuva nopeus
Toiminnot - Liiketoiminto - Jatkuva nopeus
Toiminnot - Liiketoiminto - Jatkuva nopeus

Palaamme jatkuvaan nopeuteen työskennelläksemme radan toisella puoliskolla, kuten alla näkyy.

Vaihe 16: Toiminnot - Siirrä toiminto - Siirrä käännöksiä

Toiminnot - Siirrä toiminto - Siirrä käännöksiä
Toiminnot - Siirrä toiminto - Siirrä käännöksiä

Tässä osassa siirrämme moottoria tietyn määrän kierroksia haluttuun suuntaan muuntamalla kierrosten määrä millimetreinä. Lopuksi siirrämme moottoria haluttuun suuntaan.

Vaihe 17: Liikekaavio - sijainnin nopeus

Liikekaavio - sijainnin nopeus
Liikekaavio - sijainnin nopeus

Tässä kaaviossa minulla on tietoja, jotka on poimittu yhtälöstä, jota käytimme kiihdytyksen osassa. Otin arvot ja pelasin Arduino -sarjassa, ja siirryin tästä Exceliin, mikä johti tähän taulukkoon. Tämä taulukko näyttää vaiheen edistymisen.

Vaihe 18: Liikekaavio - sijainti vs. Sijainti

Liikekaavio - sijainti vs. Sijainti
Liikekaavio - sijainti vs. Sijainti

Tässä otamme aseman vaiheittain ja nopeuden ja muunnamme sen jaksoksi mikrosekunnissa. Huomaamme tässä vaiheessa, että jakso on kääntäen verrannollinen nopeuteen.

Vaihe 19: Liikekaavio - Velocity Vs. Hetki

Liikekaavio - Velocity vs. Hetki
Liikekaavio - Velocity vs. Hetki

Lopuksi meillä on nopeus hetken funktiona, ja tästä syystä meillä on suora viiva, koska se on nopeus ajan funktiona.

Suositeltava: