Ciao a tutti,
sto cercando di fare un programma per leggere file musicali da una microSD ma, come da titolo, mi sono già bloccato alla lettura della card, non riconoscendola e stampando nel monitor seriale "SD fail".
I PIN sono questi:
-CS --> 10
-MOSI --> 11
-MISO -->12
-SCK --> 13
Il codice, invece è il seguente:
#include <SD.h> // includi la libreria SD per la gestione della scheda
#define SD_ChipSelectPin 10 // utilizza il pin 10 per collegare il CS della SD, puoi usare il pin che vuoi
#include <TMRpcm.h> // includi la libreria TMRpcm per la musica!
#include <SPI.h> // includi la libreria SPI per la comunicazione con la SD
TMRpcm tmrpcm; // crea l'oggetto tmrpcm
unsigned long time = 0;
void setup() {
tmrpcm.speakerPin = 9; // pin utilizzabili 5,6,11 o 46 sulla Mega, 9 sulla Uno, Nano, etc
// per abilitare un'uscita complementare togliere il commento alla riga sotto:
Serial.begin(115200); // inizializza la porta seriale
}
void loop() {
if (!SD.begin(SD_ChipSelectPin)) { // se la scheda non è rilevata printa "SD fail"
Serial.println("SD fail");
return;
}
else {
Serial.println("SD ok"); // se la scheda viene rilevata stampa "SD ok"
tmrpcm.play("kick_Dry_b.waw"); // riproduci il file "music" che trovi nella SD
}
}
Grazie per la risposta ,
Sì è un Arduino UNO, l'adattatore è il seguente:
In qualunque caso ho provato anche con l'alimentazione a 3,5V ma da lo stesso messaggio di errore, solo che viene scritto con una frequenza minore (immagino che lo scambio di dati tra Arduino e la SD sia più lento)
Fai una cosa, prova prima il SOLO l'adattatore con un semplice programma di prova preso dagli esempi del IDE ...
... File -> Esempi -> SD -> CardInfo così vedi se funziona e non c'è qualche conflitto con la libreria che stai usando (TMRpcm.h).
Poi fai anche una foto (bene a fuoco) e facci vedere i collegamenti.
Guglielmo
P.S.: Quella scheda è data per funzionare a 5V quindi alimentala a 5V
Fai una cosa, prova prima il SOLO l'adattatore con un semplice programma di prova preso dagli esempi del IDE ...
... File -> Esempi -> SD -> CardInfo così vedi se funziona e non c'è qualche conflitto con la libreria che stai usando (TMRpcm.h).
Ho provato ed effettivamente da errore anche con il programma di prova.
Poi fai anche una foto (bene a fuoco) e facci vedere i collegamenti.
la foto la metto in allegato (spero di fare giusto)