Controllo presenza SD nella slot

Come da titolo non riesco a capire come controllare la presenza di una sd nella slot .
Vorrei poter togliere ed inserire la scheda senza dover ogni volta riavviare arduino .
Ho provato a mettere l'inizializzazione in una function void ma richiamando la function nel void loop mi visualizza sempre il messaggio di errore , anche se la SD è inserita . Togliendo la function dal loop il programma funziona correttamente ) .

Avete qualche esempio funzionante da consigliarmi ?

Se lo fai bene non ti da il messaggio di errore. Ci sono 3 inizializzazioni da fare, una di queste mostra la presenza o no di una periferica connessa al pin 4, che da appunto errore se la SD non è presente e ok se la SD è presente, siccome non mostri quello che hai fatto non posso dirti altro
La rimozione di una SD con l'istruzione file.open WRITE ancora operante garantisce al 100% la distruzione del file system e la perdita di tutti i file, cosa del tutto irrilevante se la SD si trova in file.open READ.
Stessa identica cosa che accade nelle usb key drive, se la levi mentre scrive la sfasci, se la levi mentre legge fa nulla.

ciao

tralascio la mancanza del buongiorno e grazie :slight_smile: :slight_smile:

Lo slot SD non ha 2 interuttori? Uno che legge la presenza della SD e l' altro la posizione della levetta blocco scrittura?
Ciao Uwe

uwefed:
Lo slot SD non ha 2 interuttori? Uno che legge la presenza della SD e l' altro la posizione della levetta blocco scrittura?
Ciao Uwe

Di solito si ... il card detect puo essere in posizioni differenti (alcuni produttori lo piazzano fra il pin 2 ed il pin 3, altri al penultimo posto subito prima del wp), mentre in genere il write protect e' quasi sempre l'ultimo dopo i pin segnale ... e in tutti i casi che ho visto fin'ora, chiudono entrambi a massa ...

In teoria si, dovrebbero esserci ma non ci sono o almeno non sono stati collegati, abbiamo solo 4 piste utili che vanno allo slot SD .... MISO, MOSI, SCK, SD-CS oltre a +3.3v e GND
Questo se abbiamo una ethernet shield 06- rev 3, magari utilizzando uno shield SD un po' più sofisticato forse potremmo trovare tutti i pin disponibili e collegarli a degli input.

L'unico modo è una verifica software, interrogando la scheda e vedere se ci torna indietro qualcosa.

pablos:
L'unico modo è una verifica software, interrogando la scheda e vedere se ci torna indietro qualcosa.

Utilizzo una shild che monta una slot SD ed un RTC . A quanto sembra sono collegati solo i pin per lo SPI ed il pin SS sul pin 10 di arduino .
Come potrei provare ad interrogare la scheda ?

Ho trovato la scheda tecnica dello shild ed ho visto che ha gli altri pin collegati a dei fori dove poter saldare i connettori strip e tra questi c'è il CD o Card Detect .
Il pin ha un livello logico basso a scheda inserita . Ho collegato a quel pin un led con una resistenza di pull-up da 10K , a scheda tolta il led si accende ad a scheda inserita si spegne .
Quindi posso utilizzare un pin di arduino per controllare lo stato della SD .
Domani sera provo e vi faccio sapere

Però ce lo potevi dire subito che era uno shield e magari anche quale, se non lo descrivi si presuppone che fai riferimento allo slot presente sulla ethernet shield

Visto che la la libreria è unica per le SD pensavo fosse un dato irrilevante . Scusate .