Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Cambiare frequenza PWM arduino

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Cambiare frequenza PWM arduino

Messaggioda Foto Utentemurdok » 1 nov 2015, 15:45

Salve, avrei la necessità di cambiare la frequenza PWM erogata dai pin 9 e 10 arduino uno (attualmente 488Hz con prescaler 64) e portarla a 32250Hz mediante il prescaler 1.
Ho provato a consultare varie guide su google, ma non sono riuscito nel mio intento.
Non capisco se devo modificare il prescaler su qualche file del programmatore.... :roll:

Grazie...
Avatar utente
Foto Utentemurdok
15 4
 
Messaggi: 30
Iscritto il: 20 set 2015, 13:00

0
voti

[2] Re: Cambiare frequenza PWM arduino

Messaggioda Foto Utentepaofanello » 1 nov 2015, 23:46

Non so aiutarti... Qui hai visto?
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
Avatar utente
Foto Utentepaofanello
2.280 8 13
Expert
Expert
 
Messaggi: 532
Iscritto il: 7 lug 2015, 21:01

1
voti

[3] Re: Cambiare frequenza PWM arduino

Messaggioda Foto UtenteRussell » 2 nov 2015, 15:55

un prescaler di 64 è troppo alto, devi metterelo ad 1
A quel punto arriverai ad una freq di 31.250 kHz
la frequenza che chiedi tu non credo sia possibile, spero non faccia molta differenza.

leggi questa pagina fino alla fine
http://playground.arduino.cc/Main/TimerPWMCheatsheet

se sei proprio a zero, allora fatti un'infarinatura (in italiano) qui prima di passare all'altro documento
http://www.mauroalfieri.it/elettronica/frequenza-pwm-arduino-duty-cycle.html
Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
 
Messaggi: 2193
Iscritto il: 4 ott 2009, 10:25

0
voti

[4] Re: Cambiare frequenza PWM arduino

Messaggioda Foto Utentemurdok » 2 nov 2015, 18:44

Russel, ho letto quella pagina e ho trovato anche altri link.
Ora devo testare le ricerche effettuate...
Riguardo alla frequenza (31.250 Hz) è quella che sto cercando! ;-)
Avatar utente
Foto Utentemurdok
15 4
 
Messaggi: 30
Iscritto il: 20 set 2015, 13:00

1
voti

[5] Re: Cambiare frequenza PWM arduino

Messaggioda Foto Utentemurdok » 3 nov 2015, 22:07

Ho trovato la soluzione! :D

non modificare la frequenza del PWM sui pin 5 e 6, perché porterebbero malfunzionamenti ai temporizzatori!

Nella funzione void setup() inserire il seguente codice:

Codice: Seleziona tutto
  byte mode;
  mode = 0x01;    // inserire qui il valore del timer desiderato
  TCCR1B = TCCR1B & 0b11111000 | mode;   // temporizzatore da settare




i vari temporizzatori controllano i seguenti pin:

timer 0 (controls pin 13, 4);
timer 1 (controls pin 12, 11);
timer 2 (controls pin 10, 9);
timer 3 (controls pin 5, 3, 2);
timer 4 (controls pin 8, 7, 6);


tabella per la selezione del valore del TCCR0B del timer0 (pin 5 e 6)
prescaler = 1 ----> PWM frequency is 62500 Hz -------------------------------------------------------------->mode = 0x01;
prescaler = 2 ----> PWM frequency is 7812,5 Hz-------------------------------------------------------------->mode = 0x02;
prescaler = 3 ----> PWM frequency is 976,5625 Hz (default value)------------------------------------->mode = 0x03;
prescaler = 4 ----> PWM frequency is 244,1406 Hz----------------------------------------------------------->mode = 0x04;
prescaler = 5 ----> PWM frequency is 61,0351 Hz------------------------------------------------------------->mode = 0x05;

TCCR0B = TCCR0B & 0b11111000 | mode;





tabella per la selezione del valore del TCCR1B del timer1 (pin 9 e 10)
prescaler = 1 ----> PWM frequency is 31250 Hz -------------------------------------------------------------->mode = 0x01;
prescaler = 2 ----> PWM frequency is 3906,25 Hz------------------------------------------------------------>mode = 0x02;
prescaler = 3 ----> PWM frequency is 488,28125 Hz (default value)----------------------------------->mode = 0x03;
prescaler = 4 ----> PWM frequency is 122,0703125 Hz----------------------------------------------------->mode = 0x04;
prescaler = 5 ----> PWM frequency is 30,5175 Hz------------------------------------------------------------>mode = 0x05;

TCCR1B = TCCR1B & 0b11111000 | mode;






tabella per la selezione del valore del TCCR2B del timer2 (pin 11 e 3)
prescaler = 1 ----> PWM frequency is 31250 Hz -------------------------------------------------------------->mode = 0x01;
prescaler = 2 ----> PWM frequency is 3906,25 Hz------------------------------------------------------------>mode = 0x02;
prescaler = 3 ----> PWM frequency is 488,28125 Hz (default value)----------------------------------->mode = 0x03;
prescaler = 4 ----> PWM frequency is 122,0703125 Hz----------------------------------------------------->mode = 0x04;
prescaler = 5 ----> PWM frequency is 30,5175 Hz------------------------------------------------------------>mode = 0x05;

TCCR2B = TCCR2B & 0b11111000 | mode;



Saluti O_/ --->
Avatar utente
Foto Utentemurdok
15 4
 
Messaggi: 30
Iscritto il: 20 set 2015, 13:00


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti