Senhores, meu problema é o seguinte, toda vez que ligo o arduino as informações não são mostradas no display, para isso acontecer eu preciso acionar o botão de reset as vezes mais de um vez para o display funcione corretamente....
Alguém, sabe o porque isso está acontecendo e como corrigir?

obs: Isso não acontece apenas no meu código e tbm com os 3 códigos de exemplos que acompanham o biblioteca (LiquidCrystal_I2C).

Muito obrigado pela atenção!!
Abraços

Exibições: 4393

Responder esta

Respostas a este tópico

Aí cara, posta o código, ou mais informações ae, tipo, quantas linhas por quantos caracteres é o seu lcd? a pinagem, o datasheeet, o circuito, posta aeee

Boa dia, João!!

Vamos lá... como eu disse, o problema esta em qualquer codigo até com os exemplos da biblioteca.

Esse é o simples "Hello, world!"...

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

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
lcd.init(); // initialize the lcd

// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}

void loop()
{
}

o Displau utiliza os pinos A4 e A5 para comunicação

SDA - A4

SCL - A5

Quando eu termino o UPLOAD do código fica passando um monte de letras correndo pela tela...
Resumindo...o display só mostra as informações corretas na tela depois que eu reiniciar o arduino, as vezes mais de uma vez.

Muito obrigado pela atenção.

colocou os resistores de pull-up

Quando o display é ligado, ele leva um tempo até estar apto a receber informações. Geralmente esse tempo fica em torno de 15ms. Pode ser que seu display leve mais tempo para iniciar. Para descartar essa possibilidade simplesmente adicione um delay de uns 200ms antes da linha "LiquidCrystal_I2C lcd(0x27,16,2);". Assim, quando o arduino enviar os dados de configuração, ele já vai estar operável.

Mauricio, a chamada dessa linha ;e feita antes do setup() e portanto não tem como usar a função delay()

tentei colocar delay antes e depois da chamada da função lcd.init(); e mesmo assim não deu certo..
O que mais ou posso fazer?

Falha minha aqui. É antes da linha "lcd.init()" do setup.

Isso foi umas primeira coisas que eu fiz e mesmo assim não funcionou..coloquei antes, depois, antes e depois e nada!   ta danado! srsr

Olá. Eu tenho esse display e não acontece isso comigo. Eu não chamo essa biblioteca I2c.  Percebi também que não tem uma linha para o "endereçamento" do dispositivo I2c (// Connect via i2c, default address #0 (A0-A2 not jumpered)
LiquidCrystal lcd(0);). Estou usando esse display agora e não tenho problemas. Eu coloquei um arquivo zip com outros exemplos. Espero que funcione. Tenta esse código:

/*
Demonstration sketch for Adafruit i2c/SPI LCD backpack
using MCP23008 I2C expander
( http://www.ladyada.net/products/i2cspilcdbackpack/index.html )

This sketch prints "Hello World!" to the LCD
and shows the time.

The circuit:
* 5V to Arduino 5V pin
* GND to Arduino GND pin
* CLK to Analog #5
* DAT to Analog #4
*/

// include the library code:
#include <Wire.h>
#include <LiquidCrystal.h>

// Connect via i2c, default address #0 (A0-A2 not jumpered)
LiquidCrystal lcd(0);

void setup() {
// set up the LCD's number of rows and columns:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);

lcd.setBacklight(HIGH);
delay(500);
lcd.setBacklight(LOW);
delay(500);
}

Anexos

Peraí Hugo, 

Voce esta usando configuração de LCD 16 characteres com dua linhas:

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

Mas pela foto parece ser um display muito maior!!

Deve estar usando configuração inadequada, não?

Quantas linhas e quantos caracteres tem o seu display|?

De fato José, meu display é 4x20 e estou usando a seguinte linha...

LiquidCrystal_I2C lcd(0x27,20,4);

Sera que eu devo mudo o 0x27?

Tenta Assim 

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

//Addr: 0x3F, 20 chars & 4 lines
LiquidCrystal_I2C lcd(0x3F,20,4); 

void setup()
{
    lcd.init(); 
    lcd.backlight();
    lcd.setCursor(0, 0);
    lcd.print("Hello");
}
void loop()
{


}

fonte http://bradsduino.blogspot.com.br/2012/10/sainsmart-iici2ctwi-seria...

Cabecavil, com o seu código o display simplesmente não funcionou...

Fiz o upload e ficou a mensagem do código anterior.Coloquei a linha LiquidCrystal_I2C lcd(0x3F,20,4);  no meu código no lugar  de LiquidCrystal_I2C lcd(0x27,20,4); e mesmo assim não funcionou.
O que mais pode ser??
Muito obrigado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço