Nota

Ciao, benvenuto nella Community SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.

Perché unirti?

  • Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e condividi: Scambia suggerimenti e tutorial per migliorare le tue abilità.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci dei nuovi prodotti e anteprime esclusive.

  • Sconti speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a giveaway e promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!

Convertitore Digitale-Analogico (DAC)

L’Arduino Uno R4 WiFi è dotato di una funzionalità DAC (Convertitore Digitale-Analogico) integrata. Un DAC è fondamentale per convertire i segnali digitali nei loro corrispettivi analogici, una funzionalità particolarmente vitale in applicazioni come l’elaborazione audio, la generazione di segnali analogici e altri scenari che richiedono un’uscita analogica precisa.

Il DAC sull’Uno R4 WiFi offre una risoluzione fino a 12 bit, fornendo capacità di uscita analogica reale che superano quelle dei pin PWM.

../_images/07_dac.png

Suonare Musica con il DAC

Schema del Circuito

../_images/07_dac_bb.png

Caricare il Codice

Apri il file 07-dac.ino situato in elite-explorer-kit-main\r4_new_feature\07-dac, oppure incolla il seguente codice nel tuo Arduino IDE.

Nota

Assicurati di posizionare il file pitches.h nella stessa directory del codice per garantire il corretto funzionamento.

Questo progetto sfrutta l’Arduino e il DAC (Convertitore Digitale-Analogico) per suonare il famoso tema di Super Mario Bros. Utilizza una libreria chiamata analogWave per la generazione di onde sinusoidali e un’altra libreria, pitches.h, per definire le frequenze delle note.

  • melody[]: Questo array contiene le note da suonare insieme alle loro durate. Le note sono rappresentate da altezze predefinite (ad esempio, NOTE_E5) e le durate sono rappresentate in termini di battiti (ad esempio, 4 indica una semiminima). Puoi provare a comporre la tua melodia modificando le note e le durate nell’array melody[]. Se sei interessato, esiste un repository su GitHub (robsoncouto/arduino-songs) che fornisce codice Arduino per suonare diverse canzoni. Sebbene il loro approccio possa essere diverso da questo progetto, puoi fare riferimento alle loro note e durate. (Sostituisci semplicemente il melody[] nella traccia corrispondente con il codice in questo progetto.)

  • tempo : Il tempo per questo progetto è impostato a 200 BPM (Battiti Per Minuto), utilizzato per calcolare la durata di ogni nota. Modificando questo valore, cambierai la velocità dell’esecuzione della canzone.

  • Generatore di onde sinusoidali: La funzione sine della libreria analogWave inizializza un generatore di onde sinusoidali a 10 Hz, utilizzato per emettere le note tramite il DAC.

  • Durata della nota: In base al tempo impostato e al conteggio dei battiti per ogni nota, viene calcolata la durata di ogni nota.

  • Riproduzione e pausa: Ogni nota viene suonata per l’85% della sua durata calcolata, seguita da una pausa del 15% per distinguere tra le note.

  • Ciclo: Al termine della melodia, il codice si resetta automaticamente e ricomincia a suonare.

Questo è un esempio che dimostra come utilizzare Arduino e hardware esterno (DAC) per generare musica. Mostra anche come utilizzare array e cicli per semplificare la logica della riproduzione musicale.

Riferimenti