Hola, un nuevo novato (valga la redundancia).
Tengo funcionando un arduino con un DS3231 y un LCD 16x2 que al pulsar interruptores da la hora de otras zonas horarias, esto lo hice mientras definia los bloques del código y esperaba que me llegaran tres LCD que había pedido.
La idea era conectar los tres por I2C, la extension es I2C LCD 1602, si bien la extensión no permite ingresar cualquier dirección, tiene un desplegable que deja elejir entre unas pocas.
Entre ellas pensaba usar, 023, 025 y 027 pero al configurar un LCD en 025 (el primero que use ya venía en 027) me da error al subir el programa, el I2C scanner me dice que las direcciones estan correctas 025 y 027 pero solo puedo inicializar una cualquiera de las dos.
¿Donde tengo el error?
Gracias
Me he puesto a modificar la extensión, a ver como sale, ya te cuento...
Lo que ocurre es que la extensión no está configurada para trabajar con más de una pantalla, por lo que el nombre del objeto LiquidCrystal_I2C es el mismo para las dos instancias. es decir, ambas se llaman lcd, generando un error. Para solucionarlo se podría modificar la extensión para poder agregar un nombre personalizado a cada pantalla y así diferenciarlas, o en el código cambiar los nombres de las pantallas a las que se hace referencia, por ejemplo lcd1 y lcd2. Lo importante es que cada vez que se quiera imprimir algo en una de las pantallas, la instrucción debe ser lcd1.print() o lcd2.print() haciendo referencia a la pantalla deseada.
¿Puede ser que sea un problema de la extensión?.
Veo que al agregar el segundo address sigue declarando a ambos como lcd, en lugar de poner lcd1 y lcd2, ¿puede ser?
#include "RTClib/RTClib.h" #include "LiquidCrystal_I2C-master/LiquidCrystal_I2C.h" RTC_DS3231 rtc; LiquidCrystal_I2C lcd(0x25,16,2); LiquidCrystal_I2C lcd(0x27,16,2); #include <Arduino.h> #include <Wire.h> #include <SoftwareSerial.h> float GMT_1 = 0; float TZ = 0; float TDif = 0; float Ayer = 0; float AyerM = 0;