Eine Textdatei auf eine microSD-Karte schreiben
Was dieses Beispiel zeigt
Schreibt eine Textzeile in eine Datei namens text.txt auf einer microSD-Karte und meldet jeden Schritt im Serial Monitor. Der Bildschirm wird nicht verwendet. Wie Sie die Datei auf dem Bildschirm wieder auslesen, zeigt Eine Textdatei von einer microSD-Karte lesen.
Öffnen Sie den Serial Monitor mit 115200 Baud, bevor der Sketch seine Schritte ausführt, oder setzen Sie das Board zurück, sobald er geöffnet ist.
Beispielcode
#include "Inkplate.h" // Include Inkplate library to the sketch
Inkplate display; // Create an object on Inkplate library
SdFile file; // Create SdFile object used for accessing files on SD card
char *fileName = "text.txt"; // The name of a file with the extension.
// The text you want to write in the file
char *dataToWrite = "Hello! This is the file writing example for Inkplate 7SPECTRA.\n"; // "\n" represents a new line
void setup()
{
Serial.begin(115200); // Init serial communication
display.begin(); // Init Inkplate library (you should call this function ONLY ONCE)
// Init SD card. Display if SD card is init propery or not.
if (display.sdCardInit())
{
Serial.println("SD Card ok!");
if (!file.open(fileName, FILE_WRITE))
{ // If it fails to create, send an error message to display, otherwise write to file.
Serial.println("Error while creating the file!");
display.sdCardSleep();
}
else
{
Serial.println("Writing in the file...");
file.write(dataToWrite); // Write data string in the file
Serial.println("Data has been written successfully!");
file.close(); // Close the file
display.sdCardSleep(); // Put sd card in sleep mode
}
}
else
{ // If card init was not successful, display error on screen, put sd card in sleep mode, and stop the program
// (using infinite loop)
Serial.println("SD Card error!");
display.sdCardSleep();
while (true)
;
}
}
void loop()
{
// Nothing...
}
Dieses Beispiel verwendet außerdem SdFile, eine Dateiklasse aus dem SdFat-Code, der in der Inkplate-Bibliothek enthalten ist (er liegt im Ordner src/features/SdFat der Bibliothek), sowie Serial, das zum ESP32-Board-Paket gehört (arduino-esp32). Ihre nachfolgend aufgeführten Funktionen sind so beschrieben, wie der Sketch sie verwendet.
Verwendete Funktionen
Inkplate()returns NoneErstellt das Inkplate-Objekt. Inkplate 7SPECTRA hat nur einen einzigen Sechsfarbmodus, daher erhält der Konstruktor kein Modus-Argument.
ReturnsKonstruktor; kein Rückgabewert.
SdFilereturns NoneDateiklasse aus dem SdFat-Code, der in der Inkplate-Bibliothek enthalten ist. Der Sketch erstellt ein Objekt, file, um die Datei auf der Karte zu öffnen, zu beschreiben und zu schließen.
ReturnsTyp; kein Rückgabewert.
Serial.begin(unsigned long baud)returns voidStartet die serielle Kommunikation mit der angegebenen Baudrate, hier 115200.
ReturnsNichts.
display.begin()returns voidInitialisiert die Bibliothek, die Peripheriegeräte und den Framebuffer. Einmal in setup() aufrufen.
ReturnsNichts.
display.sdCardInit()returns int16_tInitialisiert die microSD-Karte, damit Dateien darauf geöffnet werden können.
ReturnsUngleich null, wenn die Karte initialisiert wurde; der Sketch behandelt 0 als Fehler.
Serial.println(value)returns size_tGibt Text gefolgt von einem Zeilenumbruch im Serial Monitor aus.
ReturnsAnzahl der ausgegebenen Bytes.
file.open(const char *path, oflag_t oflag)returns boolÖffnet eine Datei auf der Karte. Der Sketch öffnet text.txt mit FILE_WRITE, um sie zu beschreiben.
Returnstrue, wenn die Datei geöffnet wurde.
file.write(const char *str)returns size_tSchreibt einen String in die geöffnete Datei. Der Sketch schreibt eine Textzeile, die mit einem Zeilenumbruch endet.
ReturnsAnzahl der geschriebenen Bytes.
file.close()returns boolSchließt die geöffnete Datei, damit die Daten auf der Karte gespeichert werden.
Returnstrue, wenn die Datei geschlossen wurde.
display.sdCardSleep()returns voidVersetzt die microSD-Karte in den Schlafmodus.
ReturnsNichts.
Was Sie erwarten können
Mit einer funktionierenden Karte zeigt der Serial Monitor die drei Schritte, und die Karte enthält nun text.txt mit der Zeile des Sketches.
SD Card ok!
Writing in the file...
Data has been written successfully!
Kann die Karte nicht initialisiert werden, gibt der Sketch SD Card error! aus und hält an. Kann die Datei nicht erstellt werden, gibt er Error while creating the file! aus.
🔗Vollständiges Beispiel öffnen
examples/Inkplate7SPECTRA/Advanced/SD/Inkplate7SPECTRA_SD_TXT_Write