Estoy creando una función en la cual por medio del monitor serial escribo una palabra y cada palabra la voy guardando en una array, todo esta funcionando bien, el problema es cuando activo la oled, al inicializarla la oled.begin() el readStringUntil deja de funcionar, ya que no me guarda la palabra completa si no que solo guarda la primera letra. adjunto codigo.
Necesito la oled para ir visualizando las palabras guardas.
[CODE]
#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ANCHO 128
#define ALTO 64
#define OLED_RESET -1
Adafruit_SSD1306 oled(ANCHO, ALTO, &Wire, OLED_RESET);
String data1 = "";
String Guardados[20];
byte i = 0;
bool datoComparado = false;
void setup()
{
Serial.begin(115200);
Wire.begin();
// oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// oled.display();
Serial.println("Listo para utilizar: ");
}
void loop()
{
if (Serial.available() > 0)
{
Serial.println("dato encontrado");
data1 = Serial.readStringUntil('\n');
}
if (data1 == "leer") {
for (byte j = 0 ; j <= i ; j++) {
if (Guardados[j] != NULL) {
Serial.println(Guardados[j]);
}
else break;
}
data1 = "";
Serial.println("termino la lectura XD");
}
else if (data1 != "") {
for (byte j = 0 ; j <= i ; j++) {
if (data1 == Guardados[j]) {
datoComparado = false;
break;
} else datoComparado = true;
}
if (datoComparado) {
Guardados[i] = data1;
Serial.print("dato: ");
Serial.println(data1);
Serial.print("este es el dato guardado: ");
Serial.println(Guardados[i]);
i++;
datoComparado = false;
} else
Serial.println("El dato que ingreso ya esta guardado");
data1 = "";
}
}
[/code]
Alguien sabe el porque no funciona La función readStringUntil al inicializar la oled.