Arduino și motor pas cu pas 28byj-48

Arduino și motor pas cu pas 28byj-48

Există o mare varietate de motoare pas cu pas de diferite mărimi și caracteristici. Pentru a le gestiona, aveți nevoie de un dispozitiv special - driverul.

Arduino și motor pas cu pas 28byj-48

În acest articol vom folosi:







Deci, sarcina: conectați motorul pas cu pas la arduino uno și rotiți-l.

S-ar părea că numărul de fire care merg la motor, poate intra într-o stupoare, de ce atât de mult și de unde să pună totul? De fapt, nimic nu este complicat nici în legătură, nici în cod. Și acum ne vom vedea pentru noi înșine!

Conectarea motorului la șofer și șoferul la rândul său, la Arduino bord pini digitale 2, 3, 4, 5 și la sursa de alimentare (5V) așa cum se arată în fotografie.

Arduino și motor pas cu pas 28byj-48






Vă recomandăm cu tărie că în proiectele lor de a utiliza o sursă de alimentare separată a motorului (de la o altă unitate de alimentare cu energie, și nu din Arduino), pentru că dacă dau o sarcină serioasă pe motor - pe placa Arduino ar putea supraîncălzi cipul responsabil pentru produsele alimentare - care nu este bun!

Arduino și motor pas cu pas 28byj-48

Pentru a controla motorul, utilizați biblioteca Stepper, de care nu aveți nevoie să legeți - este inclusă în ID-ul Arduino - mediul de dezvoltare în care scriem codul pentru arduino. Ca parametri, transferăm numărul de pași ai revoluției complete și pinii la care este conectat motorul.

Metoda setSpeed ​​() poate controla viteza și etapa () este responsabil pentru mișcarea arborelui cu un număr predeterminat de etape (când valoarea este negativă - ax se rotește în direcția opusă).

Codul complet al programului:

S-ar putea să aveți nevoie de următoarele fișiere:

#include
// schimbați numărul de pași pentru motorul dvs.
#define STEPS 4078
Pasul stepper_28BYJ (STEPS, 2, 3, 4, 5);
int dar = 0;
int butl = 8;
int butr = 9;
void setup ()
// setați viteza de rotație la 3 rpm
stepper.setSpeed ​​(5);
pinMode (butl, INPUT);
pinMode (butr, INPUT);
>
buclă voidă ()
dacă (digitalRead (butl) == HIGH) dar = 1;
întârziere (100);
>
dacă (digitalRead (butr) == HIGH) dar = 2;
întârziere (100);
>

comuta (dar) cazul 1:
stepper.step (STEPS);
dar = 0;
pauză;
cazul 2:
stepper.step (-STEPS);
dar = 0;
pauză;
>
>

butl - butonul spre stânga (8) și butr - butonul spre dreapta (9)







Articole similare

Trimiteți-le prietenilor: