lcd 12c me esta volviendo loco

Tema en 'Mi Controlador' iniciado por mariete68, 27 Nov 2012.

  1. nolomanoloso

    nolomanoloso

    Mensajes:
    686
    Registrado:
    3 Abr 2012
    Ubicación:
    Beniaján
    actualizo, ayer me cargue la mochila al desoldarla ya que despues de haber probado todas las direcciones de 0x sin resultados pense que podia estar algo mal soldado o en los puntos incorrectos.... nah, se me despegaron dos puntos de soldadura de la placa y no hubo narices de reconstruir las pistas, por lo menos con la paciencia que tenia en ese momento.... lo volvere a intentar cuando tenga dias de descanso, mientras tanto he pedido esto:

    http://www.ebay.es/itm/170955063639?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1438.l2649

    que segun dicen es compatible con el kh0066 que es el controlador de mi pantalla y ademas por lo que veo en las fotos es mucho mas sencillo averiguar su direccion i2c.....


    un saludo.
     
  2. alsimu

    alsimu

    Mensajes:
    125
    Registrado:
    27 Jun 2009
    Ubicación:
    España
    A ver si tienes más suerte con este nuevo y tienes que ir con cuidado con el soldador por que no solo puedes fastidiar las pistas y pads sino que también los integrados y otros componentes por exceso de calor. Y fastidiar la pantalla no hace ninguna gracia...

    Bueno, solo como curiosidad yo tengo este:
    http://www.ebay.es/itm/I2C-Serial-1...ultDomain_3&hash=item19d12546ed#ht_1806wt_689
    Y estoy super contento, le quito pines de entrada en el arduino y se los paso a la mochila para leer los botones, que si sabes como funciona un teclado matricial es muy fácil de cablear. Bueno, no te mareo con eso, era solo curiosidad.

    Ya me contaras como te va con la mochila nueva.

    Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
     
  3. nolomanoloso

    nolomanoloso

    Mensajes:
    686
    Registrado:
    3 Abr 2012
    Ubicación:
    Beniaján
    pues no se como funciona un teclado matricial pero todo es preguntarle a google.... jejeje ademas como aun no he comprado la mochila estoy a tiempo de pedir la tuya, siempre y cuando me tropiece con una buena compatibilidad.... sino almendras... y asi puedo ponerle un teclado para detener bombas, cambiar horas, activar el alimentador o el rellenador automatico..... pensaba poner los botones en serie con resistencias para usar solo una entrada que lo je visto en un tuto y a parte de molar es medio facil.... pero esto tampoco pinta mal.....


    un saludo
     
  4. alsimu

    alsimu

    Mensajes:
    125
    Registrado:
    27 Jun 2009
    Ubicación:
    España
    No digo que la mia sea mejor, que conste. Te lo he puesto solo para que veas que hay más alternativas. Yo en un principio tengo planeado poner el arduino y toda la electrónica en el mueble y la pantalla con su teclado (5 botones en principio) fuera del mueble en una cajita más pequeña, conectada con un cable de teléfono, (4 cables) que componen el i2c.
    Pero otra posibilidad de este tipo de mochilas por ejemplo es que puedes conectar sensores digitales a los botones del tipo boya, de forma que le añades 16 (le caben 16 botones) entradas al arduino.
    Puedes buscar mochilas con entrada de teclado matricial si te parece interesante y sopesar lo que quieres.

    Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
     
  5. nolomanoloso

    nolomanoloso

    Mensajes:
    686
    Registrado:
    3 Abr 2012
    Ubicación:
    Beniaján
    ves? ya me has dao motivos pa liarme mas... jajajaja pues mira, pinchar las boyas de relleno ahi seria la leche, porque asi no peto las entradas del arduino..
    oye, se le podran poner botones capacitivos???? ves? otra cosa pa investigar... jajajaajajajajajajaja se que es lioso, llega a ser algunas veces dificil, pero me gusta muchisimo!!!

    un saludo.
     
  6. alsimu

    alsimu

    Mensajes:
    125
    Registrado:
    27 Jun 2009
    Ubicación:
    España
    Bueno, te digo, un teclado matricial consta de 4 columnas y 4 filas. El controlador se encarga de emitir una señal por cada una de las filas en momentos distintos y si hay algún botón pulsado este deja pasar la señal y se registra en una columna determinada. Con lo que el controlador sabe que botón se ha pulsado. De forma que si, por ejemplo, conectas una fila a 4 boyas y cada una a una columna estas funcionarían como un botón y dejarían pasar la señaĺ.

    Respecto a lo de los botones capacitivos creo que no funcionaría por que no son tan sencillos como un botón normal...

    Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
     
  7. nolomanoloso

    nolomanoloso

    Mensajes:
    686
    Registrado:
    3 Abr 2012
    Ubicación:
    Beniaján
    tengo que estudiarme eso mas a fondo, he visto teclados matriciales pero van por calculo de resistencias... solo ocupas una patilla de entrada y tienes 16 botones posibles.... nah, ya vere como lo monto...

    un saludo.
     
  8. nolomanoloso

    nolomanoloso

    Mensajes:
    686
    Registrado:
    3 Abr 2012
    Ubicación:
    Beniaján
    vale, ya me he enterao de como va esto en raws y columns... tengo que ver como va el codigo (mecanismo de botijo supongo) y a partir de ahi tirar de hurgue... pues, mira asi puedo cambiar la hora del reloj sin tener que pinchar el ordenador... (eso si que creo que sera mas chungo... bueno, asi me entretengo.....).

    ademas ya he visto que el chip del invento este es compatible con el ks0066 que lleva mi lcd.... jejeje

    un saludo.
     
  9. medina

    medina

    Mensajes:
    629
    Registrado:
    1 Jul 2009
    Ubicación:
    españa
  10. alsimu

    alsimu

    Mensajes:
    125
    Registrado:
    27 Jun 2009
    Ubicación:
    España
    En tu caso si solo quieres poner 6 botones y lo quieres distribuir de una forma concreta, no me compraría un keypad ya montado. Siempre estás a tiempo de hacer uno con los botones que compras por separado. Ahora bien, a mi, estéticamente me gusta más el botón del keypad que no el del otro botón que me has enviado. Aunque para gustos colores.
    Si que es verdad que con un keypad como el que pones puedes usar los botones 2, 4, 6 y 8 para dirección y del resto dos para selección y atrás y los otros para accesos directos por ejemplo. O la ABCD como flechas y el asterisco y la almohadilla como selección y atrás y el resto como numérico (esta opción me gusta menos). Yo soy de accesos directos, puedes poner uno para que paren las bombas y dar la comida durante 20 minutos, otro para simular tormenta durante 10 minutos, eeeeeee, no se. Yo tengo 10 botones de accesos directos y aún no tengo muy claro para que los quiero, pero ahí están.

    Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
     
  11. alsimu

    alsimu

    Mensajes:
    125
    Registrado:
    27 Jun 2009
    Ubicación:
    España
    Para que os hagáis una idea este es mi teclado de momento:

    [​IMG]

    No está terminado, en la parte de abajo van los 10 botones de acceso directo. En realidad es un teclado matricial de 4x4 con los botones reubicados como a mi me interesa. Y que conste que opté por esta solución del teclado matricial por lo que comentaba más arriba en este hilo: que mi interface de pantalla tiene entrada para un teclado de estos...

    Estos teclados pueden conectarse al arduino directamente, he visto librerias, pero la verdad es que nunca lo he probado y no se que tal van.

    Un saludo!!

    Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
     
  12. medina

    medina

    Mensajes:
    629
    Registrado:
    1 Jul 2009
    Ubicación:
    españa
    entendido creo que sera ese keypad una buena opcion ,por estetica en vez de los botones a implantar, esta es la idea alsimu del menu

    [​IMG]

    Uploaded with ImageShack.us
    como te comente una vez que haya cambiado los parametros del codigo y salga del menu este siga con el ciclo del codigo.Ç¿por ejemplo ...podria encender la luz si el codigo tiene la orden de que s encienda a las 14 y encenderla a las 12 con el menu?
     
  13. alsimu

    alsimu

    Mensajes:
    125
    Registrado:
    27 Jun 2009
    Ubicación:
    España
    No deberías abrir un nuevo hilo? Esto no tiene mucho que ver con una pantalla i2c...

    Puedes cambiar directamente la hora en el menú, por ejemplo. También puedes encenderla durante x minutos... En la programación se puede hacer casi todo, por no decir todo.

    Yo tengo tres opciones: (On - Off - AUTO), On siempre encendida, Off siempre apagada y auto según programación, la hora del automático la cambio en un menú y en vez de decirle hasta que hora se esta encendiendo le digo cuanto tiempo se está encendiendo...
    Ejemplo, una pantalla mia de un canal de luz se ve mas o menos así:

    Estado: Auto
    Amanecer: 12:00 60min
    Anochecer: 20:00 60min
    Máx.intensidad: 100%

    Otra cosa, cuando te modifique el código una de las primeras cosas que voy ha hacer es cambiarte lo de los minutos de las luces por horas y minutos... Es mucho más claro que lo que tienes ahora.
    Y por último, que es fuente?

    Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
     
  14. medina

    medina

    Mensajes:
    629
    Registrado:
    1 Jul 2009
    Ubicación:
    españa
    ok

    perfecto alsimu ,me ha quedado muy claro
    fuente es void Batery
     
  15. artelio

    artelio

    Mensajes:
    1
    Registrado:
    25 Mar 2019
    Ubicación:
    canena
    Hola, tambien tengo problemas con el i2c, en concreto estoy probando un programa para ver si funciona mi pantalla y me da problemas con esto: lcd.init(); within this context.
    este es mi código y tengo las librerias bien en teoría, me salen en rojito.

    #include <LiquidCrystal_I2C.h>
    #include<Wire.h>

    LiquidCrystal_I2C lcd(0x3F,16,2); //0x20 o 0x27

    void setup() {
    lcd.init();
    lcd.backlight(); // Activar luz de fondo
    lcd.clear(); // Borrar LCD

    lcd.setCursor(7,0); // coordenadas LCD (x,y)
    lcd.print("texto1"); // Mensaje de inicio
    lcd.setCursor(6,1); // coordenadas LCD (x,y)
    lcd.print("texto2"); // Mensaje de inicio

    delay(1000);
    }

    void loop() {
    for(int c=0;c<6;c++){
    lcd.scrollDisplayLeft();
    delay(800);
    }
    for(int c=0; c<6;c++){
    lcd.scrollDisplayRight();
    delay(800);
    }
    }