[SOLUCIONADO] El Display LCD 16x2 imprime una letra de más

Buenas gente, me encuentro trabajando en un proyecto de Arduino en donde la placa esta conectada a un LDR y a un Display LCD de 16x2, en donde la intención, es que cada dos segundos, el Arduino consulte al LDR para saber si un LED, perteneciente a un circuito independiente, esta prendido o apagado. Si el LED esta prendido, el Arduino debe imprimir en el LCD "El Led esta prendido", si no lo esta, debe imprimir "El Led esta apagado". De momento no he logrado que esto funcione como debería, aunque estoy en proceso, pero por lo que estoy publicando esto, es por un error inexplicable que encontré.

Estoy haciendo el proyecto en la plataforma Tinkercad, y en una de las pruebas, note que en el Display imprimía "apagadoo". Lo primero que pensé, es que estaba mal el código, por lo que fui a revisarlo, y encontré que la línea correspondiente dice "apagado", sin ninguna letra de más. Volví a cargar la página, pensando que tal vez era un error de la misma, pero sigue igual. Dejo el código acá abajo por si lo quieren revisar, quisiera compartir una captura de pantalla del proyecto, pero desconozco como hacerlo.

#include  <LiquidCrystal.h>

int valorLDR = 0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  lcd.begin(16, 2);
  lcd.clear();
  lcd.print(" Cargando... ");
  delay(200);
  Serial.begin(9600);
  lcd.clear();
  lcd.print("El Led esta");
}

void loop()
{
 valorLDR = analogRead(valorLDR);
  {
   Serial.println(valorLDR);
    if(valorLDR >= 523)
     {
      lcd.setCursor(0, 1);
      lcd.print("prendido");}
    else
     {
      lcd.setCursor(0, 1);
      lcd.print("apagado");
     }
    delay (2000);
     }
}

Como no usas lcd.clear() para borrar la pantalla, la "o" que ves repetida es la que queda sin borrar de "prendido" porque tiene un caracter más que "apagado" .
Prueba agregar un espacio para que quede "apagado " así borra la "o".

Saludos

Agrego: Por consejo de un amigo al que consulte, borre la "o" final de la línea "lcd.print("apagado");", quedando "lcd.print("apagad");", ¿el resultado? el Display imprimió "apagaddo", duplico la "d", y agrego una o.

Por cierto, ya descubrí como agregar archivos adjuntos:

@gatul
Justo es lo que acabo de pensar, gracias. "apagado" se imprimió sobre "prendido", y al tener un carácter menos, nada reemplazo la o de "prendido", por lo que la conservo. Lo solucione poniendo un espacio junto a "apagado", quedando "lcd.print("apagado ");", con lo que ahorro el "lcd.clear()"

Buenisimo!

Por favor edita tu primer post y agregale "[SOLUCIONADO]" al título. Gracias

Saludos

Perfecto, gracias

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.