collapse

* Posts Recentes

O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: I2C LCD  (Lida 6230 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
I2C LCD
« em: 24 de Novembro de 2012, 03:27 »
Boa noite,
Este tópico é de âmbito geral de micro processadores entre outras coisa.

Quero comprar um I2C para um LCD no ebay, e vem a dizer que é para o 16x2. Sendo que é só um "driver" não é possivel colocar num 20x2?

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: I2C LCD
« Responder #1 em: 24 de Novembro de 2012, 04:04 »
Estás a falar de uma coisa que permita ligar um LCD com interface ST7066/HD44780 (daqueles com 16 pinos) a uma interface I2C? Desde que a interface seja a mesma, não interessa qual o tamanho do display (imagino que queiras um 20X4, e não 20x2) , pelo que percebi o que tu queres é so uma coisa que converta I2c para paralelo, não vejo problemas nisso...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: I2C LCD
« Responder #2 em: 24 de Novembro de 2012, 14:00 »
Não é compativel porque isso não são port-expanders i2c, mas sim micro-controladores a correr código, a fazer de slaves i2c, e uma das coisas que está hard-coded é a inicialização, assim como buffers e assim, dai não dar para trocar o lcd por um com mais ou menos linhas ou caracteres.
Podes sempre fazer tu um com um pic pequeno ou um attiny2313.
Avr fanboy

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: I2C LCD
« Responder #3 em: 24 de Novembro de 2012, 14:37 »
Estás a falar de uma coisa que permita ligar um LCD com interface ST7066/HD44780 (daqueles com 16 pinos) a uma interface I2C? Desde que a interface seja a mesma, não interessa qual o tamanho do display (imagino que queiras um 20X4, e não 20x2) , pelo que percebi o que tu queres é so uma coisa que converta I2c para paralelo, não vejo problemas nisso...

Quero mesmo o 20x2 são super baratos no ebay, mas estou sem espaço nas saídas do meu arduino, então queria o I2C, para os 16x2 são relativamente baratos, os 20x2 são o dobro do preço, e sim nas imagens parece um micro, ou seja deve ser a razão de encarecer.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: I2C LCD
« Responder #4 em: 24 de Novembro de 2012, 14:45 »
Usa um shift-register, tens de usar 3 pinos em vez de só 2 do i2c, mas usas o lcd que bem quiseres.
E podes usar shift-registers para ficares com mais saidas digitais.
Avr fanboy

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: I2C LCD
« Responder #5 em: 24 de Novembro de 2012, 14:47 »
Podes por o link exactamente da cena que querias comprar?

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: I2C LCD
« Responder #6 em: 24 de Novembro de 2012, 15:46 »
http://www.ebay.com/itm/IIC-I2C-TWI-SPI-Serial-Interface-Board-Module-Port-For-Arduino-1602-LCD-Display-/160928052178?pt=LH_DefaultDomain_0&hash=item25780f33d2
este é o I2C

http://www.ebay.com/itm/20X2-LCD-Module-Black-Character-without-Backlight-2002-/160925781336?pt=LH_DefaultDomain_0&hash=item2577ec8d58
este é o LCD 20x2 mais barato que está a aparecer

Usa um shift-register, tens de usar 3 pinos em vez de só 2 do i2c, mas usas o lcd que bem quiseres.
E podes usar shift-registers para ficares com mais saidas digitais.
O shit-register não é feito pelo comando enviado pelo porto? que neste caso será a comunicação I2C?

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: I2C LCD
« Responder #7 em: 24 de Novembro de 2012, 15:58 »
A idéia do shift register é que com tres pinos consegues controlar o LCD (ou outras coisas).
Espreita isto por exemplo:
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
Só precisarias do LCD + 1 shift register que até consegues comprar barato cá em PT... ;)

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: I2C LCD
« Responder #8 em: 24 de Novembro de 2012, 16:17 »
A idéia do shift register é que com tres pinos consegues controlar o LCD (ou outras coisas).
Espreita isto por exemplo:
https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
Só precisarias do LCD + 1 shift register que até consegues comprar barato cá em PT... ;)
há aqui qualquer coisa que me está a falhar.

No esquema que me deste só têm 2 coneções tirando a alimentação contrataste etc.

A ideia que tenho dum LCD 16x2 é que depois de fazer as inicializações, via porto paralelo, faço o "clock" (Enable) configuro o RS e o R/W etc.

Como é que IC só usa 4 pinos de dados?

como já tinha dito, já encontra I2C a dizer que eram micros, neste caso não dizem, porque é que eles fazem a inicialização automática e não deixam ao programador escolher?

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: I2C LCD
« Responder #9 em: 24 de Novembro de 2012, 20:50 »
Tens duas versoes diferentes da coisa...
Primeiro aparece Non Latching Shift Register, que usa só 2 pinos de dados, e mais abaixo tens Latch Shift Register, que usa mais 1 pino de dados.
A idéia é em vez de teres X outputs do arduino, teres apenas 2 ou 3 ligados ao shift register. Um dos pinos é o clock, o outro pino indica qual é o valor do pino do output seguinte. A diferenca entre ter o terceiro pino ou não é que esse pino serve para alterar os outputs todos de uma vez quando já tem todos o valor certo, em vez dos valores irem mudando de cada vez que há um clock.
Experimenta ler isto se quiseres perceber melhor:
http://www.instructables.com/id/The-74HC164-Shift-Register-and-your-Arduino/

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: I2C LCD
« Responder #10 em: 25 de Novembro de 2012, 00:53 »
Tens duas versoes diferentes da coisa...
Primeiro aparece Non Latching Shift Register, que usa só 2 pinos de dados, e mais abaixo tens Latch Shift Register, que usa mais 1 pino de dados.
A idéia é em vez de teres X outputs do arduino, teres apenas 2 ou 3 ligados ao shift register. Um dos pinos é o clock, o outro pino indica qual é o valor do pino do output seguinte. A diferenca entre ter o terceiro pino ou não é que esse pino serve para alterar os outputs todos de uma vez quando já tem todos o valor certo, em vez dos valores irem mudando de cada vez que há um clock.
Experimenta ler isto se quiseres perceber melhor:
http://www.instructables.com/id/The-74HC164-Shift-Register-and-your-Arduino/

Acho que já percebi, pensei que te referias em mexer nos shift register do LCD.

Mas acho que não posso usar dessa forma, já tenho um teclado PS2 ligado, que usa o clock e data, só tenho 1 saída digital e 3 entradas analógicas sobrantes :/

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: I2C LCD
« Responder #11 em: 25 de Novembro de 2012, 02:36 »
Os pinos analógicos tambem são pinos digitais.
3 pinos servem perfeitamente para ligar um shift-register um 74hc595.
Avr fanboy

Offline filipe89

  • Mini Robot
  • *
  • Mensagens: 164
Re: I2C LCD
« Responder #12 em: 25 de Novembro de 2012, 13:58 »
Ok vou tentar se tiver espaço de código :p

Então qual é a justificação do uso de 4 pinos de dados no LCD?

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: I2C LCD
« Responder #13 em: 25 de Novembro de 2012, 14:03 »
É assim que o chip que controla o lcd funciona.
Avr fanboy

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: I2C LCD
« Responder #14 em: 25 de Novembro de 2012, 15:50 »
Então qual é a justificação do uso de 4 pinos de dados no LCD?
É uma interface paralela, manda vários bits ao mesmo tempo... É uma questão de escolha, podes até ligar os 8 bits em vez de quatro. Se tiveres uma interface paralela podes mandar logo 1 byte por cada clock, porque cada fio leva um bit diferente. Se for série, como só há 1 fio para os dados só vai 1 bit de cada vez.