Hola buen día...
Resulta que tengo este y varios proyectos esperando para usar un RTC junto con la LCD obviamente, asi que pense que no habria mucho problema...
Conecto la lcd al bus ic2 y funciona se ven correctamente las impresiones
conecto el rtc y funciona correctamente. lo reviso en el monitor serial
El bus tiene sus resistencias pullup, estoy usando una breadboar y cables de 5plg, en mi escritorio, nada de ruido electrico por el momento.
EL problema surge cuando necesito usar los dos en el mismo bus.
Me he buscado el scanner de direcciones de IC2 y he encontrado 3;
0x27 // esta corresponde a la pantalla lcd
0x50 // estas dos aparantemente son del rtc por que si lo remuevo del bus ambas desaparecen
0x68 // rtc de nuevo?
Bueno, dejando de lado esa rareza, si conecto los dos dipositivos a Ic2 la pantalla no muestra texto...
Pero el RTC si refeleja la hora y fecha en el serial monitor.
Para hacer las cosas mas interesantes...
Mando encender y apagar la luz del display al incio y esa parte del codigo si me funciona, pero nada de letras o numero o simbolos ni nada.
Me he visto varios ejemplos:
Usar leer y escribir en Wire
Un codigo que hace lo que necesito
Un tuto mas extenso
Ahora bien... lo que no encuentro por ningun lado es una guia, una secuencia de pasos logicos que me permita a mi, armar mi codigo como yo lo necesite. Si alguien sabe de alguna se lo agradeceria.
Por el momento entiendo que para que el bus funcione, debo "hablar" con cada dispositivo individualmente, es por eso que se usa una funcion como;
Wire.beginTransmission(redchip);
Wire.write(0);
Wire.endTransmission();
Wire.beginTransmission( direccion del sispositivo)
Wire.write(0) // esto es necesario cada vez para borrar el registro, creo
Wire.endTransmission(); // empieza a volcar los datos en la direccion selecciona.
Ahora bien, si quiero imprimir en mi LCD es algo asi:
void imprimeLCD()
{
Wire.beginTransmission(0x27);
Wire.write(0);
Wire.endTransmission();
lcd.setCursor(0,0); lcd.print("thi is a " );
lcd.setCursor(0,1); lcd.print("das probe" );
}
o asi?
void imprimeLCD()
{
Wire.beginTransmission(0x27);
Wire.write(0);
lcd.setCursor(0,0); lcd.print("thi is a " );
lcd.setCursor(0,1); lcd.print("das probe" );
Wire.endTransmission();
}
La verdad que no encuentro como desarmar este problema, se lo basico, que debo leer o escribir en cada dispositivo del bus, pero como? como se usa el printlcd si tengo varios dispositivos en IC2?
Alguna ayuda ??
Gracias.
-Alex