- Modulació d'amplada de pols (PWM)
- Programació d'ATtiny13 mitjançant Arduino
- Components necessaris
- Diagrama de circuits i funcionament
El servomotor funciona al principi de la modulació de l'amplada de pols (PWM) i el seu angle de rotació està controlat per la durada del pols aplicat al seu pin de control. Aquí, en aquest tutorial, controlarem un servomotor amb microcontrolador ATtiny13 mitjançant la tècnica PWM. Per tant, abans d’anar més lluny, primer aprendrem sobre PWM, Servo Motor i com programar ATtiny13 amb Arduino Board.
Modulació d'amplada de pols (PWM)
La modulació d’amplada de pols (PWM) es defineix com un mètode per generar un senyal analògic mitjançant una font digital. Un senyal PWM consta de dos components principals: cicle de treball i freqüència. Aquests components defineixen el seu comportament. El cicle de treball descriu la quantitat de temps que el senyal està en estat alt. Es denota com un percentatge del temps total que triga a completar un cicle.
Cicle de treball = Temps d’activació / (Temps d’encès + Temps d’APAGAT)
La freqüència defineix la rapidesa amb què el PWM completa un cicle i la velocitat amb què el senyal commuta entre estats alt i baix. Una freqüència de 100Hz significa 100 cicles per segon. En activar i desactivar un senyal digital a una velocitat ràpida i amb un determinat cicle de treball, la sortida apareixerà com un senyal analògic de tensió constant. Un dels avantatges poderosos de PWM és que la pèrdua d’energia és molt mínima.

Tots els servomotors funcionen directament amb un subministrament de + 5V, però hem de tenir cura de la quantitat de corrent que consumiria el motor. Si estem utilitzant més de dos servomotors, s'hauria de dissenyar un escut servo adequat.
Abans de connectar el servo a Attiny13, podeu provar el vostre servo amb l'ajuda d'aquest circuit de provador de motor servo. Aquí hem interfaçat el servomotor amb molts microcontroladors:
- Servomotor d’interfície amb ARM7-LPC2148
- Servomotor d’interfície amb MSP430G2
- Control de múltiples servomotors amb Arduino
- Servomotor d’interfície amb microcontrolador PIC mitjançant MPLAB i XC8
- Control de servomotor amb Raspberry Pi
- Control de servomotor amb Arduino Due
- Servomotor d’interfície amb microcontrolador AVR Atmega16
Programació d'ATtiny13 mitjançant Arduino
Attiny13 es pot programar mitjançant Arduino Uno o qualsevol altra placa Arduino. Connecteu Attiny13 a Arduino Uno com es mostra a la figura següent.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Pin Arduino 13 - ATtiny13 pin 7
- Pin Arduino 12 - ATtiny13 pin 6
- Pin Arduino 11 - ATtiny13 pin 5
- Pin d'Arduino 10 - Pin 1 d'ATtiny13

Arduino està configurat com a programador per programar ATtiny13. Això es fa carregant l'esbós d'ArduinoISP a Arduino. Aquest esbós d'Arduino està disponible dins dels exemples d'Arduino IDE. Obriu l'IDE d'Arduino i aneu a Fitxers> Exemples> ArduinoISP .

Ara apareixerà el programa per a ArduinoISP. Pengeu el programa a l'Arduino Uno.

Arduino Uno ja està llest per programar Attiny13. Però hem de configurar Attiny instal·lant els seus fitxers bàsics. Per fer-ho, aneu a Fitxer >> Preferències a Arduino IDE

Aleshores apareixerà una finestra nova. I a " URL del gestor de taules addicionals ", afegiu l'enllaç següent i feu clic a "D'acord".
"Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"

Ara, a la vostra IDE d'Arduino, aneu a Eines >> Tauler >> Gestor de taules

A continuació, apareixerà una altra finestra on al quadre de cerca escriviu "Attiny" i apareixerà "DIY ATtiny" i, a continuació, feu clic al botó "instal·la " (ja l'he instal·lat, per això el botó d'instal·lació en color gris)

Per començar a programar ATtiny 13, hem de gravar-hi Bootloader. Per a això, aneu a Eines> Tauler> ATtiny13.

Ara aneu a Eines> Versió del processador i comproveu si està seleccionada la versió correcta d’ATtiny. Seleccioneu ATtiny13 o ATtiny13a en funció del vostre xip.
A continuació, feu clic al botó Grava el carregador d'arrencada a la part inferior del menú Eines.

Després de gravar el carregador d'arrencada, ATtiny ja està a punt per ser programat. Ara podeu penjar el vostre programa.
Components necessaris
- Microcontrolador ATtiny13
- Servomotor
- Potenciòmetre
- + Bateria de 5V
- IDE Arduino
- Connexió de cables
Diagrama de circuits i funcionament
A continuació es mostra el diagrama de circuits per controlar un servomotor mitjançant pot amb ATtiny13.

A continuació es mostren les connexions
- Connecteu el pin de control del servomotor al pin 5 d'ATtiny13
- Connecteu la terra del servomotor al pin 4 de ATtiny13
- Connecteu VCC del servomotor al pin 8 de ATtiny13
- Connecteu el pin central del potenciòmetre al pin 7 de ATtiny13
- Connecteu el primer i el tercer pin del potenciòmetre al VCC i al GND.
- Connecteu el positiu de la bateria de + 5V al pin 8 d’ATtiny13
- Connecteu el negatiu de la bateria de + 5V al pin 4 d’ATtiny13

Es connecta un potenciòmetre al pin 7 (PB2) de l'ATtiny13 i el cable de control del servomotor es connecta al pin 5 (PB0).

Aquí es llegeix el valor del potenciòmetre i es converteix en un valor entre 0 i 180. Després, aquest valor d'angle es converteix en microsegons i es dóna un impuls al pin de control del servomotor amb el retard calculat de microsegons. Ara, el servomotor girarà segons el valor del potenciòmetre, tal com es mostra al vídeo que es mostra a continuació.
