Ripetere suono all'infinito

Salve a tutti,

finalmente mi sono deciso a sperimentare un po' con Arduino!

Ho iniziato con questo progettino che mi sembra molto semplice: Arduino Playground - PCMAudio

Da quello che mi sembrava di aver capito, dovrebbe emettere un suono e poi ripeterlo in funzione dei due timer che sono dichiarati.. Ho settato tutto come indicato, cioè semplicemente un buzzer tra GND e il pin 11..

.. Ma invece non faccio altro che ottenere una singola ripetizione del suono..

Dove sbaglio? Ho frainteso il funzionamento del software? E nel caso, è possibile con uno sketch simile andare a ripetere un suono all'infinito (o comunque per un certo tempo)?

Grazie in anticipo a chiunque risponderà..

Buonasera,
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:

Usa Tone
https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/

Usa invece la pagina del Playground per conoscere più o meno ciò che c'è dietro a Tone

redblue:
Da quello che mi sembrava di aver capito, dovrebbe emettere un suono e poi ripeterlo in funzione dei due timer che sono dichiarati.. Ho settato tutto come indicato, cioè semplicemente un buzzer tra GND e il pin 11..
.. Ma invece non faccio altro che ottenere una singola ripetizione del suono..

Non ho mai utilizzato in questo modo gli interrupt, ma per quanto possa vedere i timer servono per attivare la riproduzione del segnale con un interrupt ogni 1/8000 di secondo (ovvero sampling rate 8kHz). La ISR si occupa di caricare il campione successivo, ad alla fine se vedi fa stopPlayback() per cui si, penso che riproduca solo una volta la sequenza. D'altronde è un esempio, serve per capire come funziona il discorso, non è una reale applicazione.

Ma tu cosa volevi farne? Perché se è solamente per iniziare a fare "qualcosa" e prendere pratica con Arduino, vista anche la tua presentazione che lo conferma, quel codice contiene molte cose "a basso livello" che non è il caso di affrontare almeno agli inizi (e che di fatto anche io stesso fatico a capire non avendo mai studiato a basso livello tutto l'ambiente AVR).

Per cui ti consiglio di lasciar stare, se vuoi riprodurre suoni prendi una di quelle piccole board audio per Arduino (ossia vai ad esempio QUI dove c'è uno dei migliori negozi eBay, ed in particolare QUESTA piccola board che tra l'altro include anche un lettore di SD dove memorizzare i suoni), e inizia a sperimentare con quella!

zoomx:
Usa Tone

Guarda che non ha delle singole note da riprodurre, ma un suono PCM... :wink: