liquidCrystal I2C

Este debate contiene 8 respuestas, tiene 5 mensajes y lo actualizó  eloisa hace 1 año, 6 meses.

  • Autor
    Publicaciones
  • #3189
     josromrom1 
    Participante

    Buenas tardes,

    Tengo una pantalla liquidCrystal 16×2 con el módulo I2C integrado.

    Me he bajado dos librerías directamente desde IDE, pero no va muy bien.

    ¿Alguien me puede explicar como se maneja?

    Un saludo

    #3200
     pablo 
    Jefe de claves

    Hola @josromrom1!

    Parece que hay algún problema con la librería LiquidCrystal_I2C y las nuevas versiones de Arduino IDE así que toca reparar la librería.

    Para hacerlo, ve a tu carpeta de Arduino (que está dentro de “Documentos” si usas Windows) > libraries > LiquidCrystal_I2C (entiendo que tienes la librería instalada, si no, hazlo) y abre el archivo LiquidCrystal_I2C.cpp con el bloc de notas. Ahora busca al inicio del archivo un bloque que diga algo así:

    inline size_t LiquidCrystal_I2C::write(uint8_t value) {
     send(value, Rs);
     return 0;
    }

    Lo único que hay que hacer es cambiar ese return 0; por return 1; y que quede algo así:

    inline size_t LiquidCrystal_I2C::write(uint8_t value) {
     send(value, Rs);
     return 1;
    }

    Si actualizas la librería tendrás que volver a hacerlo, a menos que la actualización sea para solucionar el bug, claro…

    ¿Por qué? La función print() utiliza la función write() para enviar byte a byte la cadena que queremos mostrar por pantalla. Esta última debe contestar con el número de bytes procesados (que debe ser 1) pero por algún motivo han escrito la librería para que siempre devuelva 0. Supongo que Arduino IDE ignoraba la respuesta hasta que en las últimas versiones se ha empezado a verificar el retorno de esta función para detectar errores, por lo que al devolver 0 se entiende que no se ha podido procesar el dato enviado y se aborta la escritura.

    #3206
     josromrom1 
    Participante

    Gracias @pablo,

    Ahora sí funciona perfectamente,

    un saludo

    #3342
     pablo-aguayo 
    Participante

    Hola
    Pues mi problema es otro con este mismo módulo:
    Tras compilar una sencilla prueba, tengo el error:
    ‘POSITIVE’ was not declared in this scope
    LiquidCrystal_I2C lcd(I2C_ADDR,2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

    En Google proponen otra librería diferente a la de Marco Swartwz…

    En concreto descargar esta librería:
    http://magnusglad.se/LiquidCrystal_I2C.rar

    ¿A alguien más le pasa este problema?

    #3350
     pablo-aguayo 
    Participante

    Confirmo lo dicho anteriormente.
    Tras la instalación e instanciación de la librería reseñada en el enlace, en el código aparecen una serie de includes bastante numerosa, pero el caso es que ya funciona…
    Saludos

    #3386
     miguelazores 
    Participante

    Hola, no hago mas que intentar encontrar la forma de poder usar el modulo I2C pero tras instalar varias librerías y ver varios tutoriales todo me de error.. he intentado lo que ya se ha hablado en el foro y tampoco cambia nada. ¿Hay alguna librería ya modificada?

    #3407
     eloisa 
    Jefe de claves

    ¡Hola makers!

    Hemos modificado la librería que os recomendamos de Marco Schwartz y hemos creado un aprende dentro del curso “Pantalla de caracteres LCD 1602/2004 con Arduino”. Aquí tenéis el enlace:

    http://fabricadigital.org/lesson/como-usar-el-modulo-i2c-con-una-pantalla-lcd-16022004/

    ¡Probadla y contadnos qué tal os va!

    #4046
     miguelazores 
    Participante

    buenas, he estado probando la nueva libreria y tras desinstalar todas las anteriores me sigue dando el error de “invalid conversion from ‘int’ to ‘t_backlighPol’ [-fpermissive]”, he añadido y copiado el codigo exactamente y no me funciona.

    #4047
     eloisa 
    Jefe de claves

    Hola Miguel.

    ¿Qué versión de Arduino IDE estás usando? Comparte el código que has copiado y pega el error completo, es decir, todo lo que te sale cuando le das a compilar.

    A ver si averiguamos qué está pasando 🙂

Viendo 9 publicaciones - del 1 al 9 (de un total de 9)

Debes estar registrado para responder a este debate.

©2017 Fábrica Digital desde Jerez de la Frontera, España.

717 717 452 (Teléfono y Whatsapp) / hola@fabricadigital.org

De Lunes a Jueves de 09:00 a 18:00. Viernes de 09:00 a 14:00.

Calle del Comercio, 18, 11407 Jerez de la Frontera, Cádiz. - Cómo llegar

Información Legal - Aceptamos

 

Inicia Sesión con tu Usuario y Contraseña

o    

¿Olvidó sus datos?

Create Account