Sommario:

Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM: 4 passaggi
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM: 4 passaggi

Video: Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM: 4 passaggi

Video: Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM: 4 passaggi
Video: Motor Speed Control Electronics for AC and DC motors including PWM Pulse Width Modulation and VFD 2024, Dicembre
Anonim
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM
Azionamento del motore proporzionale Atmega128A - Timer ATMEL ICE AVR Controllo UART PWM

In questo tutorial, ti spiegherò come

  • controllare un motore DC con PWM
  • comunicare tramite UART
  • gestire gli interrupt del timer

Prima di tutto, useremo una scheda di sviluppo del sistema AVR Core che puoi trovare su Aliexpress a circa 4 USD. Il link della scheda di sviluppo è qui. Utilizzeremo anche Atmel ICE Debugger e Atmel Studio per programmare e eseguire il debug del nostro software.

Passaggio 1: approfondimento sulla scheda tecnica e sul codice sorgente - Velocità di clock

Approfondimento sulla scheda tecnica e sul codice sorgente - Velocità di clock
Approfondimento sulla scheda tecnica e sul codice sorgente - Velocità di clock
Approfondimento sulla scheda tecnica e sul codice sorgente - Velocità di clock
Approfondimento sulla scheda tecnica e sul codice sorgente - Velocità di clock
Approfondimento sulla scheda tecnica e sul codice sorgente - Velocità di clock
Approfondimento sulla scheda tecnica e sul codice sorgente - Velocità di clock

In 1. il proiettile definiamo la nostra frequenza di cristallo dove possiamo vedere sulla scheda di sviluppo

Passaggio 2: impostazione dei registri UART

Impostazione dei registri UART
Impostazione dei registri UART
Impostazione dei registri UART
Impostazione dei registri UART
Impostazione dei registri UART
Impostazione dei registri UART
Impostazione dei registri UART
Impostazione dei registri UART

Per comunicare con UART devi impostare i registri USART Baud Rate - UBRRnL e UBRRnH correttamente puoi calcolarlo tu stesso oppure puoi usare il calcolatore online per ottenere facilmente i valori corretti

Calcolatrice online

ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…

Quindi viene calcolato il valore MYUBBR, nel registro UCSR0B abilitiamo RXEN0 (abilitazione recv) TXEN0 (abilitazione trasmissione) e RXCIE0 (RX per interrupt). Nel registro UCSR0C selezioniamo la dimensione del carattere di 8 bit.

Dopo aver impostato il bit di interrupt RX, dovremmo aggiungere la funzione ISR per USART0_RX_vect

ISR(USART0_RX_vect){ char rcvChar = UDR0; if(rcvChar != '\n') { buffer[bufferIndex] = rcvChar; bufferIndex++; } }

Non dovresti eseguire alcuna logica aziendale nella routine del servizio di interruzione. Devi fare in modo che la funzione restituisca al più presto.

Passaggio 3: impostazioni PWM

Impostazioni PWM
Impostazioni PWM

Nella funzione initPWM impostiamo il nostro clock scaler della CPU, la modalità Timer/Counter come Fast PWM e impostiamo il suo comportamento con i bit COM

Dovremmo anche collegare il motore CC al pin OC2 che è specificato nella Tabella 66. Confronta la modalità di uscita, la modalità PWM veloce nel nostro foglio dati, vedrai anche che il pin OC2 è (OC2/OC1C) PB7

Passaggio 4: risultato

Risultato
Risultato
Risultato
Risultato

Quando carichi il codice sorgente nell'allegato.

È possibile inserire un nuovo valore PWM (0-255) da UART (è possibile utilizzare il terminale della porta seriale arduino) per impostare la velocità del motore CC.

Consigliato: