Ciao a tutti, come da tilo mi interessa leggere il contenuto di un file di testo all'interno della microsd card e visualizzarlo nle display oled 0.96, non sono molte righe saranno circa 5 righe, solo che nel display vedo solo e sempre la prima riga con le altre righe accavallate, non ho capito come far passare a capo nella lettura del file di testo o leggere intero contenuto anche in scroll, io ho fatto questo codice che funziona solo su una riga ma scrivendo pochi caratteri li vedo sempre sulla stessa riga accavallandosi.
#include <SPI.h>
#include <Wire.h>
#include <SD.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
String testo;
File myFile;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
if (!SD.begin(5)) {
Serial.println("initialization failed!");
while (1);
}
// Serial.println("initialization done.");
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("test.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
// Serial.print("Writing to test.txt...");
// myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
// Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
// re-open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
// Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
testo = myFile.readString();
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Impostare l'indirizzo i2c annotato in precedenza
display.clearDisplay(); //Pulisce il buffer da inviare al display
display.setTextSize(1); //Imposta la grandezza del testo
display.setTextColor(WHITE); //Imposta il colore del testo (Solo bianco)
display.setCursor(0,0); //Imposta la posizione del cursore (Larghezza,Altezza)
display.println(testo); //Stringa da visualizzare
display.display(); //Invia il buffer da visualizzare al display
display.startscrollleft(0x00, 0x0F);
}
void loop() {
}