Entstörungsglied mit Leuchtdiode


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Datenspeicherung auf SD Karte

(Arduino)


Ohne weitere Vorkehrungen kann Arduino die erfassten bzw. errechneten Daten nicht speichern. Ausschalten der Versorgungsspannung führt stets zum sofortigen Verlust aller Daten. Eine Abhilfe stellt die Möglichkeit der Datenspeicherung auf einer SD-Karte.

SD-Karte 2GB

SD-Karte 2GB

SD Card Shield

In 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)

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)

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 Schaltung

Die 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.
Mit der Leuchtdiode D1 wird signalisiert, dass die SD Karte entweder defekt oder nicht vorhanden ist. Die grüne Leuchtdiode D2 signalisiert, dass die SD Karte vorhanden und bereit ist.

Schaltplan

Schaltplan

Testschaltung

Testschaltung

Spannungsmessung mit LM3914

Das Programm

Nach 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.
Die Datenaufzeichnung beginnt, sobald der Schalter S2 geschlossen wird. Die Messungen finden im 500 ms Takt. Sie werden in die Datei "datalog.txt" geschrieben. Jeder Datensatz besteht aus Nummer der Messung und dem Wert, der aus dem analogen Eingang A0 ausgelesen wurde.

// *****************************************************************************
// 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 Ergebnisse

Die 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

Grafik

Kurzvideo

Kurzvideo


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz