Come usare il DAC della UNO R4: risoluzione, onde e libreria analogWave

Gli episodi n.214 e n.215 della serie Pasquale’s Lab approfondiscono il funzionamento del convertitore digitale-analogico (DAC) integrato sulla Arduino UNO R4 minima, con una serie di esperimenti che uniscono teoria, pratica e analisi strumentale.

Il primo video (#214) introduce il DAC della scheda, illustrando le sue caratteristiche principali e spiegando come la funzione analogWrite permetta di generare in uscita una tensione proporzionale al valore digitale impostato. Utilizzando analogWriteResolution, è possibile impostare la risoluzione del convertitore da 5 a 12 bit, corrispondenti rispettivamente a 32 e 4096 livelli di uscita. L’autore mostra come la qualità del segnale migliori aumentando la risoluzione, con gradini di quantizzazione sempre più piccoli e un’onda più uniforme.

Attraverso l’uso dell’oscilloscopio, vengono mostrati segnali analogici costanti e a dente di sega, evidenziando gli effetti visivi della risoluzione e la possibilità di ridurre le discontinuità tramite un semplice filtro RC. Successivamente viene introdotta la libreria analogWave, che consente di generare diverse forme d’onda (sinusoide, quadra, dente di sega) con controllo su campioni e frequenza. Si sottolinea che la tensione di uscita è sempre positiva (0–Vref), e che per applicazioni audio è necessario un condensatore per bloccare la componente continua.

Nel secondo video (#215), l’attenzione si concentra proprio sulla libreria AnalogWave, analizzandone pregi, limiti e applicazioni pratiche. Il creatore mostra come sia possibile ottenere frequenze fino a 10 kHz e riprodurre suoni complessi. Un primo esperimento consiste nella simulazione del suono di una sirena d’ambulanza, generata tramite una forma d’onda a dente di sega, più realistica rispetto a quella ottenuta con la classica libreria tone.

Il video prosegue mostrando il codice di esempio, derivato da un esperimento precedente, e spiega come la libreria AnalogWave utilizzi i timer interni, generando talvolta conflitti con la funzione millis(). Per questo motivo è spesso necessario ricorrere a delay() per gestire i tempi.

Il setup include la UNO R4 collegata a un amplificatore in classe D, un altoparlante e un condensatore per eliminare la componente continua. I risultati vengono analizzati sia all’ascolto che all’oscilloscopio, dove il segnale appare pulito e fedele alla forma impostata.

In un secondo esempio viene riprodotta una melodia (“Fra Martino”), dimostrando la versatilità della libreria per applicazioni musicali e didattiche. L’autore riassume infine i punti di forza — generazione di onde realistiche e maggiore fedeltà rispetto alla PWM — e i limiti attuali, legati alla gestione del tempo e al numero fisso di campioni.

Nel complesso, i due episodi offrono un approfondimento completo sulle potenzialità del DAC di Arduino UNO R4 e sull’uso della libreria AnalogWave, rappresentando un’ottima base per chi desidera generare segnali analogici, onde audio o forme d’onda personalizzate in ambito embedded e maker.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu