Cambiare Frequenza PWM sul Timer1

Buongiorno a tutti! :slight_smile:

Ho la necessità di far suonare due suoni ad Arduino.
Un suono lo vorrei produrre con la funzione TONE, mentre l’altro modulando la frequenza fast PWM del timer1 con dutyCicle al 50% (leggendo su internet mi pare di capire che utilizzando timer differenti si possono riprodurre più suoni)

Vorrei usare appunto per la seconda nota il Timer1 con un prescaler di 1024 così da portarmi ad un range di frequenze da 61hz a 15625hz. Poi mi interessava modulare queste frequenze utilizzando OCRnA gestito da un potenziometro.

Ho provato svariate volte ma non essendo un esperto di programmazione non sono riuscito a settare queste impostazioni!!! :frowning:

pensate sia possibile?

Grazie Tante

Andrea

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Non è che puoi modificare i Timers a tuo piacimento ... su Arduino essi sono utilizzati per alcune funzioni interne e la loro modifica provoca il malfunzionamneto di dette funzioni.

Ho già riassunto la cosa in altro thread, la riporto anche qui:

Timers Arduino UNO

Timer0
Usato da millis() e delay() e per il PWM sui pin 5 e 6
fast hardware pwm
(default 976.5625 Hz)
Pin 5 è anche usato per il “pulse counting”
Pin 8 è usato per il “input capture”

Timer1
Usato dalla libreria Servo e per il PWM sui pin 9 e 10. Libreria e PWM mutuamente esclusivi.
8-bit phase correct pwm mode
(default 488.28125 Hz)

Timer2
Usato per il PWM sui pin 3 e 11
8-bit phase correct pwm mode
(default 488.28125 Hz)

... se tu NON usi le funzioni associate al Timer che vuoi modificare, non c'è problema.

Guglielmo

Tanto tempo fa, qualcuno ha anche scritto una libreria per poter variare la frequenza del PWM … se ne parla in QUESTO vecchio thread e la libreria te la metto in allegato.

Guglielmo

P.S.: Io non l’ho mai usata quindi … tutta da provare.

ArduinoPWMFrequencyLibrary_v1-5.zip (13.7 KB)

Gentilissimo!!! ho implementato la libreria e ho gestito la frequenza da un potenziometro come volevo, sono riuscito ad emettere due note distinte! quindi ho risolto tutto!

grazie ancora

Grazie per il feedback ... così sappiamo anche che quella libreria funziona bene :smiley:

Guglielmo