- Modulazione di larghezza di impulso (PWM)
- Programmare ATtiny13 usando Arduino
- Componenti richiesti
- Schema elettrico e funzionamento
Il servomotore funziona in base al principio della Pulse Width Modulation (PWM) e il suo angolo di rotazione è controllato dalla durata dell'impulso applicato al suo pin di controllo. Qui in questo tutorial controlleremo un servomotore con microcontrollore ATtiny13 utilizzando la tecnica PWM. Quindi, prima di andare oltre, impareremo prima PWM, servomotore e come programmare ATtiny13 con la scheda Arduino.
Modulazione di larghezza di impulso (PWM)
Pulse Width Modulation (PWM) è definito come un metodo per generare un segnale analogico utilizzando una sorgente digitale. Un segnale PWM è costituito da due componenti principali: duty cycle e frequenza. Questi componenti ne definiscono il comportamento. Il ciclo di lavoro descrive la quantità di tempo in cui il segnale è in uno stato alto. È indicato come percentuale del tempo totale necessario per completare un ciclo.
Ciclo di lavoro = Tempo di accensione / (Tempo di accensione + Tempo di spegnimento)
La frequenza definisce la velocità con cui il PWM completa un ciclo e la velocità con cui il segnale passa dallo stato alto a quello basso. Una frequenza di 100 Hz significa 100 cicli al secondo. Commutando un segnale digitale su ON e OFF a una velocità elevata e con un certo ciclo di lavoro, l'uscita apparirà come un segnale analogico a tensione costante. Uno dei potenti vantaggi del PWM è che la perdita di potenza è minima.
Tutti i servomotori funzionano direttamente con alimentazione a + 5V, ma dobbiamo stare attenti alla quantità di corrente che il motore consumerebbe. Se si utilizzano più di due servomotori, è necessario progettare un adeguato schermo per servo.
Prima di collegare il servo ad Attiny13, puoi testare il tuo servo con l'aiuto di questo circuito del tester del servomotore. Qui abbiamo interfacciato il servomotore con molti microcontrollori:
- Interfacciamento del servomotore con ARM7-LPC2148
- Interfacciamento del servomotore con MSP430G2
- Controllo di più servomotori con Arduino
- Interfacciamento del servomotore con il microcontrollore PIC utilizzando MPLAB e XC8
- Controllo servomotore con Raspberry Pi
- Controllo servomotore con Arduino Due
- Interfacciamento del servomotore con il microcontrollore AVR Atmega16
Programmare ATtiny13 usando Arduino
Attiny13 può essere programmato utilizzando Arduino Uno o qualsiasi altra scheda Arduino. Collega Attiny13 ad Arduino Uno come mostrato nella figura sotto.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Pin 13 di Arduino - Pin 7 di ATtiny13
- Pin 12 di Arduino - Pin 6 di ATtiny13
- Pin 11 di Arduino - Pin 5 di ATtiny13
- Pin 10 di Arduino - Pin 1 di ATtiny13
Arduino è impostato come programmatore per programmare ATtiny13. Questo viene fatto caricando lo sketch ArduinoISP su Arduino. Questo schizzo di Arduino è disponibile all'interno degli esempi nell'IDE di Arduino. Apri l'IDE di Arduino e vai su File> Esempi> ArduinoISP .
Ora verrà visualizzato il programma per ArduinoISP. Carica il programma su Arduino Uno.
Arduino Uno è ora pronto per programmare Attiny13. Ma dobbiamo configurare Attiny installando i suoi file di base. Per farlo vai su File >> Preferenze nell'IDE di Arduino
Quindi apparirà una nuova finestra. E in " URL di Board Manager aggiuntivo" aggiungi il link sottostante e fai clic su "OK".
"Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"
Ora nel tuo IDE Arduino vai su Strumenti >> Scheda >> Gestione schede
Quindi apparirà un'altra finestra in cui nella casella di ricerca digita "Attiny" , otterrai "DIY ATtiny" quindi fai clic sul pulsante "installa" (l'ho già installato, ecco perché il pulsante di installazione in colore grigio)
Per iniziare a programmare ATtiny 13, dobbiamo masterizzare Bootloader su di esso. Per questo, vai su Strumenti> Scheda> ATtiny13.
Ora vai su Strumenti> Versione del processore e controlla se è selezionata la versione corretta di ATtiny. Seleziona ATtiny13 o ATtiny13a a seconda del tuo chip.
Quindi fare clic sul pulsante Masterizza bootloader nella parte inferiore del menu Strumenti.
Dopo aver masterizzato il bootloader, ATtiny è ora pronto per essere programmato. Ora puoi caricare il tuo programma.
Componenti richiesti
- Microcontrollore ATtiny13
- Servomotore
- Potenziometro
- + 5V batteria
- IDE Arduino
- Cavi di collegamento
Schema elettrico e funzionamento
Di seguito è riportato lo schema del circuito per controllare un servomotore utilizzando il potenziometro con ATtiny13.
Di seguito sono riportati i collegamenti
- Collegare il pin di controllo del servomotore al pin 5 di ATtiny13
- Collegare la massa del servomotore al pin 4 di ATtiny13
- Collegare il VCC del servomotore al pin 8 di ATtiny13
- Collegare il pin centrale del potenziometro al pin 7 di ATtiny13
- Collegare il primo e il terzo pin del potenziometro a VCC e GND.
- Collegare il positivo della batteria da + 5V al pin 8 di ATtiny13
- Collegare il negativo della batteria da + 5V al pin 4 di ATtiny13
Un potenziometro è collegato al pin 7 (PB2) dell'ATtiny13 e il cavo di controllo del servomotore è collegato al pin 5 (PB0).
Qui il valore del potenziometro viene letto e viene convertito in un valore compreso tra 0 e 180. Quindi questo valore angolare viene convertito in microsecondi e viene dato un impulso al pin di controllo del servomotore con il ritardo calcolato di microsecondi. Ora il servomotore girerà in base al valore del potenziometro come mostrato nel video riportato di seguito.