Il comando Tone() da quel che ho capito genera onde quadre e quindi è da scartare.
Vorrei generare anche un pò grossolanamente onde a frequenze come ad esempio 50 Hz per alcuni esperimenti usando pochi componenti semplici come condensatori e induttori.
Da quello che so (che non è molto, quindi spero di essere smentito :D), generare un'onda sinusoidale è impossibile, con elettronica digitale.
Ma la funzione seno è periodica con periodo 2pi: ha minima di -1 e massima di 1.
Tu puoi tirare fuori valori da 0 a 1023, con un pin analogico.
Puoi mappare i valori in modo che a -1 corrisponda 0 ed a 1, 1023.
Per la frequenza, credo che dovresti dare un'occhiata alla Wiki e farti qualche calcolo
Certo generare un vera onda sinusoidale è quasi impossibile, a me basta un'approssimazione
Interessante il generare l'onda col PWM e poi arrotondarla, cercavo qualcosa di simile in effetti.
Con analogWrite() posso generare l'onda ma poi come arrotondarla? Chi mi aiuta a fare i calcoli con un circuito RC?
E dato che un'onda quadra è formata da una sinusoide alla frequenza frequenza fondamentale più alte sinusoidi multiple in frequenza, direi che approssimarla può riuscire piuttosto bene! Bisogna crearsi un filtro passa basso alla giusta frequenza per far saltar fuori la fondamentale, generalmente con un RC ci tiri fuori una triangolare.
in sostanza credo che lo scopo sia quello di ricostruire una sinusoide "digitalizzata", fatta di gradini e poi filtrandola si ottiene un risultato molto, ma molto simile a una vera.
Mega ops! Ammetto di non aver aperto il suo link
Io lo avevo visto tempo fa bloggato sul sito di Make...comunque col codice bello pronto quel metodo lì sembra una cosa super perfetta per generare onde sinusoidali a diverse frequenze. Se leggi in fondo dice che ha delle prestazioni paragonabili ad un DAC a 8 bit e che la funzionalità può essere saggiata anche senza filtro, direttamente dall'uscita di Arduino.
Magari il Chebyshev è la soluzione ottimale perchè è quello che taglia a pendenza maggiore, però magari anche con un normale passa basso RC si porta a casa un risultato soddisfacente.
Per me vale la pena di tentare questa strada, dal filtrare solo un'onda quadra è più dura ottenere un risultato così.