Durata de livrare: 1 - 3 zile lucratoare
Shield-ul pentru motoare stepper permite controlul a 3 motoare stepper folosind Arduino. Functioneaza impreuna cu Arduino UNO sau Arduino Mega.
Shield este special gandit pentru a permite functionarea a 3 drivere Black Edition (sau altele compatibile la pini), ceea ce il face ideal pentru CNC-uri sau alte masini similare.
Shield-ul contine condensatorii de protectie pentru drivere, precum si jumperi pentru microstepping (inclusi pe PCB, conectare cu fludor). Sunt conectate din fabrica in regim de microstepping 1:16 (motoarele se misca cel mai lin).
Shield-ul se infige direct in placa Arduino. Shield-ul nu are componentele lipite (necesita lipire).
Necesita un set de conectori: https://www.robofun.ro/conectori/kit-conectori-arduino-r3.html.
Shield-ul si implicit motoarele stepper se vor alimenta prin pinii cu surub marcati cu GND si VMOT. Tensiunea de alimentare nominala este de 12 V. Firul negativ de la sursa de alimentare se conecteaza la pinul GND iar firul pozitiv se conecteaza la pinul VMOT.
- o placa PCB (culoare albastra)
- 3 condensatoare electrolitice de 100 uF / 35V pentru protectia driverelor
- un conector 2 pini cu surub
- o bareta cu 40 de pini drepti
- 6 barete cu 8 pini mama
Pinii pentru controlul motoarelor sunt ca mai jos :
ENABLE MOTOR 1 - pin digital 8 (active LOW)
DIR MOTOR 1 - pin digital 2
STEP MOTOR 1 - pin digital 3
ENABLE MOTOR 2 - pin digital 9 (active LOW)
DIR MOTOR 2 - pin digital 4
STEP MOTOR 2 - pin digital 5
ENABLE MOTOR 3 - pin digital 10 (active LOW)
DIR MOTOR 3 - pin digital 7
STEP MOTOR 3 - pin digital 6
Exista doua moduri de a scrie codul pentru a controla cele 3 motoare. Unul dintre acest moduri este a scrie integral totul in programul tau (exact ca mai jos), iar cel de-al doilea este de a folosi libraria AccelStepper. Utilizarea librariei ofera o multitudine de optiuni (cum ar fi miscare accelerata, printre altele), si reprezinta modalitatea recomandata.
Exemplu cod sursa
#define EN_PIN1 8 #define DIR_PIN1 2 #define STEP_PIN1 3 #define EN_PIN2 9 #define DIR_PIN2 4 #define STEP_PIN2 5 #define EN_PIN3 10 #define DIR_PIN3 7 #define STEP_PIN3 6 #define MOTOR1 1 #define MOTOR2 2 #define MOTOR3 3 void setup() { pinMode(EN_PIN1, OUTPUT); pinMode(DIR_PIN1, OUTPUT); pinMode(STEP_PIN1, OUTPUT); pinMode(EN_PIN2, OUTPUT); pinMode(DIR_PIN2, OUTPUT); pinMode(STEP_PIN2, OUTPUT); pinMode(EN_PIN3, OUTPUT); pinMode(DIR_PIN3, OUTPUT); pinMode(STEP_PIN3, OUTPUT); turnMotorON(MOTOR1); turnMotorON(MOTOR2); turnMotorON(MOTOR3); } void loop() { rotateDeg(-360, .5, MOTOR1); rotateDeg(-360, .5, MOTOR2); rotateDeg(-360, .5, MOTOR3); } void turnMotorON(int motor) { int whichMotor = 0; if (motor == MOTOR1) { whichMotor = EN_PIN1; } else if (motor == MOTOR2) { whichMotor = EN_PIN2; } else if (motor == MOTOR3) { whichMotor = EN_PIN3; } digitalWrite(whichMotor, LOW); } void turnMotorOFF(int motor) { int whichMotor = 0; if (motor == MOTOR1) { whichMotor = EN_PIN1; } else if (motor == MOTOR2) { whichMotor = EN_PIN2; } else if (motor == MOTOR3) { whichMotor = EN_PIN3; } digitalWrite(whichMotor, HIGH); } void rotateDeg(float deg, float speed, int motor) { int stepPin = 0; int dirPin = 0; if (motor == MOTOR1) { stepPin = STEP_PIN1; dirPin = DIR_PIN1; } else if (motor == MOTOR2) { stepPin = STEP_PIN2; dirPin = DIR_PIN2; } else if (motor == MOTOR3) { stepPin = STEP_PIN3; dirPin = DIR_PIN3; } int dir = (deg > 0) ? HIGH : LOW; digitalWrite(dirPin, dir); int steps = abs(deg) * (1 / 0.225); float usDelay = (1 / speed) * 70; for (int i = 0; i < steps; i++) { digitalWrite(stepPin, HIGH); delayMicroseconds(usDelay); digitalWrite(stepPin, LOW); delayMicroseconds(usDelay); } }
Microstepping / full step
Cele mai multe drivere pentru motoare pas cu suporta suporta un mod numit "microstepping", care mod de functionare permite o miscare foarte lina a motorului. Acest shield este deja configurat pentru modul de lucru "microstepping 1:16", insa permite trecerea in full step prin deconectarea jumperilor cu fludor de pe PCB. Recomandarea noastra este sa pastrati shield-ul in microstepping, motoarele vor functiona cel mai lin. Mai multe detalii aici - http://www.geckodrive.com/microstep-full-step-torque
Atentie la conectarea driver-elor ! Conectarea intr-o alta pozitie decat cea de mai jos (adica rotite cu 180) va duce la arderea driver-elor.
Montarea condensatoarelor de protectie
Cele trei condensatoare de protectie sunt electrolitice, ceea ce inseamna ca este important cum ii lipesti pe placa. Urmareste poza de mai jos cu atentie (zona bleu, minus spre pini cu surub) si nu INVERS !
Limitarea curentului prin driver
Limitarea curentului prin driver este un pas foarte important. Acest lucru se face cu o surubelnita cu varf fin, invartind de potentiometrele driver-elor. Mai jos este un link catre youtube unde poti vedea efectiv acest proces. O modalitate simpla de a face acest lucru este sa urci codul sursa pe Arduino, sa conectezi motorul, si in timp ce acesta se invarte sa micsorezi curentul din driver (prin rotirea potentiometrului in sens invers acelor de ceasornic) pana cand motorul nu mai are suficienta forta sa se invarta (prinzi axul cu mana si il opresti). Apoi rotesti potentiometrul in sensul acelor de ceasornic, foarte incet, pana cand cuplul generat de motor este suficient. In final, trebuie sa verifici ca motorul nu se incinge prea tare (ideal ar fi sa ramana rece sau un pic caldut), iar driver-ele nu se incing foarte tare (pot fi calde / fierbinti, dar trebuie sa poti tine degetul pe ele). Daca frig la deget, atunci curentul este prea mare.
Este important sa nu atingi cu varful surubelnitei alte piese sau contacte de pe driver, in afara potentiometrului, probabil ca vei distruge driver-ul.
https://www.youtube.com/results?search_query=adjust+current+stepper+pololu+driver+
Inca un lucru la care trebuie sa fii atent sunt pinii ICSP ai placii Arduino, care sunt exact sub pinii de la ultimul driver. Nu infige prea tare shield-ul in Arduino, risti sa ai un contact nedorit. Alternativ, poti pune o bucata de izolatie in aceasta zona.
Schema electrica a placii poate fi descarcata aici - shield-stepper-schematic.png
Suport clienti Email tehnic si cereri de oferta B2B: contact@robofun.ro
+40 373 813 088 info@robofun.ro
Viorel [ROBOFUN],
Raspunde@Vasile Guta-Ciucur
Salut,
Am adaugat in pagina (la final de tot) un link catre schema electrica a placii.
V-am dat acum un email, orice sugestie de imbunatatire aveti pentru acest shield, o voi transmite personal producatorilor placii.
Viorel
A fost util acest review?