Biblioteca de software pentru controlul a cinci servo-uri pe microcontroler attiny45

Biblioteca de software pentru controlul a cinci servo-uri pe microcontroler attiny45

Biblioteca a fost numită Servo8Bit. Aceasta susține 5 servo microcontroler ATtiny45 și ATtiny85, din resursele microcontrolerului utilizează numai timer de 8 biți.





Acesta poate fi folosit pentru a genera impulsuri de control servo durată variind de la 512 până la 2560 ms cu rezoluție de 8 biți (256 de valori) și, cel mai important, această bibliotecă este foarte ușor de utilizat.

ATtiny85 este un microcontroler ieftin cu 8 pini, cu periferice bogate. Pe Internet, există mai multe soluții pentru a controla servomecanisme, dar unele au o rezoluție insuficientă, altele sunt concepute pentru microcontrolere cu un număr mare de constatări și utilizarea în activitatea lor timer de 16 biți.







Biblioteca este modelată după biblioteca Arduino pentru servomecanism și are o interfață identică. Pentru a compila, utilizați WinAVR.

Iată un scurt exemplu al unui program care demonstrează modul de utilizare a bibliotecii Servo8Bit.

În acest exemplu, definiția funcției delay () este omisă. care este necesar, deoarece Întârzierile în timp sunt folosite în textul programului. În secțiunea de descărcări există o bibliotecă și un program complet de exemplu pentru controlul servomotorului.

Biblioteca conține mai multe funcții. Luați în considerare scopul lor.

  • function attach () este o funcție care atribuie variabila Servo la ieșirea microcontrolerului pentru controlul servo-ului. De exemplu, myServo.attach (1) - portul microcontrolerului PB1 este folosit pentru a controla servo;
  • funcția write () - scrie valoarea în grade la servo, respectiv comandă servomotorul servo, adică rotația tijei servo cu o valoare predeterminată;
  • funcția writeMicroseconds () - scrie valoarea în microsecunde servomotorului, respectiv comandă arborele servo;
  • Funcția citire () - funcția este destinată pentru a obține informații despre poziția curentă a arborelui servo (această valoare se obține de la ultimul apel la funcția write ());
  • attach () - verifică dacă variabila Servo este atribuită microcontrolerului;
  • function detach () - dezactivarea servo variabilei de la ieșirea microcontrolerului.

Când ieșirea microcontrolerului este atribuită pentru a controla unitatea servo, funcția attach (). la acest pin al microcontrolerului, este generat semnalul de control PWM. Funcția detach () oprește generarea semnalului PWM, i. După ce se execută această funcție, portul de microcontroler specificat nu va fi utilizat pentru a controla servomotorul. Pentru ao activa din nou, trebuie să apelați funcția attach ().

Semnalul de comandă - un semnal de impulsuri la PWM (puls lățime de modulare), care este o secvență de impulsuri dreptunghiulare cu o amplitudine de la 3 - 5 V și o durată de la 0,9 până la 2,1 ms. De fapt, lățimea impulsului în semnalul PWM determină poziția actuatorului. Valoarea minimă - înseamnă rândul său, la stânga, mijloc - poziția centrală a tijei, iar valoarea maximă - poziția din dreapta. Cu toate acestea, există unele diferențe în parametrii de control, în funcție de modelul servo.

Implicit, aceasta este comanda servo pentru a trece la poziția de mijloc. Utilizatorul controlează servo de scriere funcția () cu numărul în intervalul de la 0 la 180. Acest număr - tija servo poziție în grade. Microcontrolerul generează, în conformitate cu această valoare, semnalul PWM dorit.

Deoarece producția de diferite modele de servomecanisme și parametri sunt diferite, atunci trebuie neapărat să configurați - Modificarea duratei impulsurilor de semnal PWM. În acest scop, este posibil să se folosească de scriere funcția () cu mai multe argumente: a scrie (PIN, min, max), în cazul în care, PIN-ul - de ieșire a microcontrolerului pentru controlul dispozitivului de acționare, min - durata minimă a impulsului pentru generarea comenzii de setare stem la 0 grade, max este valoarea maximă a lățimii impulsului pentru generarea comenzii pentru a fixa tija la 180 de grade. Valorile implicite sunt 544 μs și 2400 μs. În plus, este posibil să utilizați funcția writeMicroseconds () pentru a seta manual lățimea impulsului.

Restricționarea versiunii curente a bibliotecii:

  • suport pentru diferite viteze de ceas;
  • suport pentru configurarea temporizatorului pentru utilizare de către driverul servo.

descărcarea
Biblioteca de software Servo8bit, makefile, program de probă - descărcare







Articole similare

Trimiteți-le prietenilor: