Adquira estes componentes na Loja do Lab de Garagem

Neste tutorial vamos mostrar como utilizar o LCD 16x2 com PCF8574 e Arduino. Para quem não sabe o que é o PCF8574, temos um tutorial explicando e implementando o PCF8574 com Arduino. Clique aqui para o tutorial sobre PCF8574.

Antes de mais nada, baixe a biblioteca para a versão 1.0 da IDE do Arduino: biblioteca para a versão 1.0 da IDE do Arduino.

Caso você esteja utilizando uma versão mais antiga(002x) da IDE do Arduino, baixe esta biblioteca: biblioteca para IDE de versões anteriores.

Depois de baixado a bilbioteca, extraia para a pasta "libraries" localizada dentro da pasta da IDE do Arduino.

Agora, faça a seguinte ligação:

Você irá ligar o LCD no PCF8574 e um potenciometro para aumentar ou diminuir o contraste. E por fim o PCF8574 no Arduino como está mostrado na imagem.

Depois de feito a ligação, abra a IDE do Arduino e vá em File/Examples/LiquidCrystal_I2C e clique em "Hello World". Irá abrir a seguinte programação:

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

LiquidCrystal_I2C lcd(32,16,2); // set the LCD address to 0x20 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()
{
}

Agora, selecione a versão da placa Arduino(UNO, Duemilanove, etc) e a porta em que a placa Arduino está conectado. E clique em UPLOAD.

Ao passar a programação, ajuste o contraste pelo potenciomêtro. Pronto! A frase "Hello, world!" irá aparecer no LCD.

E é isso, pessoal!! Até a próxima!! Se tiver dúvidas, poste aqui no blog! Para sugestões de tutoriais, clique aqui! Você pode ver outros tutoriais também, clicando aqui! E projetos abertos desenvolvidos pelos garagistas, clicando aqui!!

Referências:

http://arduino.cc/playground/Code/LCDi2c

http://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/

 

Exibições: 30289

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Roberto dos Santos Flozi em 29 agosto 2017 às 16:31

Boa tarde amigos gostaria de saber se posso usar o PCF8574 num LCD de 40 colunas por 2 linhas e se a biblioteca do arduino suporta esse LCD.

Obrigado. 

Comentário de Kelhium Kassandro Kayser em 29 maio 2016 às 19:13

Pessoal, estou com PCF8574P, IDE 1.6.7 e não estou conseguindo fazer funcionar, aparece só as primeiras letras de cada linha. Usando a IDE 0022 esta funcionando normalmente, mas essa IDE é muito ruim, alguém sabe a solução para o problema nessa IDE mais nova?    Ja usei varias bibliotecas e nenhuma funcionou direito... ????

Comentário de Cleber Soares em 4 dezembro 2015 às 13:37

Boa tarde Carlos,
irei realizar os testes com base nas informações que passou e retorno com o resultado.
Grato!!

Comentário de Carlos Furtado Barata em 4 dezembro 2015 às 0:03

Boa noite Cleber, estava passando pelo mesmo problema, resolvi desinstalar a IDE 1.6.6 que eu estava usando e baixei a IDE 0022, coloquei tbm dois resistores de 10k nos pinos 14 e 15 fechando para VCC, agora o código esta rodando perfeito.

Espero que lhe ajude. 

Comentário de Cleber Soares em 2 dezembro 2015 às 16:53

Olá Diego Previero, estava esperando chegar meu lcd com I2c soldado,ou seja já sai 04 fios apenas que são 02 para alimentação + 02 para os analógicos

veja

dai não tem erro!

mais mesmo assim,com essa peça não imprime nada na tela.

já troquei até de Arduino para ver e nada.!

muito estranho isso.;

não consigo fazer funcionar nem com reza brava.

e voltando o projeto abaixo eu troquei sim o PCF e ambos deram isso.

Vou trocar agora a biblioteca pois só resta isso,você baixou a sua indicado desse post ?

Comentário de Diego Previero em 27 novembro 2015 às 19:33

Cleber testei seu código e ele funcionou perfeitamente aqui no meu display como vc pode ver na foto abaixo:

A única coisa que alterei foi justamente o endereço do PCF pois o meu é o "P", sendo assim excluímos a hipótese de ser erro de código, seu código só precisa de uns ajustes como a adição do lcd.clear() no inicio do loop para excluir o lixo das exibições anteriores.

Se vc diz que o seu é o "P" também e está no endereço 0x20 ou seu PCF está com defeito ou pode ser erro de montagem. Confere a montagem dos pinos e substitui o CI por outro igual e vê se funciona.

Antes disso fecha o arduino e exclui a pasta da biblioteca liquidcrystal da pasta libraries e baixa ela novamente, pode ser que sua lib está corrompida, se não funcionar tentas os ajustes de hardware que mencionei. Uma hora dá certo, tenha fé... hehe

Comentário de Cleber Soares em 27 novembro 2015 às 13:39

se eu colocar
void loop()
{
  lcd.clear();
lcd.setCursor(0,0);
lcd.print("Olá");
lcd.setCursor(0,1);
lcd.print("Seja Bem vindo");
}

ele imprime exatamente assim na tela
O ( que deveria ser "olá")
S ( que deveria ser "Seja Bem vindo")

o esquema de ligação que estou usando é
http://pt.slideshare.net/thiagofpbr/arduino-genius-com-display-lcd-...
que é o mesmo esquema de ligação desse post aqui!

o motivo de tudo isso é que queria montar esse Genius com visor de LCD

Comentário de Cleber Soares em 27 novembro 2015 às 13:34

Veja o serial monitor

Scanning...
I2C device found at address 0x20 !
done

Comentário de Diego Previero em 27 novembro 2015 às 13:14

Porém vc diz que consegue imprimir o "Olá" se escrever letra por letra né... Tenta incluir um lcd.clear(); na primeira linha do seu loop(). Assim que chegar em casa vou testar seu código pra ver...

Comentário de Diego Previero em 27 novembro 2015 às 13:04

Olá Cléber, o erro de sintaxe deve ser pq qdo vc copia e cola aqui da pagina ele está levando junto códigos HTML, vou postar aqui o link direto do meu github daí vc copia de lá:

https://github.com/diegopreviero/Arduino-1/blob/master/i2cscanner/i...

Os PCF8574 "A" e "P" seguem o esquema de endereçamento abaixo:

Já os PCF8574 sem letras:

Qualquer coisa dá um grito que tamo aqui ;)

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço