- Modulația lățimii pulsului (PWM)
- Programarea ATtiny13 folosind Arduino
- Componente necesare
- Diagrama circuitului și funcționarea
Servomotorul funcționează pe principiul Modulării lățimii pulsului (PWM), iar unghiul său de rotație este controlat de durata impulsului aplicată pinului său de control. Aici în acest tutorial vom controla un servomotor cu microcontroler ATtiny13 folosind tehnica PWM. Deci, înainte de a merge mai departe, vom afla mai întâi despre PWM, Servo Motor și cum să programăm ATtiny13 cu placa Arduino.
Modulația lățimii pulsului (PWM)
Modularea lățimii pulsului (PWM) este definită ca o metodă de generare a unui semnal analogic folosind o sursă digitală. Un semnal PWM constă din două componente principale: ciclul de funcționare și frecvența. Aceste componente îi definesc comportamentul. Ciclul de funcționare descrie perioada de timp în care semnalul este într-o stare ridicată. Se notează ca procent din timpul total necesar unui ciclu.
Ciclul de funcționare = Timp de pornire / (Timp de pornire + Timp de oprire)
Frecvența definește cât de rapid PWM finalizează un ciclu și cât de repede semnalul comută între stări înalte și stări joase. O frecvență de 100Hz înseamnă 100 de cicluri pe secundă. Prin pornirea și oprirea unui semnal digital la o rată rapidă și cu un anumit ciclu de funcționare, ieșirea va apărea ca un semnal analogic de tensiune constantă. Unul dintre beneficiile puternice ale PWM este că pierderea de energie este foarte mică.
Toate servo-motoarele funcționează direct cu o sursă de + 5V, dar trebuie să fim atenți la cantitatea de curent pe care ar consuma-o motorul. Dacă folosim mai mult de două servo-motoare, ar trebui proiectat un scut servo adecvat.
Înainte de a conecta servo la Attiny13, puteți testa servo-ul cu ajutorul acestui circuit de testare a motorului servo. Aici am interfațat servo motor cu multe microcontrolere:
- Interfațarea servomotorului cu ARM7-LPC2148
- Interfațarea servomotorului cu MSP430G2
- Controlul mai multor servomotoare cu Arduino
- Interfațarea servomotorului cu microcontrolerul PIC utilizând MPLAB și XC8
- Servomotor Control cu Raspberry Pi
- Control servomotor cu Arduino Due
- Interfațarea servomotorului cu microcontrolerul AVR Atmega16
Programarea ATtiny13 folosind Arduino
Attiny13 poate fi programat folosind Arduino Uno sau orice altă placă Arduino. Conectați Attiny13 la Arduino Uno așa cum se arată în figura de mai jos.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pinul 4
- Pinul Arduino 13 - ATtiny13 pinul 7
- Pinul Arduino 12 - ATtiny13 pinul 6
- Pinul Arduino 11 - ATtiny13 pinul 5
- Pinul Arduino 10 - ATtiny13 pinul 1
Arduino este setat ca programator pentru programarea ATtiny13. Acest lucru se face prin încărcarea schiței ArduinoISP pe Arduino. Această schiță Arduino este disponibilă în exemplele din Arduino IDE. Deschideți IDE-ul Arduino și accesați Fișiere> Exemple> ArduinoISP .
Acum va apărea programul pentru ArduinoISP. Încărcați programul pe Arduino Uno.
Arduino Uno este acum gata să programeze Attiny13. Dar trebuie să configurăm Attiny instalând fișierele sale de bază. Pentru aceasta, accesați Fișier >> Preferințe în Arduino IDE
Apoi va apărea o fereastră nouă. Și în „ Adresa URL a administratorului de bord suplimentar ” adăugați linkul de mai jos și faceți clic pe „OK”.
„Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Acum, în IDE-ul dvs. Arduino, accesați Instrumente >> Board >> Boards Manager
Apoi va apărea o altă fereastră în care în caseta de căutare tastați „Attiny”, apoi veți primi „DIY ATtiny”, apoi faceți clic pe butonul „instalare” (l-am instalat deja, de aceea butonul de instalare în culoare gri)
Pentru a începe programarea ATtiny 13, trebuie să inscripționăm Bootloader. Pentru aceasta, accesați Instrumente> Placă> ATtiny13.
Acum accesați Instrumente> Versiunea procesorului și verificați dacă este selectată versiunea corectă a ATtiny. Selectați ATtiny13 sau ATtiny13a în funcție de cipul dvs.
Apoi faceți clic pe butonul Burn bootloader din partea de jos a meniului Instrumente.
După arderea bootloader-ului, ATtiny este acum gata să fie programat. Acum puteți încărca programul.
Componente necesare
- Microcontroler ATtiny13
- Servo motor
- Potențiometru
- + Baterie de 5V
- IDE Arduino
- Conectarea firelor
Diagrama circuitului și funcționarea
Diagrama circuitului pentru a controla un servomotor folosind potul cu ATtiny13 este prezentată mai jos.
Mai jos sunt conexiunile
- Conectați pinul de comandă al servomotorului la pinul 5 al ATtiny13
- Conectați solul servomotorului la pinul 4 al ATtiny13
- Conectați VCC-ul servomotorului la pinul 8 al ATtiny13
- Conectați pinul central al potențiometrului la pinul 7 al ATtiny13
- Conectați primul și al treilea pin al potențiometrului la VCC și GND.
- Conectați pozitivul bateriei + 5V la pinul 8 al ATtiny13
- Conectați negativul bateriei + 5V la pinul 4 al ATtiny13
Un potențiometru este conectat la pinul 7 (PB2) al ATtiny13 și firul de comandă al servomotorului este conectat la pinul 5 (PB0).
Aici se citește valoarea potențiometrului și este convertită la o valoare cuprinsă între 0 și 180. Apoi această valoare a unghiului este convertită în microsecunde și se dă un impuls pinului de control al servomotorului cu întârzierea calculată a microsecundelor. Acum servomotorul se va roti în funcție de valoarea potențiometrului, așa cum se arată în videoclipul de mai jos.