Tutorial del Internet de las Cosas con el ESP8266
Juan Antonio Villalpando
Volver al índice del tutorial
____________________________
340.- ESP8266. Pantalla LCD con I2C. Potenciómetro en entrada analógica.

- Prueba con esta librería para el ESP32: LiquidCrystal_I2C-ESP32.zip
de https://github.com/marcoschwartz/LiquidCrystal_I2C
- Puede salir este mensaje de error, pero lo ignoramos.
- Descomprime ese archivo, llama a su carpeta LiquidCrystal_I2C y cópiala en la carpeta libraries de Arduino (Cuidado no la copies como doble subcarpeta).
- Cuidado, si tienes otras librerías de LiquidCrystal_I2C debes comprimirlas para que no sean leidas.
- Esta es otra librería que puede funcionar con la tarjeta ESP8266: LiquidCrystal_I2C-Normal.zip
- Aquí tienes más información sobre LCD con Bus I2C
_________________________________
- Código.
LCD.ino |
// Juan A. Villalpando.
// KIO4.COM
// LCD ESP32
#include <LiquidCrystal_I2C.h>
int columnas = 16;
int filas = 2;
LiquidCrystal_I2C lcd(0x27, columnas, filas);
// LiquidCrystal_I2C lcd(0x3F, columnas, filas);
void setup(){
lcd.init();
lcd.backlight();
}
void loop(){
lcd.clear(); // Borra pantalla.
lcd.setCursor(0, 0); // Inicio del cursor
lcd.print("Prueba LCD");
delay(1000);
lcd.clear(); // Borra pantalla.
lcd.setCursor(0,1); // Siguiente renglón.
lcd.print("Funcionando.");
delay(1000);
lcd.clear();
}
|
_________________________________
15.- Entrada analógica. Potenciómetro.
- Las entradas analógicas del ESP8266 tienen una resolución de 10 bits, por lo tanto podemos obtener 1.024 valores distintos, la tensión máxima será de 3.3 V

- Conectamos un potenciómetro al terminal analógico A0.
- Observamos sus valores en el Monitor Serie, obtendremos valores entre 0 y 1.024. Podemos cambiar la base mediante la función de Arduino Map.
_________________________________
- Código.
potenciometro.ino |
// Juan A. Villalpando
// KIO4.COM
// Entrada analógica.
#define Poten A0 // AO va al terminal intermedio del potenciómetro.
float valor;
float deceroauno;
void setup() {
// Los terminales ANALOGICOS no hay que configurarlos porque siempre son de entrada.
Serial.begin(115200);
}
void loop() {
valor = analogRead(Poten);
Serial.println(valor);
// deceroauno = valor / 1024;
// Serial.println(deceroauno);
// valor = map(valor, 0, 1024, 0, 100);
// Serial.println(valor);
delay(20);
}
|
_________________________________
_________________________________
_________________________________
_________________________________
1.- Valor del Potenciómetro en la pantalla LCD.
- Conectamos la pantalla LCD y el potenciómetro como indico en la imagen, al mover el potenciómetro su valor aparecerá en la pantalla.
- Conectamos un potenciómetro al terminal analógico A0.
- Observa que el potenciómetro está conectado a 3,3V, es lo que permiten las entradas del ESP8266. (Si quisieras más voltios tendrías que recurrir a un divisor de tensión).

_________________________________
- Código.
potenciometro_lcd.ino |
// Juan A. Villalpando.
// KIO4.COM
// LCD ESP32 Potenciómetro
#include <LiquidCrystal_I2C.h>
int columnas = 16;
int filas = 2;
LiquidCrystal_I2C lcd(0x27, columnas, filas);
// LiquidCrystal_I2C lcd(0x3F, columnas, filas);
// Potenciómetro.
#define Poten A0 // A0 va al terminal intermedio del potenciómetro.
float valor = 0;
float valor_map = 0;
void setup(){
lcd.init();
lcd.backlight();
}
void loop(){
valor = analogRead(Poten);
valor_map = map(valor, 0, 1024, 0, 100);
lcd.clear(); // Borra pantalla.
lcd.setCursor(0, 0); // Inicio del cursor
lcd.print(valor);
lcd.setCursor(0,1); // Siguiente renglón.
lcd.print(valor_map);
delay(400);
}
|
_________________________________
- Propuesta.
- Utiliza una LDR en vez de un potenciómetro.
_______________________________
|