0367: PWM Sinusoidale con i Timer di Arduino

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ต.ค. 2024
  • Forum: mylothehack.alt...
    Sito: mylothehack.alt...
    Sorgenti: mylothehack.alt...
    Banggood: www.banggood.c...
    Codice sconto Coupon: Elec
    Per ottenere un controllo PWM sinusoidale a 50Hz alla massima risoluzione possibile con Arduino uso i due timer a 8 bit, TIMER0 e TIMER1. La frequenza di switching massima ottenibile per il PWM è pari a 31.372KHz generata da TIMER1, in modalità CTC con un interrupt ad ogni impulso PWM per TIMER0, il quale imposta il valore della durata dell'impulso PWM. Un periodo di sinusoide a 50Hz ha 628 impulsi PWM. Per ricostruire i valori degli impulsi PWM della sinusoide a 50Hz utilizzo un programma sempre su Arduino che calcola il primo quarto della sinusoide, lo moltiplica per il range a 250. I valori vengono tabulati su un vettore, che viene poi usato a runtime per la modifica del valore di conteggio del TIMER0. Visualizzo i segnali con l'oscilloscopio e tramite due filtri passabasso RC ricostruisco effettivamente la sinusoide a 50Hz.

ความคิดเห็น • 52