variable texto movimiento mostrar mega linea limpiar conexion conectar comandos 16x2 c++ arduino

c++ - texto - Programación LCD con Arduino



mostrar variable en lcd arduino (2)

Parece que print() está borrando la pantalla de datos anteriores cada vez que se llama (aunque la documentación relevante y el código de la biblioteca disponible aquí y aquí no están claros).

Si este es el caso, necesita imprimir el Voltage= cadena en el bucle junto con el valor del sensor. Intenta cambiar tu código a:

#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); int sensorPin = A0; void setup() { lcd.init(); lcd.backlight(); } void loop() { int sensorValue = 0.004882812 * analogRead(sensorPin) + 1; String display = "Voltage="; display += sensorValue; lcd.print(display); }

Me gustaría que mi LCD muestre "Voltage = (sensorValue)" pero en este momento la única manera en que puedo hacer que el programa reconozca el valor cuando gire el potenciómetro es si lo coloco en un bucle. Pero cuando lo pongo en un bucle, toda la pantalla se llena con 1s, 2s, 3s, 4s o 5s, dependiendo de dónde esté configurado el potenciómetro.

Si no lo tengo en un bucle, lo que sea que active el potenciómetro es lo que aparecerá en la pantalla y no cambiará si se gira el potenciómetro.

¿Cómo puedo poner los resultados de un bucle fuera de un bucle para poder tener "(Voltage = sensoreValue)"?

Aquí está mi programa:

#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); void setup() { lcd.init(); lcd.backlight(); int sensorPin = A0; int sensorValue = 0; sensorValue = 0.004882812 * analogRead(sensorPin) + 1; lcd.print("Voltage="); } void loop() { int sensorPin = A0; int sensorValue = 0; sensorValue = 0.004882812 * analogRead(sensorPin) + 1; lcd.print(sensorValue); }


Usted le pidió que imprimiera la lectura y lo está haciendo, ¡está imprimiendo cada lectura!

Sospecho que quieres que solo se imprima si el valor cambia

int sensorValue = 0; int prevValue = 0; void loop() { sensorValue = 0.004882812 * analogRead(sensorPin) + 1; if (sensorValue != prevValue) { lcd.print(sensorValue); prevValue == sensorValue; } }

Alternativamente, puede imprimir ''n'' espacios inversos para que el nuevo valor se imprima sobre el anterior, si su pantalla lcd.print lo admite