Generare onde sinusoidali

Ciao a tutti

Sapete se è possibile generare onde sinusoidali con Arduino?

Ho trovato in rete http://interface.khm.de/index.php/lab/experiments/arduino-dds-sinewave-generator/ ma vorrei evitare di costruire un filtro di Chebyshef che non so neanche cos'è :slight_smile:

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.

Ciao e grazie

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 :slight_smile:

puoi generare un'onda squadrata col PWM e poi "arrotondarla" con un circuito RC

Certo generare un vera onda sinusoidale è quasi impossibile, a me basta un'approssimazione :slight_smile:

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.

Un'alternativa che ho trovato in rete (implementata su Arduino), molto più redditizia ma che ha tutta un'altra teoria è questa:
http://interface.khm.de/index.php/lab/experiments/arduino-dds-sinewave-generator/

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.

@Fede:
è lo stesso link del primo post :wink:

Mega ops! Ammetto di non aver aperto il suo link :blush:
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ì.

Ciao e se non fosse monofase ma trifase?