Problemas al mostrar datos en LCD

Buenas tardes, estoy haciendo un medidor de mAh para baterias de litio 18650, el codigo ya funciona pero no se muestran los datos en el LCD, solo al inicio pero luego de unos segundos la pantalla se vuelve loca, podrian ayudarme a solucionar este error?
este es el codigo:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Crear el objeto lcd con la dirección 0x27 y 16 columnas x 2 filas
LiquidCrystal_I2C lcd(0x27, 16, 2);

// Variables
float capacity_mAh = 0;
float current = 0;
unsigned long previousTime = 0; // Cambiar a unsigned long para millis()
const float R = 7; // Resistencia en ohms

void setup() {
// Inicializar LCD y puerto serial
lcd.init();
lcd.backlight();
Serial.begin(9600);

// Inicializar tiempo
previousTime = millis();

}

void loop() {
// Leer el voltaje de la batería
int sensorValue = analogRead(A0);
float voltage = (sensorValue * 5.0) / 1023.0; // Calcular voltaje de la batería

// Calcular la corriente usando la ley de Ohm
current = voltage / R; // I = V / R

// Tiempo transcurrido desde la última medición en horas
unsigned long currentTime = millis();
float elapsedTime = (currentTime - previousTime) / 3600000.0; // Tiempo en horas

// Acumular capacidad
capacity_mAh += current * elapsedTime * 1000; // Corriente en mAh

// Actualizar el tiempo anterior
previousTime = currentTime;


// Mostrar el voltaje y la capacidad en el LCD
lcd.setCursor(0, 0); // Ajustar a la posición correcta
lcd.print("Voltage: ");
lcd.print(voltage, 2);
lcd.print(" V");

lcd.setCursor(0, 1); // Ajustar a la posición correcta
lcd.print("Cap: ");
lcd.print(capacity_mAh, 2); // Mostrar con 2 decimales
lcd.print(" mAh");
// Verificar si el voltaje está por debajo del corte
if (voltage < 2.6) {
    // Detener el programa o realizar otra acción
    Serial.print("Capacidad final: ");
    Serial.print(capacity_mAh, 2); // Mostrar con 2 decimales
    Serial.println(" mAh");

}

// Esperar un tiempo antes de la siguiente lectura
delay(1000); // Actualizar cada segundo

}

Could you please enclose the whole of your code in CODE tags to make it readable. Thanks

He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español @vicentu20 .

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

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