Salve a tutti.
Ritorno a scrivere sul forum (sperando in qualche anima pia) così da trovare una risposta.
Ho finalmente finito il mio sketch per la riproduzione audio con Arduino MKR Zero.
Tutto funzionante come desidero ma con l'unico difetto di.......avere in uscita sul pin DAC0/A0 un fastidioso rumore (che tra l'altro viene notevolmente amplificato dall'amplificatore 3W collegato ad esso).
Volevo sapere se, qualcuno di voi, ha la possibilità di spiegarmi (ed eventualmente consigliarmi) il motivo per cui su tale pin vi sia una rumore di questo tipo, sia con la scheda in attesa di istruzioni e sia al termine della riproduzione audio.
Qualcuno sa gentilmente spiegarmi e/o darmi suggerimenti per eliminare questo problema?
Vi lascio in descrizione sotto il programma da me stilato e funzionante per la riproduzione audio con consenso tramite pulsante PULLUP.
/*
Semplice Riprodutore Audio per Arduino Zero
Dimostrazione dell'uso della libreria audio per Arduino Zero
Hardware necessario :
* Scheda Arduino con una SD card sul CS4
* Un file suono chiamato "test.wav" nella cartella della directory SD card
* Un amplificatore audio da connettere al DAC0 e al GND
* Un altoparlante da connettere all'amplificatore
*/
#include <SD.h>
#include <SPI.h>
#include <AudioZero.h>
int buttonPin = 1;
void setup()
{
// debug output a 115200 baud
Serial.begin(115200);
// setup SD card
Serial.print("Inizializzazione SD card...");
if (!SD.begin())
{
Serial.println(" fallita!");
while(true);
}
Serial.println(" successo.");
// 44100kHz stereo => 88200 frequenza di campionamento
AudioZero.begin(2*44100);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop()
{
int count = 0;
int valuno = digitalRead(buttonPin);
if (valuno == LOW)
{
// Apri file wav da SD card
File myFile = SD.open("darth.wav");
if (!myFile)
{
// se il file non si apre, stampare un errore e interrompere
Serial.println("errore nell'apertura di darth.wav");
while (true);
}
Serial.print("In Riproduzione");
// fino a quando il file non è finito
AudioZero.play(myFile);
Serial.println("Fine del file. Grazie per l'ascolto!");
while (true) ;
}
}