LCD 16*2 no muestra texto

Hola, recientemente compré un LCD para mi Arduino UNO, y cuando intento que este muestre texto, se queda en blanco.

El código que uso es:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
float calibration_value = 21.34;
int phval = 0;
unsigned long int avgval;
int buffer_arr[10], temp;
void setup()
{
  Serial.begin(9600);
  lcd.init();
  lcd.begin(16, 2);
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("   Bienvenido a    ");
  lcd.setCursor(0, 1);
  lcd.print(" Medidor pH    ");
  delay(2000);
  lcd.clear();
}
void loop() {
  for (int i = 0; i < 10; i++)
  {
    buffer_arr[i] = analogRead(A0);
    delay(30);
  }
  for (int i = 0; i < 9; i++)
  {
    for (int j = i + 1; j < 10; j++)
    {
      if (buffer_arr[i] > buffer_arr[j])
      {
        temp = buffer_arr[i];
        buffer_arr[i] = buffer_arr[j];
        buffer_arr[j] = temp;
      }
    }
  }
  avgval = 0;
  for (int i = 2; i < 8; i++)
    avgval += buffer_arr[i];
  float volt = (float)avgval * 5.0 / 1024 / 6;
  float ph_act = -5.70 * volt + calibration_value;
  lcd.setCursor(0, 0);
  lcd.print("pH Val:");
  lcd.setCursor(8, 0);
  lcd.print(ph_act);
  delay(1000);
}

Espero puedan ayudarme porque es urgente.

No es problema de código, el código funciona.

Exactamente a que te prefieres con "se queda en blanco", ¿No muestra nada o muestra "cuadraditos"?

¿Has probado ajustando el contraste?
¿El ejemplo HelloWorld de la librería te ha funcionado?

Hola, gracias de antemano por responder.

Me refiero a que no muestra el texto que debería, ya que ni siquiera alcanzo a ver los cuadraditos que mencionas. Por otro lado, me puedes decir dónde consigo el Hello World que mencionas?

Espero tu respuesta

Actualización: ajusté el contraste y ya alcanzo a ver cuadrados blancos. ¿Qué puedo hacer en ese caso?

En tu IDE o como ejemplo de la librería que usas.

Como puedo hacer para que el texto aparezca en la placa?

Te dije que el código funciona porque lo probé así que no es el código.

Revisa las conexiones.

Si, es fácil, en el menú Ejemplos de la IDE, submenú LiquidCrystal_I2C.

Si es una pantalla LCD I2C 16x2, mira en la I2C y deberías poder ver un potenciómetro que ajusta el contraste. También asegúrese de que los dos pines que sobresalen del costado del I2C tengan un puente instalado. Ese puente enciende la luz de fondo.

Debe ser por la dirección I2C, de que color es el LCD, verde o azúl, dependiendo de esto prueba cambiando la direección hexadécimal

LiquidCrystal_I2C lcd(0x27, 16, 2);

por

LiquidCrystal_I2C lcd(0x3F, 16, 2);

Y si aún no funciona revisa este código es para detectar la dirección hexadécimal de tu LCD I2C

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600);
}

void loop() {
  byte codigoDeRespuesta, direccion;
  int dispositivosEncontrados = 0;
  Serial.println("\n\nBuscando dispositivos...");

  for (direccion = 1; direccion < 127; direccion++ ) {
    Wire.beginTransmission(direccion);
    codigoDeRespuesta = Wire.endTransmission();

    if (codigoDeRespuesta == 0) {
      Serial.print("Dispositivo encontrado en la dirección 0x");
      if (direccion < 16)
        Serial.print("0");
      Serial.print(direccion, HEX);

      dispositivosEncontrados++;
    }else if (codigoDeRespuesta == 4) {
      Serial.print("Error desconocido en la dirección 0x");
      if (direccion < 16)
        Serial.print("0");
      Serial.println(direccion, HEX);
    }
  }
  if (dispositivosEncontrados == 0) Serial.println("No se encontró ningún dispositivo");
  delay(1000);
}

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