SD card tramite TFT LCD, perché non funziona?

Buongiorno a tutti,

sto tentando di utilizzare la SD card dell Arduino TFT LCD Screen, senza successo. Ho connesso l'LCD alla mia scheda Mega (mettendo il pin SD CS sul 4), aggiornato l'IDE e lo schermo funziona regolarmente.

Quando però sono andato ad utilizzare l'SD, non sono riuscito a farla funzionare. Usando l'esempio: https://www.arduino.cc/en/Tutorial/CardInfo

ottengo come risposta dal monitor seriale:

"Initializing SD card...Wiring is correct and a card is present.

Card type: SDHC Could not find FAT16/FAT32 partition. Make sure you've formatted the card "

ovviamente ho formattato varie volte l'SD (FAT32)

l'SD è una SanDisk da 8Gb nuova comprata appositamente..

Cosa sto sbagliando?

grazie a chi vorrà aiutarmi

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento se non lo hai già fatto: Regolamento Qui una serie di link utili, non inerenti al tuo problema: - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Con cosa la formatti?

ciao, grazie per la risposta. Mi sono presentato quando mi iscrissi su questo Forum. E' vero che partecipo saltuariamente, ma la presentazione non l'ho saltata!

grazie per i link, li leggerò. Però se intanto qualcuno avesse un suggerimento più diretto, lo apprezzerei.

Ripeto la domanda: con cosa hai formattato ? Usi Windows 8 ?

scusa non avevo visto, dunque, qui ho Windows 8, si. Ho provato anche con un XP: stesso risultato.

Ho provato anche un software che ho trovato leggendo in rete di questo argomento: SDFormatter.

ho anche provato a impostare una minore velocità, sempre cercando su internet: !card.init(SPI_QUARTER, chipSelect))

per ora nessun risultato..

Mi sempra che su google ci siano un sacco di progetti illustrati, collegati, con sketch belli pronti … dov’è il problema usando come base uno di quelli?

https://www.google.it/search?q=Arduino+TFT+LCD+Screen+sd&ie=utf-8&oe=utf-8&gws_rd=cr&ei=fdb6VazQF-TjywPxzJqIDw

il problema è che non funziona e non riesco a capire perché

Lamberto: il problema è che non funziona e non riesco a capire perché

Provato a cambiare schedina ? Magari una 2GB del cavolo

questa è la prossima prova che vorrei fare. Sotto mano quaggiù avevo una 16giga..chiaramente non cambia niente. Non è mica facile trovarne una così piccola nei negozi!

cercherò di trovarla..

perchè ci sono vari sketch che leggono le SD e tu hai preso quello più complicato Le connessioni come le hai fatte? un link che hai seguito dove l'hai messo? Tipo di arduino dove l'hai scritto? versione Ide che usi non la vedo?

Dai … qualche cosa ha messo … :slight_smile:

pablos:
un link che hai seguito dove l’hai messo?

Lamberto:
Usando l’esempio:
https://www.arduino.cc/en/Tutorial/CardInfo

pablos:
Tipo di arduino dove l’hai scritto?

Lamberto:
Ho connesso l’LCD alla mia scheda Mega (mettendo il pin SD CS sul 4), aggiornato l’IDE e lo schermo funziona regolarmente.

:smiley:

Guglielmo

Quello sketch che hai linkato nel primo post funziona, l’ho caricato giusto per togliermi il dubbio, ho solo aggiunto per correttezza

pinMode(4, OUTPUT);       
  digitalWrite(4, 1);

e rimosso

while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

perchè non ho una leonardo

test su
-mega2560
-Ide 1.6.1

  • SD 4Gb
  • Format Fat32

anche questo funziona (inizializzazione SD, creazione di un file, scrittura su file, lettura file)

#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
   delay(1000);
  Serial.begin(9600);//debug
  pinMode(4, OUTPUT);       
  digitalWrite(4, 1); 

  Serial.print("Inizializzazione SD card...");

  if (!SD.begin(4)) {
    Serial.println("Inizializzazione fallita!!");
    return;
  }else
  Serial.println("Inizializzazione completata.");

  myFile = SD.open("test.txt", FILE_WRITE);
 Serial.print("creazione file test.txt...");

  if (myFile) {
    Serial.print("Scrittura su file test.txt...");
    myFile.println("test 1, 2, 3.");
    myFile.close();
    Serial.println("Fatto.");
  } 
  else {
    Serial.println("error opening test.txt");
  }

  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
   
    myFile.close();
  } 
  else    
    Serial.println("error opening test.txt");
  
}

void loop() {
 
}

Non hai detto che modello di arduino stai usando, non si sa come l’hai collegato questo shield, quindi va rivisto il tuo hardware

ciao

pablos: Non hai detto che modello di arduino stai usando

Pablo ... ohi ... te l'ho anche messo io nei quote ... non lo hai visto ? ? ? :o

Dice : "Ho connesso l'LCD alla mia scheda Mega ..." da cui si evince ... Arduino Mega :D :D :D

Guglielmo

Si ora l’ho visto ahahahhaha

Buongiorno a tutti, e grazie per l'interessamento.

Confermo che l'Arduino è il Mega 2560, l'IDE è l'1.6.5.

Il lettore della scheda è integrato nell'LCD, che è il TFT orginale ARDUINO. Questo, a scanso di equivoci:

www.arduino.cc/en/Main/GTFT

Niente cloni cinesi da nessuna parte.

Le connessioni potrebbero essere sbagliate, mai escluderlo, però: LCD funziona ed il lettore SD riconosce il tipo di carta ed il fatto che è presente, come è riportato nel messaggio di errore che ho trascritto nel primo post.

C*omunque, stamattina ho cambiato SD, avevo una SONY da 8gb in casa e con quella ha funzionato!* ho provato anche una SanDisk, sempre 8gb, e quella invece no..

quindi, secondo voi è il lettore di SD stesso che dà problemi, o è più generale con Arduino e bisogna avere un po' di fortuna a trovare la schedina giusta??