Zapis tekstne datoteke na microSD karticu
Što ovaj primjer prikazuje
Zapišite redak teksta u datoteku text.txt na microSD kartici i ispišite svaki korak u Serial Monitoru. Zaslon se ne koristi. Kako biste datoteku pročitali natrag na zaslonu, pogledajte Čitanje tekstne datoteke s microSD kartice.
Otvorite Serial Monitor na 115200 baud prije nego što skica izvede svoje korake ili resetirajte pločicu nakon što se otvori.
Primjer koda
#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...
}
Ovaj primjer koristi i SdFile, klasu za rad s datotekama iz SdFat koda koji je uključen u Inkplate biblioteku (nalazi se u mapi src/features/SdFat biblioteke), te Serial, koji dolazi s ESP32 paketom pločica (arduino-esp32). Njihove su funkcije u nastavku opisane onako kako ih skica koristi.
Korištene funkcije
Inkplate()returns NoneStvara Inkplate objekt. Inkplate 7SPECTRA ima samo jedan šestobojni način rada, pa konstruktor ne prima argument načina rada.
ReturnsKonstruktor; nema povratne vrijednosti.
SdFilereturns NoneKlasa za rad s datotekama iz SdFat koda uključenog u Inkplate biblioteku. Skica stvara jedan objekt, file, kako bi otvorila, zapisala i zatvorila datoteku na kartici.
ReturnsTip; nema povratne vrijednosti.
Serial.begin(unsigned long baud)returns voidPokreće serijsku komunikaciju zadanom brzinom prijenosa (baud), ovdje 115200.
ReturnsNišta.
display.begin()returns voidInicijalizira biblioteku, periferiju i međuspremnik okvira. Pozovite je jednom u setup().
ReturnsNišta.
display.sdCardInit()returns int16_tInicijalizira microSD karticu kako bi se datoteke na njoj mogle otvoriti.
ReturnsVrijednost različita od nule ako je kartica inicijalizirana; skica 0 tretira kao pogrešku.
Serial.println(value)returns size_tIspisuje tekst iza kojeg slijedi novi redak u Serial Monitor.
ReturnsBroj ispisanih bajtova.
file.open(const char *path, oflag_t oflag)returns boolOtvara datoteku na kartici. Skica otvara text.txt s FILE_WRITE, radi pisanja u nju.
Returnstrue ako je datoteka otvorena.
file.write(const char *str)returns size_tZapisuje niz znakova u otvorenu datoteku. Skica zapisuje jedan redak teksta koji završava novim retkom.
ReturnsBroj zapisanih bajtova.
file.close()returns boolZatvara otvorenu datoteku kako bi podaci bili spremljeni na karticu.
Returnstrue ako je datoteka zatvorena.
display.sdCardSleep()returns voidPrebacuje microSD karticu u stanje mirovanja.
ReturnsNišta.
Što očekivati
Ako kartica radi, Serial Monitor prikazuje tri koraka, a kartica sada sadrži text.txt s retkom iz skice.
SD Card ok!
Writing in the file...
Data has been written successfully!
Ako se kartica ne može inicijalizirati, skica ispisuje SD Card error! i zaustavlja se. Ako se datoteka ne može stvoriti, ispisuje Error while creating the file!.
🔗Otvorite cjeloviti primjer
examples/Inkplate7SPECTRA/Advanced/SD/Inkplate7SPECTRA_SD_TXT_Write