Go Down

Topic: Avería en Arduino Serial IIC/I2C/TWI 2004 (Solucionado) (Read 10605 times) previous topic - next topic

fm

La otra librería es muy específica. Esta esta diseñada para controlar muchos más módulos y configuraciones de LCDs.
   

Ethoo

Me cago en la leche. Ahora si que funciona, por lo menos el "Hello Word fm I2C"

:smiley-mr-green:


Ahora a ver si soy capaz de implementarlo en mi código.

fm

Bien!  Venga un saludo y a disfrutarla.
   

Ethoo

Muchísimas gracias por todo, que soy un mal educado.  :smiley-roll:


Ahora a empollarme todo bien, a ver que soy capaz de exprimir de todo esto.

Lo mismo hasta soy capaz de sacar pececitos por la pantalla  :smiley-yell:

Un abrazo.

fm

   

SOLEARES

Hola,
Yo también estoy utilizando la libreria de fm.
Estoy utilizando un display I2C de Ywrobot.
Realizo el ejemplo "HelloWord diversos adapatadores" y me funciona correctamente, pero quisiera que el display estuviese apagado (la retroiluminación), pero no se que comando utilizar.
Lo he probado con
lcd.setBacklight (LOW);
pero no me funciona. ¿Alguien me puede echar una mano?.
Gracias de antemano.
Saludos,

fm

Si, en principio tienes que configurar la polaridad y el bit que controla el backlight. Después, si la polaridad es POSITIVE, high encenderá el LCD y low lo apagara. Negativa en caso contrario.

De todas formas, ese LCD tiene un fallo de diseño importante donde la base del transistor va a pelo a un pin del AVR. Ya he publicado unos cuantos esquemáticos con la pulga, con lo que es mejor dejar el backlight como esta.
   

SOLEARES

Gracias por la respuesta fm.
La cuestión es que estoy haciendo una alarma que tiene un LCD y me interesa poder manejar la retroiluminación desde el programa, puesto que hay momentos en que no es necesaria esta iluminación.
Necesito saber que comando debo introducir dentro del programa para poder encender y apagar la retroilumincación según sea necesario.

fm

LCD.setBacklight es el método. Los puedes ver en el fichero LCD.h
   

SOLEARES

Hola fm. Lo siento mucho, pero es que no se como hacerlo. He utilizado el comando que me has indicado (evidentemente mal) y me da un error al compilar.
Por favor, podrías indicarme como utilizarlo en el código. Adjunto tu ejemplo modificado, que tan solo quiero que el display esté apagado y también me gustaría saber como gestionar para encenderlo en algún momento de la programación.

Code: [Select]
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

//this is for dfrobot i2c LCD board
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

void setup()
{

  lcd.begin(16,2);               // initialize the lcd

  LCD.setBacklight = LOW;
  lcd.home ();                   // go home
  lcd.print("Hello, ARDUINO "); 
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print (" FORUM - fm   ");
  delay ( 1000 );
 
}

void loop()
{}


Por cierto, he probado a poner:

lcd.setBacklight

y me da otro error diferente.
Saludos,

SOLEARES

Bueno, por fin lo he conseguido.
El codigo que he utilizado es el siguiente:

Code: [Select]
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

//this is for dfrobot i2c LCD board
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

void setup()
{

  lcd.begin(16,2);               // initialize the lcd
 
 
}

void loop()
{
  lcd.home ();                   // go home
  lcd.print("Hello, ARDUINO "); 
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print (" FORUM - fm   ");
  delay (5000);
  lcd.setBacklight (LOW);     // apaga la retroiluminación
  delay (5000);
  lcd.setBacklight (HIGH);    // enciende la retroiluminación
  delay ( 5000 );
}


El comando lcd debe ir en minúsculas.

fm, gracias por tu tiempo y por esta librería.


fm

lcd es el objeto que has creado y setBacklight es un método.
Si miras en el fichero de cabecera (.h) de LCD, podrás ver todos los métodos que soporta. Esta donde hayas instalado la librería.

Para ese método y para que te funcione en el futuro debería usar:
BACKLIGHT_ON y BACKLIGHT_OFF en vez de LOW o HIGH.

También puedes usar: lcd.backlight(); y lcd.noBacklight();


Me alegro que te funcione.
   

Ethoo

Pues no me queda a mi nada que emprender de esto.  :~

maxid

El que pregunta aprende, el que responde aprende a responder.


Go Up