Generare piu' tone() contemporaneamente

...ma ciao!
ho scoperto mio malgrado, che la funzione tone() permette di generare una sola nota per volta perchè viene genrata usando il contatore del processore e ne viene messo a disposizione uno solo.
Ho un arduino UNO e ho trovato una libreria che permette di utilizzare i tre contatori presenti (GitHub - bhagman/Tone: A Wiring Library to produce square wave tones on arbitrary pins.)
Il mio "problema" è che vorrei generare fino a 4 tone in contemporanea.
C'e' modo secondo voi di farlo vi hardware o software senza passare ad un controller con ATmega1280 (che leggendo la documentazione della libreria, pare avere 6 timer)?

Mi ricordo di una libreria "timer free", ma non ti so dire se riesce a generare toni contemporaneamente su più pin.

Non so se può essere utile ... prova a guardare QUI ... :roll_eyes:

Guglielmo

Un'altra soluzione potrebbe essere quella di trovare un chip che genera un tono tramite bus i2c , e metterne 4, ad esempio il pcd3311

1 Like

QuEsto è molto interessante....anche se non trovo gran documentazione sull'interfacciamento con Arduino e non vorrei mi complicasse troppo la vita.
In piu' mi sembra di capire dai datasheet che al massimo si possano collegare 2 device perchè hanno solo un bit libero per modificare l'indirizzo :frowning:

Questo problema si può risolvere facilmente abilitando il clock del i2c solo sul dispositivo selezionato, si può fare impiegando un pin del atmega 328 per portare la resistenza di pull up del Clock a livello alto solo sul dispositivo selezionato, il segnale di clock i2c raggiungerà ogni dispositivo mediante un diodo, c'era un argomento che spiegava questo nella sezione generale, chiedilo a Guglielmo perché non mi ricordo il titolo dell'argomento

Il pcd3311 è piuttosto vecchio, ha 30 anni, se trovi qualche chip analogo più recente magari è anche migliore e costa meno, il pcd3311 non può generare toni con qualsiasi frequenza ma solo le note di due ottave circa cioè 24+1 Toni però il segnale d'uscita non è a onda quadra ma sinusoidale quindi più naturale e senza armoniche

Le cose si complicano più del previsto...
E.... Visto che il mio scopo è riprodurre un accordo tramite 4 note, se passassi ad una soluzione di riproduzione del suono equivalente da una sola cassa anziché 4 buzzer separati?

Dai un'occhiata a questo progetto. Sembra molto interessante e forse può fare al caso tuo.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.