LCD QC2004A

Hola
Estoy usando el LCD QC2004A en protocolo I2C, para mi proyecto de inicio.
Me funciona de maravilla usando la librería LiquidCrystal que viene con el IDE de Arduino.

Ahora bien,
Tengo dos preguntas que hacer:

  • No tengo idea de lo que hago con LiquidCrystal_I2C lcd1(0x27,2,1,0,4,5,6,7,3,POSITIVE); ¿Hay algun manual que explique qué es cada parametro y como cambiarlos?

  • Con algunos caracteres de la ROM, me salen caracteres chinos y revisando la documentación, he visto que es correcto si uso el juego de caracteres A00, pero, ¿cómo puedo conmutar al juego de caracteres A02? Este juego es el adecuado para mí.

Muchas gracias, gente!!!

No tengo idea de lo que hago con LiquidCrystal_I2C lcd1(0x27,2,1,0,4,5,6,7,3,POSITIVE); ¿Hay algun manual que explique qué es cada parametro y como cambiarlos?

Prueba el manual de Google, de paso lee las Normas del foro por favor.

Perdona pero nadie busca antes de preguntar?
Si tu pones en google: arduino liquidCRystal_I2C manual te aparece todo.
De lo contrario veras páginas que usan esta librería y siempre alguien lo explica.

Hola surbyte
Lamento mucho haber excedido las normas del foro. He intentado ser cortés en el cuerpo del mensaje y he querido ser directo en el titulo. Tal vez no sea este el foro adecuado para mis preguntas, pero confia en que cuando las he escrito es porque estaba seguro de que si lo era.

Acepta mis disculpas porque no era mi intención encrisparte.

Tambien, no pidas perdón por el hecho de que algunos no busquen antes de preguntar (es más fácil), pero no es mi caso. Son muchos los años que tengo y que conozco la InterNet y debido a mi ignorancia extrema, paso mucho tiempo buscando.
Antes de realizar las preguntas que he hecho, he revisado muchas páginas en las que se explica absolutamente todo, en español y en ingles (ingles no conozco), pero no he conseguido descifrar las respuestas. De hecho, he comenzado con un arduino UNO y tengo un 97% de la memoria llena de código y pocas preguntas me has visto hacer. Para verificarlo: http://www.galder.biz/0000_TORRE/ (está en version beta y probandolo en el interior de casa)
Aunque sea algo sencillo para unos, no lo es para otros.

Ahora, si eres tan amable y conoces una web en la que explican como puedo resolver mis dudas te agradezco que me la reportes para que yo pueda estudiarla. Lo que necesito es conocer no solo qué son lo parámetros que le paso a la función, sino cómo afectan los cambios que yo pueda hacer a los parámetros porque eso es en realidad lo que no comprendo.

Perdona surbyte si te he molestado pero lejos de mi intención.

Sirva esto como disculpa, salu2,
Joseba

A ver… ya te respondí por privado pero corresponde explicarme aqui.
Esta claro que como nuevo o no tanto (ya tienes 16 post), no sabes las normas.
Mas de una vez Hector_A (moderador me ha pedido que sea mas tolerante y tiene razón).

Cuando ingresamos, uno deja sus datos, tilda como que las leyó y a otra cosa y va directo a lo que necesita. Asi el 99% de las personas. No digo que sea tu caso. Fue el mío curiosamente.

Cuando alguien te las recuerda uno tiende a molestarse. Que me pide si me la pasé buscando!!! piensa.
Y cuando las lee con comprensión, entiende el porque del comentario.

Las normas no estan porque si. Son una respuesta rápida a manejarnos con ciertas normas de convivencia y a no preguntar cosas que ya estan respondidas.
Te dice como encontrar lo que buscas, te dice como insertar códigos, imágenes y enlaces.

Punto 3 dice:
3. Buscar antes de postear
Intenta solucionar tu problema, o responde tu pregunta por ti mismo. Por ejemplo si te estas preguntando como conectar una serie de LED’s a un registro 74HC595, intenta buscar en Google exactamente eso (agrega la palabra “Arduino” para obtener mejores resultados):

Tal vez encontrarlas sea dificil o no.

En tu caso, manual de LCD_I2C hay por todos lados. Es una de las cosas que mas se pregunta ultimamente porque claro, los pines estan limitados y los proyectos crecen en dificultad y se suman cosas y no hay de donde inventar mas controles.

Bueno como releo tu respuesta y veo que no has entendido. Te lo hago mas evidente entonces.

GOOGLE: arduino manual lcd_i2c

Esta búsqueda condujo al 3er link.

que a su vez me llevó a la página sugerida por carmeloco (Fmalpartida)
No se donde lo leí, tal vez en un pedido similar pero lo dijo hace 1 día.

Si ves la pagina muestra varios archivos

el que te indico tiene la librería y además una carpeta que dice Docs.

Asi que cuando lo descomprimas tiene toda la documentación necesaria.

RESUMIENDO: Donde estaba? En google. Que debiste haber hecho? Tal como dice las normas del foro, buscar.

La clave es poner en google: Arduino y la etiqueta de lo que buscas.

Hola
Bueno, como sigo igual, me atrevo a seguir preguntando para intentar no morir más ignorante.

He vuelto a revisar la documentacion que viene con la libreria y sigo sin entender, ... que no digo que no sea por no buscar bien.

Todo lo más que encuentro es lo que ya había enontrado por otros sitios web:

lcd_Addr[in] I2C address of the IO expansion module. For I2CLCDextraIO, the address can be configured using the on board jumpers.
En[in] LCD En (Enable) pin connected to the IO extender module
Rw[in] LCD Rw (Read/write) pin connected to the IO extender module
Rs[in] LCD Rs (Reset) pin connected to the IO extender module
d4[in] LCD data 0 pin map on IO extender module
d5[in] LCD data 1 pin map on IO extender module
d6[in] LCD data 2 pin map on IO extender module
d7[in] LCD data 3 pin map on IO extender module

t_backlighPol Positive / Negative

Mi problema sigue siendo que no entiendo nada a excepción del primer parámetro lcd_Addr[in], que creo que es la dirección que tiene el display ya configurada en su LCM1602.

Mi display es un QC2004A, que tiene adosado un conversor a i2c LCM1602 IIC V1.
Conseguí hace tiempo que funcionara poniendo en mi programa LiquidCrystal_I2C lcd1(0x27,2,1,0,4,5,6,7,3,POSITIVE);, pero me gustaria no quedarme en que funciona sino saber algo más de los parámetros que le paso. Esto, si es posible, que sino, pues tampoco pasa nada.

Otro tema que me gustaria saber es cómo conmuto de un mapa de caracteres a otro. Al parecer tiene dos mapas segun he entendido en la documentacion que tengo del visualizador (HD44780U). Uno el (ROM Code: A00) y el otro (ROM Code: A02). A mi me gustaria seleccionar el A02 porque el A00 tiene caracteres chinos y no los necesito.

surbyte, no quiero que te enfades pero casi que me da miedo escribir este post. Tal y como me comentas que te ha dicho el moderador, ten paciencia, solo quiero divertirme y aprender. Para mi, es un hobby, no un trabajo.

Saludos y gracias por adelantado.

Segun la informacion que tu mismo has puesto, es la asignación de, la dirección i2c, el pin enable, el pin read/write, el pin reset, lis pines de datos y si quieres activar o no la retro-iluminación.

Hasta ahora, yo usaba la librería de fmalpartida, pero he descubierto que no funciona en arduino zero, y ahora, estoy empezando a usar otra, que en principio, funciona en el zero (al menos compila)

http://www.dfrobot.com/image/data/DFR0154/LiquidCrystal_I2Cv1-1.rar

Jajaja no me enfado. Perdona si transmito eso pero es que me resulta cómodo que se venga y se pida el manual cuando con un búsqueda simple ya lo tienes e incluso, la propia librería lo contiene

Ahora bien.

Dirección, es como se accede al dispositivo i2C en este caso tu display. SI no la sabes busca en google: scanner i2c que es un programa que te ayudará a encontrarla.
Tiene el primer número.

Los siguientes números supongo yo, que corresponden al dispositivo I2C de entrada/salida que se conecta con el LCD. Dudo que esos pines cambien y tal vez lo hacen para tu Display.
De todos modos tu display debe tener una hoja de datos y estos datos debieran estar ahi.
Finalmente el backlight si quieres que tenga o no luz de fondo.

SI quieres entender mas, debes buscar el esquema electrónico porque hay cosas que no se pueden explicar sin el.

Tal vez este sea un esquema bastante similar al que tienes en tu interfaz i2c con el LCD
Pero las conexiones no coinciden

seria si estuviera bien
................................ add EN RW RS D4 D5 D6 D7, BACKLIGHT
LiquidCrystal_I2C lcd1(0x27, 4, 5, 6, 0, 1, 2, 3, 7,POSITIVE);

Me queda la duda de que hago con ese ultimo pin que supongo será el del backlight pero como no lo documentaste solo lo intuyo.

Hola surbyte, carmeloco
Gracias, esta vez he sido avasallado con tanta información.
Tardaré seguramente unos dias en analizar todo lo que me comentais, pero creo ver que esos parámetros son la forma que tiene el interface i2c de conectarse al display, claro, no contaba con esto y ahora creo que empiezo a ver la luz.

Voy a intentar ver como está el circuito de mi display conectado al interface i2c (lo compre como una pieza única, dispaly e interface ya soldado. Adjunto foto).

En cuanto a la hoja de datos, no me la han entregado y tampoco la pedí. (aiiii, novato!!!).
En cuanto al scanner i2c, ya lo conocía y lo he usado en varias ocasiones. Es muy útil.

Bueno, lo dicho, investigo y os cuento.

Mientras, si sabeis algo sobre el tema de que no me salgan caracteres chinos con algunos char(xx), lo agradecería. Uso la matriz 19,3 como “vida” y entonces pretendo que exista animación en ese matriz con los caracteres “| / - \ -”, pero uno de ellos () me saca un caracter chino. No es importante este aspecto, pero ya que estoy con ello…

int LCD1Print_Vida(){
  CONT2++;
  if(CONT2==6) CONT2=1;
  switch (CONT2){
    case 1:
      LCD1Print(String(char(124)),19,3); // |
      break;
    case 2:
      LCD1Print(String(char(47)),19,3); // /
      break;
    case 3:
      LCD1Print(String(char(45)),19,3); // -
      break;
    case 4:
      LCD1Print(String(char(92)),19,3); // \
      break;
    case 5:
      LCD1Print(String(char(45)),19,3); // -
      break;
  }
}

Gracias, comento en cuanto se aclare mi cabeza.

Joseba