Lecții arduino

Lecții arduino

În lecție, conectați driverul STEP / DIR TB6560-V2 la placa Arduino. Aflați cum să o gestionați cu ajutorul bibliotecii StepDirDriver.

TB6560-V2 este un driver ieftin pentru pas cu pas care suportă toate modurile și funcțiile tipice ale driverelor STEP / DIR.







În lecție, îl vom conecta la bordul Arduino. Toate programele și programele de lecții se vor potrivi oricărui alt driver STEP / DIR.

Conectarea driverului la placa Arduino.

În articolul despre modulul TB6560-V2 există două scheme de conectare la microcontroler. Vom folosi acest lucru.

Lecții arduino
La un nivel ridicat de semnal (+5 V), curentul trece prin LED-ul optocuplorului de intrare și modul îl percepe ca nivel de control activ. Rezistoarele de 330 ohmi limitează curentul LED-urilor. Ie Conducătorul auto poate controla semnalele direct de pe pinii microcontrolerului.

În acest sens, schema de conectare pentru driverul TB6560-V2 la placa Arduino arată astfel.

Lecții arduino
Acordați atenție siguranței. Îmi recomand foarte mult. În schemele cu drivere simple, atunci când cheile sunt arse prin motor, curentul de funcționare este limitat fie de rezistența înfășurării, fie de un rezistor suplimentar. La driverele cu stabilizare actuală, curentul este reglat prin modularea PWM. Dacă comutatoarele de ieșire sunt arse în astfel de dispozitive, tensiunea totală a alimentării poate ajunge la motor. Aceasta va conduce la un curent inacceptabil și la arderea motorului pas cu pas. Procesul este lent, astfel încât orice siguranță, fie fuzibilă, fie auto-vindecătoare, va salva unitatea de eșec.

Parametrii driverului sunt setați de comutatoarele de pe placa modulului. Am setat curentul de fază la 1 A.

Lecții arduino

Comutatoarele S3 și S4 selectează modul de comutare a fazelor.

Pentru început, am setat modul de trecere, apoi am verificat toate celelalte. Toate modurile sunt descrise în articolul despre modulul TB6560-V2. Acesta arată, de asemenea, modul de setare a acestora de către modulele de comutare.

Circuitul asamblat arată astfel.

Lecții arduino
Rămâne de învățat cum să gestionăm un astfel de sistem.

Am creat această bibliotecă pentru a gestiona driverele STEP / DIR. Este pe deplin compatibil cu biblioteca StepMotor (lecția 29). Doar 2 diferențe:

  • Constructorul are alte argumente. Doar pentru driverul STEP / DIR sunt necesare alte semnale de comandă și un număr diferit de semnale.
  • În funcția setMode (), parametrul stepMode, modul de comutare, este ignorat. Modul este setat de comutatoarele de pe șofer.

Descărcați biblioteca StepDirDriver la acest link.

Descrierea clasei StepDirDriver.

Clasa are următoarele metode publice.

publice:
StepDirDriver (bytes pinStep, byte pinDir, byte pinEn); // constructor
controlul void (); // control, funcția trebuie apelată regulat cu frecvența maximă de comutare a fazelor
pas void (etape int); // Inițiați rotația rotorului printr-un număr specificat de pași
void setMode (byte stepMode, boolean fixStop); // setează modurile de comutare a fazelor și se oprește
void setDivider (separator int); // setarea separatorului de frecvență pentru comutarea în fază
int readSteps (); // citiți pașii rămași
>;

Nu este greu de ghicit despre numirea argumentelor designerului:

  • pinStep - ieșirea semnalului STEP;
  • pinDir - ieșire semnal DIR;
  • pinEn - ieșirea semnalului ENABLE.

StepDirDriver myMotor1 (10, 11, 12); // creați obiectul StepDirDriver, setați ieșirile pentru semnalele STEP, DIR, ENABLE







Descrierea metodelor din biblioteca StepDirDriver.

Este necesar ca metoda să fie apelată în mod regulat într-un proces paralel (întreruperea temporizatorului). Produce semnale de control care determină comutarea fazelor. Frecvența apelului către funcția control (), împreună cu divizorul specificat de setul de separare a funcțiilor, determină viteza motorului.

// întrerupeți tratamentul 200 noi
void timerInt ()
myMotor1.control (); // controlul motorului
>

Metoda inițiază rotația motorului printr-un număr specificat de pași. În modurile de microprocesare nu este vorba despre treptele fizice ale motorului, ci despre etapele micro. Parametrul pașilor cu o valoare pozitivă inițiază rotația în sensul invers acelor de ceasornic, cu o valoare negativă în sensul acelor de ceasornic.

Prin executarea pasului funcției de rotire ()

myMotor1.step (300); // faceți 300 de pași în sens invers acelor de ceasornic

programul poate efectua alte sarcini. Motorul se va opri. În orice moment, motorul poate fi oprit printr-o comandă

myMotor1.step (0); // opriți unitatea

Nimic nu împiedică setarea unui nou număr de pași, fără a aștepta oprirea motorului. Pentru rotirea continuă, puteți apela periodic funcția step () cu un număr mare de pași.

myMotor1.step (30000); // rotație constantă

Puteți afla că motorul a încetat să utilizeze metoda readSteps ().

void setMode (byte stepMode, boolean fixStop)

Metoda stabilește starea motorului când acesta se oprește.

  • Dacă fixStop = true, atunci când înfășurările motorului se opresc, se aplică curentul de reținere, poziția rotorului este fixă.
  • Cu fixStop = false, tensiunea din înfășurările motorului este anulată atunci când este oprită.

Argumentul stepMode este ignorat. Acesta este adăugat pentru compatibilitate cu aceeași funcție a bibliotecii StepMotor.

myMotor1.setMode (0, adevărat); // fixarea rotorului când acesta se oprește
myMotor1.setMode (0, fals); // motorul este complet deconectat

void setDivider (divider int)

Funcția stabilește raportul frecvenței apelului la metoda control () și, prin urmare, determină viteza motorului. Viteza de rotație poate fi calculată folosind următoarea formulă:

Rpm = 60.000 / (divider * Tcontrol * Ndrive) / N microspeed

  • Rpm - viteza de rotație în rotații pe minut;
  • Tcontrol - perioada de control al apelului metodic () în ms;
  • Nmvatelya - numărul de trepte ale motorului pentru o revoluție completă;
  • N microshag - numărul de micro-trepte ale motorului pe fază.

Pentru modul pas cu pas N microscheme = 1, pentru podeaua pas cu pas N microswagging = 2, etc.

myMotor1.setDivider (5); // divizor de frecvențe 5

Metoda citește numărul de pași rămași până când motorul se oprește. O revenire de 0 înseamnă că motorul este oprit.

Exemple de utilizare a bibliotecii StepDirDriver.

Utilizarea noii biblioteci nu diferă de utilizarea funcțiilor bibliotecii StepMotor din lecțiile anterioare.

Doar două diferențe:

  • Conectarea bibliotecii # include în loc de #include .
  • Un alt format al designerului este StepDirDriver myMotor (10, 11, 12); în loc de StepMotor myMotor (10, 11, 12, 13).

Programul modifică numai 2 linii.

Puteți descărca și testa schița programului. ceea ce face ca motorul 2 să se rotească în sensul acelor de ceasornic la o viteză de 1 viraj pe secundă, apoi să pauze 1 secundă, 2 rotații în sens invers acelor de ceasornic, să se oprească din nou pentru o secundă și astfel în ciclu. Este similar cu exemplele din lecțiile anterioare pentru biblioteca StepMotor. Nu uitați să instalați biblioteca StepDirDriver.

Verificați motorul cu pas cu pas comandat de AT.

Am înlocuit două linii ale programului de conducere cu control din calculatorul de la Lesson31 și a fost obținut un nou dispozitiv pentru lucrul cu un motor pas cu pas. Descărcați driverul nou cu control asupra protocolului Comenzile AT pot fi la acest link.

Am asamblat sistemul conform schemei de la începutul lecției și am verificat într-o varietate de moduri. Nu voi descrie totul în detaliu. Voi opri în modul micro pas.

Setați modul micro pas cu 16 etape micro. Motorul meu are 400 de pași fizici. În modul micro pas, avem un motor care are câte 6400 de pași pe revoluție! Încercat să gestioneze programul de nivel superior StepMotor (lecția 31).


Lecții arduino
Totul funcționează. Precizia instalării este pur și simplu incredibilă.

De asemenea, am verificat funcționarea dispozitivului servo-electric din lecția 32.


Lecții arduino
Puterea de rezolvare a poziției rotorului este de aproape 0,05 °!

Probabil, în ultimele două lecții am arătat în mod convingător avantajele șoferilor STEP / DIR. Dar ce șofer să aplicați într-un caz particular dezvoltatorului. Ce este mai important este prețul scăzut al unui driver simplu de la chei sau funcționalitatea unui driver STEP / DIR.

Există evoluții foarte serioase cu drivere simple. De exemplu, practic toate motoarele pas cu pas din echipamentul de ambalare al SPE ROST funcționează în mod unipolar cu chei simple de șofer. Din acest motiv, motoarele au cuplu redus, a redus viteza maximă de rotație, dar prețul sistemului de control a scăzut în mod semnificativ. Pentru dispozitive cu 7-10 motoare pas cu pas, acest lucru este important.

Este necesar să alegeți cea mai bună opțiune. În unele cazuri, fără ca un driver STEP / DIR să nu poată face, în alte proiecte, driverele simple vor funcționa bine.

Și nu a putut indica chiar și direcția aproximativă a modului de a organiza un astfel de regim de la panoul de control pentru a rula o secvență de mai multe (5 buc.) Motoare pas cu pas, solicitând anumite unghiuri de rotație și le pe secvența și este tot în mod automat înregistrează cu posibilitatea de ajustare a unghiurilor programului de rotație. În general, este posibil acest lucru? Sarcina este setată să controleze firul de îndoire al mașinii 3d.

Bine ai venit!
Este necesar să creați în program 5 obiecte - motoare. Verificați fiecare separat. Apoi, programați cronometrele programului în secvența necesară. Adăugați controlul parametrilor temporizatorului și motorului. Nu se poate spune că este o sarcină foarte complexă, dar destul de voluminoasă.







Articole similare

Trimiteți-le prietenilor: