| Datenspeicherung auf SD Karte(Arduino)
SD-Karte 2GB SD Card ShieldIn dem Versuch kommt ein SD Card Shield von Seeed Studio (v. 4.3), das Datenspeicherung ermöglicht, zum
Einsatz. Das Shield wird einfach auf Arduino gesteckt, alles andere wird mithilfe der Software realisiert. Das
Shield unterstützt die Karten des Typs SD, SDHC und MicroSD. Zur Anwendung einer MicroSD wird ein Karten-Adapter
mitgeliefert. SDC-Shield (Ansicht oben) Die Karten können gelesen und beschrieben werden. Das SD-Kartenformat kann FAT16 oder FAT32 sein. Es
werden Kartengrößen bis 32 GB unterstützt. Im Arduino Sketch müssen die Bibliotheken SPI.h und SD.h eingebunden
werden. SDC-Shield (Ansicht unten) Das Shield arbeitet mit einer Spannung 3,5 bis 5,5 V, seine Abmessungen
betragen 68,7 x 53,5 x 19,00 mm. Die SchaltungDie Schaltung besteht aus wenigen Komponenten. Mit dem Schalter S1 wird die Schaltung mit Spannung
versorgt. Die Versorgungsspannung beträgt in dem Beispiel 9 VDC. Mit dem Schalter S2 werden das Programm und damit
die Datenaufzeichnung
gestartet. Aufgezeichnet werden Werte eines analogen Signals an dem analogen Eingang A0. Das analoge Signal wird hier
einfach manuell mithilfe eines Potenziometers gebildet. Die Werte werden in regelmäßigen Abständen von 500 mA ausgelesen.
Um das Signal während der Aufzeichnung ein wenig zu visualisieren, wird in die Schaltung eine Balkenanzeige eingepflegt.
Als Anzeigetreiber kommt der Baustein LM3914N zum Einsatz. Der aus den Widerständen R1 und R5 gebildete Spannungsteiler
regelt das mit dem Potenziometer eingestellte Signal auf maximal 1.25 V herunter. Mit dem Widerstand R2 wird der Strom
der Leuchtdioden der Balkenanzeige parametriert.
Schaltplan Testschaltung Das ProgrammNach dem Start des Programms wird zunächst untersucht, ob die Speicherkarte vorhanden und bereit ist.
Entsprechende Infos hierzu liefern anschließend die rote und grüne Leuchtdiode D1 und D2.
// Datenspeicherung auf SD Card // Mit SD Card Shield // Arduino Mega2560 R3, IDE 1.8.13 // ***************************************************************************** #include <SPI.h> #include <SD.h> const int chipSelect = 4; int Programm_Start = 5; // Schalter Programm Start int SD_Karte_Fehler = 6; // Ausgang D1, rote LED int SD_Karte_OK = 7; // Ausgnag 2, grüne LED int Analogeingang = 0; int Messung_Nummer = 0; void setup() { pinMode(Programm_Start, INPUT_PULLUP); pinMode(SD_Karte_Fehler, OUTPUT); // LED rot pinMode(SD_Karte_OK, OUTPUT); // LED grün if (!SD.begin(chipSelect)) { // SD-Karte initialisieren digitalWrite (SD_Karte_Fehler, HIGH); // Karte-Fehler oder nicht digitalWrite (SD_Karte_OK, LOW); // vorhanden, rote LED an while (1); } digitalWrite (SD_Karte_Fehler, LOW); // Karte OK, grüne LED an digitalWrite (SD_Karte_OK, HIGH); } void loop() { if (digitalRead(Programm_Start) == LOW) { // Programm start? String Meine_Daten = ""; Messung_Nummer ++; // Messung Nummer Meine_Daten += String(Messung_Nummer); Meine_Daten += ","; int Analogwert = analogRead(Analogeingang); // Wert lesen Meine_Daten += String(Analogwert); File dataFile = SD.open("datalog.txt", FILE_WRITE); if (dataFile) { dataFile.println(Meine_Daten); // Daten schreiben dataFile.close(); } } delay (500); // Wartezeit } Die ErgebnisseDie Daten können anschließend aus der Datei "datalog.txt" ausgelesen und beliebig ausgewertet werden. In
dem Beispiel werden sie in eine Excel-Tabelle eingefügt und in Form einer Kurve dargestellt. Grafik KurzvideoKurzvideo Weitere Themen:
|