Go Down

Topic: Dateien auf SD-Karte über serielle Schnittstelle auslesen??? (Read 1 time) previous topic - next topic

hk007

Hi,
ich glaube der Threadtitel sagt eigentlich schon, was ich mir vorstelle.

Wenn ich einen Arduino zum permanenten Datenloggen verwende, und die Werte auf SD-Karte speichere, dann will ich die Files ja auch wieder irgendwann runterkopieren und auf dem PC auswerten.
Eine Möglichkeit ist natürlich, die Karte rauszunehmen und auf dem PC mittels Kartenleser auszulesen. Ob das während des Betrieb so klug ist, glaub ich nicht: Lese-Schreibfehler, Probleme beim Wiedereinstecken mit automatischem Anlauf etc...
Eleganter wäre es natürlich, wenn man die Dateien über die serielle Schnittstelle auslesen könnte. Hat das schon mal einer gemacht?
Oder noch besser: Meine SD-Karte ist auf dem Ethernet-Shield....... Auslesen übers Netzwerk wäre natürlich das NonPlusUltra. Wobei ich gelesen habe, daß SD und Ethernet gemeinsam zu betreiben problematisch sein soll.

Gruß/hk007
Arduino 1.0.5 | Arduino UNO & MEGA | Arduino 1.54r2 mit DUE

uwefed

Wenn Du ein älteres Ethernetshield mit einem SD Shield kombinierst kommen sie sich in die QUere da beide pin 10 als CS für die SPI verwenden. Bei neueren bzw Ethernetshields mit SD Steckplatz ose Arduino Ethernet ist CS der Sd auf Pin 4.

Grüße Uwe

Kalli

Hallo HK007,

habe mal einen Datenlogger programmiert, der wahlweise die Daten aufzeichnet und dann für das
Programm LogView über USB ausgibt. Hatte da so einige Probleme, das Ende der Datei wurde nicht
richtig erkannt (konnte mir leider keiner helfen), beim Zeichenweisen einlesen von SD und Ausgabe via
USB kam es zur teilweise fehlerhaften Ausgabe. Deshablb lese ich erst einen kompletten Datensatz ein und gebe
ihn dann aus.
Als Endeerkennung schreibe ich beim Loggen dann "ende" als Abschluss.

Hier mal der Ausschnitt Lesen :

Code: [Select]
void lesen()
{

//   Serial.println("Start lesen");
File dataFile = SD.open(Ausgabe);
digitalWrite(LED,HIGH);
//String dataString = "$1;1;0;";
dataString = "$1;1;0;";


while(true)
{



char ttt=(dataFile.read());

if( ttt=='e')
{ Serial.println(); 
Serial.println("Ende");
while(1);
}
if(ttt=='B')
{
dataString +="0";
dataString +=13,DEC;
digitalWrite(LED,HIGH);
delay(50);
Serial.println(dataString);
digitalWrite(LED,LOW);

ttt=(dataFile.read());
ttt=(dataFile.read());
ttt=(dataFile.read());
ttt=(dataFile.read());
ttt=(dataFile.read());
//dataString = "";
dataString= "$1;1;0;";
//Serial.println("Satzende");
}

dataString +=ttt;
//Serial.println(dataString);


continue;
}






digitalWrite(LED,LOW);




   
}





Gruss Kalli

Go Up