Arduino - Micro-SD-Karte

In diesem Tutorial werden wir lernen, wie man die Micro-SD-Karte mit Arduino verwendet. Im Detail werden wir lernen:

Arduino Mikro-SD-Karte

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Micro-SD-Karte
1×Micro-SD-Karten-Modul
1×Verbindungskabel
1×(Optional) MicroSD-zu-SD-Speicherkarten-Adapter
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Micro-SD-Karten-Modul

Das Micro-SD-Kartenmodul lässt sich mit Arduino verbinden und kann eine Micro-SD-Karte aufnehmen. Mit anderen Worten ist das Micro-SD-Kartenmodul eine Brücke zwischen Arduino und der Micro-SD-Karte.

Pinbelegung

Pinbelegung des Micro-SD-Kartenmoduls

Micro-SD-Kartenmodul enthält 6 Pins:

  • VCC-Pin: Verbinden Sie diesen Pin mit dem 5V-Pin des Arduino.
  • GND-Pin: Verbinden Sie diesen Pin mit dem GND des Arduino.
  • MISO-Pin: (Master In Slave Out) Verbinden Sie diesen Pin mit dem MISO-Pin des Arduino.
  • MOSI-Pin: (Master Out Slave In) Verbinden Sie diesen Pin mit dem MOSI-Pin des Arduino.
  • SCK-Pin: Verbinden Sie diesen Pin mit dem SCK-Pin des Arduino.
  • SS-Pin: (Slave Select) Verbinden Sie diesen Pin mit dem im Arduino-Code als SS-Pin angegebenen Pin.

Vorbereitung

  • Schließen Sie die Micro-SD-Karte über einen USB 3.0 SD-Kartenleser an den PC an
  • Stellen Sie sicher, dass die Micro-SD-Karte als FAT16 oder FAT32 formatiert ist (googeln Sie danach)

Verdrahtungsdiagramm

Arduino Mikro-SD-Kartenmodul Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

※ Notiz:

Wenn Sie ein Ethernet-Shield oder ein Shield verwenden, das einen Micro-SD-Kartenhalter hat, benötigen Sie kein Micro-SD-Kartenmodul. Sie müssen die Micro-SD-Karte lediglich in den Micro-SD-Kartenhalter am Shield einsetzen.

Arduino - Wie man eine Datei auf einer Micro-SD-Karte öffnet und erstellt, falls sie nicht existiert

Arduino-Code

Schnelle Schritte

  • Stecke die Mikro-SD-Karte in das Mikro-SD-Kartenmodul.
  • Verbinde das Mikro-SD-Kartenmodul mit dem Arduino gemäß dem obigen Schaltplan.
  • Schließe den Arduino über ein USB-Kabel an den PC an.
  • Öffne die Arduino-IDE, wähle das richtige Board und den Port aus.
  • Öffne den seriellen Monitor in der Arduino-IDE.
  • Kopiere den untenstehenden Code und füge ihn in die Arduino-IDE ein.
/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("arduino.txt")) { Serial.println(F("arduino.txt doesn't exist. Creating arduino.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("arduino.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("arduino.txt")) Serial.println(F("arduino.txt exists on SD Card.")); else Serial.println(F("arduino.txt doesn't exist on SD Card.")); } void loop() { }
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino-IDE, um den Code auf Arduino hochzuladen
  • Das Ergebnis im seriellen Monitor beim ersten Durchlauf
COM6
Send
SD CARD INITIALIZED. arduino.txt doesn't exist. Creating arduino.txt file... arduino.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Das Ergebnis im Serial Monitor für die nächsten Läufe
COM6
Send
SD CARD INITIALIZED. arduino.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Sie sehen möglicherweise nicht die Ausgabe im Serial Monitor beim ersten Durchlauf Ihres ersten Uploads, wenn dieser vor dem Öffnen des Serial Monitors erfolgt.

  • Trennen Sie die Micro-SD-Karte vom Modul
  • Stecken Sie die Micro-SD-Karte in einen USB-SD-Kartenleser
  • Schließen Sie den USB-SD-Kartenleser an den PC an
  • Prüfen Sie, ob die Datei existiert oder nicht

Arduino - Wie man Daten in eine Datei auf einer Micro-SD-Karte schreibt und aus einer Datei liest

Der unten stehende Code führt Folgendes aus:

  • Schreibe Daten in eine Datei
  • Lies den Inhalt einer Datei Zeichen für Zeichen aus und gib ihn im Serial Monitor aus
/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • Der serielle Monitor zeigte den Inhalt der Datei.
COM6
Send
Created by ArduinoGetStarted.com Learn Arduino and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Die Daten werden standardmäßig am Ende der Datei angehängt. Wenn Sie den Arduino mit dem obigen Code neu starten, wird der Text erneut an die Datei angehängt ⇒ Der Serial Monitor zeigt mehr Zeilen wie unten:

COM6
Send
Erstellt von ArduinoGetStarted.com Lernen Sie Arduino und SD-Karte Erstellt von ArduinoGetStarted.com Lernen Sie Arduino und SD-Karte
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie können auch die Micro-SD-Karte vom Modul entfernen und sie auf Ihrem PC öffnen, um den Inhalt zu überprüfen (ein USB-SD-Kartenleser wird benötigt).

Arduino - Wie man eine Datei auf einer MicroSD-Karte Zeile für Zeile liest

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { int line_count = 0; while (myFile.available()) { char line[100]; // maximum is 100 characters, change it if needed int line_length = myFile.readBytesUntil('\n', line, 100); // read line-by-line from Micro SD Card line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // print the character to Serial Monitor // \n character is escaped by readBytesUntil function Serial.write('\n'); // print a new line charactor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • Das Ergebnis im Serial Monitor
COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn Arduino and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Sie sehen möglicherweise mehr Zeilen im seriellen Monitor, wenn der Inhalt der Datei vorher nicht gelöscht wird.

Arduino - Wie man eine Datei auf der Micro-SD-Karte überschreibt

Standardmäßig wird der Inhalt am Ende der Datei angehängt. Der einfachste Weg, eine Datei zu überschreiben, ist: Die vorhandene Datei zu löschen und eine neue mit demselben Namen zu erstellen.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("arduino.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • Das Ergebnis im Serial Monitor
COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn Arduino and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Arduino neu starten
  • Prüfe, ob der Inhalt der Datei im Seriellen Monitor angehängt ist oder nicht.

Sie können auch die Micro-SD-Karte vom Modul lösen und an Ihrem PC öffnen, um den Inhalt zu überprüfen (ein USB-SD-Kartenleser ist erforderlich).

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!