Înainte de începerea următorului proiect de la Arduino, sa decis utilizarea motorului de pasageri Nema 17 datorită raportului excelent preț / calitate. Înainte de a conecta Nema 17, în spatele umerilor a existat o anumită experiență cu lucrarea 24byj48 (datasheet). El a reușit cu ajutorul lui Arduino și, cu ajutorul lui Raspberry pi, nu au existat probleme. Farmecul principal al acestui motor este prețul (aproximativ 3 dolari în China). Și, pentru această sumă, obțineți motorul cu șoferul în kit. Sunt de acord, acest lucru poate fi chiar ars, nu regretând în mod deosebit ceea ce sa făcut.
Acum sarcina este mai interesantă. Acționați motorul pas cu pas Nema 17 (foaie de date). Acest model de la producătorul original este vândut pentru aproximativ 40 de dolari. Copiile chinezești costă de 1,5-2 ori mai ieftine - aproximativ 20-30 de dolari. Un model foarte reușit, folosit adesea în imprimante 3D și proiecte CNC. Prima problemă este cum să alegeți driverul pentru acest motor. Curentul de pe pinii Arduino pentru putere nu este suficient.
Selectarea driverului pentru a gestiona Nema 17
Google a sugerat că pentru a revigora Nema 17, puteți folosi driverul A4988 de la Poulou (datashit).
În plus, există o opțiune pentru utilizarea cipurilor L293D. Dar modelul A4988 este considerat o opțiune mai potrivită, astfel încât a fost oprită pentru a evita posibilele probleme.
Conectarea lui Nema 17 prin A4988
Conexiunea a fost implementată pe baza acestui subiect pe forumul Arduino. Imaginea este prezentată mai jos.
De fapt, acest sistem este prezent pe aproape orice site blog dedicat Arduino. Placa a fost alimentată de o sursă de alimentare de 12 volți. Dar motorul nu sa rotit. Am verificat toate conexiunile, am verificat-o din nou și din nou.
Prima problemă
Adaptorul nostru de 12 volți nu a dat suficient curent. Ca rezultat, adaptorul a fost înlocuit cu 8 baterii AA. Și motorul a început să se rotească! Ei bine, atunci am vrut să sară de la pană la o conexiune directă. Și apoi a fost
A doua problemă
Când totul era deconectat, motorul se oprea din nou. De ce? Nu este clar până acum. Trebuia să mă întorc la pană. Și aici a fost oa doua problemă. A meritat să stați pe forum sau citiți cu atenție fișa tehnică. Nu conectați / deconectați motorul când controlerul este alimentat! Ca rezultat, controlerul A4988 a ars în siguranță.
Această problemă a fost rezolvată prin cumpărarea unui nou driver pe eBay. Acum, luând în considerare experiența tristă acumulată, Nema 17 a fost conectat la modelul A4988 și a fost lansat, dar.
Motorul pas cu pas vibrează puternic
În timpul rotirii rotorului, motorul vibrează puternic. Nu se vorbea despre mișcare ușoară. Google din nou pentru a vă ajuta. Primul gând este conectarea incorectă a înfășurărilor. Cunoașterea cu tabloul de bord al motorului pas cu pas și mai multe forumuri au convins că problema nu este în acest sens. Dacă înfășurările sunt conectate incorect, motorul nu va funcționa. Soluția la problemă stă în schiță.
Program pentru Arduino
Sa dovedit că există o minunată bibliotecă pentru motoare pas cu pas, scrisă de tipii de la Adafruit. Folosim biblioteca AcclStepper și motorul pas cu pas începe să funcționeze fără probleme, fără vibrații excesive.
Principalele constatări
- Nu conectați niciodată / deconectați motorul atunci când controlerul este alimentat.
- Atunci când alegeți o sursă de alimentare, acordați atenție nu numai tensiunii, ci și puterii adaptorului.
- Nu vă faceți griji dacă A4988 nu funcționează. Doar comandă unul nou;)
- Utilizați biblioteca AcclStepper în locul codului Arduino gol. Motorul Stepper care utilizează această bibliotecă va funcționa fără vibrații inutile.
Schițe pentru controlul motorului pas cu pas
Cod simplu Arduino pentru verificarea motorului pas cu pas
// conexiune simplă A4988
// resetarea și pinii de somn sunt conectați împreună
// conectați VDD la pin 3.3V sau 5V pe Arduino
// conectați GND la GND Arduino (GND lângă VDD)
// conectați 1A și 1B la 1 bobină de motor pas cu pas
// conectați 2A și 2B la 2 bobine de motor pas cu pas
// conectați VMOT la sursa de alimentare (sursa de alimentare 9V + termen)
// conectați GRD la sursa de alimentare (alimentare de 9V pe termen)
int stp = 13; // conectați 13 pini la pas
int dir = 12; // conectați 12 pini la dir
Al doilea cod pentru Arduino pentru a asigura rotația netedă a motorului. Este utilizată biblioteca AccelStepper.
AccelStepper Stepper1 (1,13,12); // utilizează pinii 12 și 13 pentru direcție și pas, 1 - modul "driver extern" (A4988)
int dir = 1; // utilizate pentru a schimba direcția
Stepper1.setMaxSpeed (3000); // setați viteza maximă de rotație a rotorului motorului (pași / secundă)
Stepper1.setAcceleration (13000); // setați accelerația (pași / secundă ^ 2)
dacă (Stepper1.distanceToGo () == 0)/проверка, отработал ли двигатель предыдущее движение
Stepper1.move (1600 * dir); // stabilește următoarea mișcare la 1600 de pași (dacă dir este -1, se va mișca -1600 -> direcția opusă)
dir = dir * (- 1); // valoarea negativă a dirului, datorită căreia se realizează rotația în direcția opusă
întârziere (1000); // întârziere de 1 secundă
Stepper1.run (); // porniți motorul pas cu pas. Această linie se repetă din nou și din nou pentru rotirea continuă a motorului
ARDUINO-DIY.COM este o resursă informațională cu cele mai bune instrucțiuni și tutoriale despre utilizarea controlorilor Arduino.
Suntem întotdeauna bucuroși de o cooperare constructivă. Cu toate întrebările, sugestiile și sugestiile, vă rugăm să contactați [email protected].