domingo, 4 de dezembro de 2011

LCD





OK, agora que estamos claros sobre o tipo de LCD que estamos falando, é hora de olhar também para as diferentes formas que vêm em





Embora eles exibem apenas o texto, eles fazem alguns em muitas formas: da parte superior esquerda temos uma 20x4 com texto branco sobre fundo azul, uma 16x4 com texto preto em verde, 16x2 com texto branco em azul e uma 16x1 com texto preto em cinza.
A boa notícia é que todas essas exposições são 'swap' - se você construir seu projeto com um pode desligá-lo e utilizar outro tamanho. Seu código pode ter que ajustar para o tamanho maior, mas, pelo menos, a fiação é a mesma!





Para esta parte do tutorial, vamos estar usando LCDs com uma faixa única de 16 pinos, como mostrado acima.Existem também alguns com duas linhas de 8 pinos da seguinte forma:





Estes são muito mais difíceis de breadboard. Se você quiser alguma ajuda na fiação estes acima, confira esta página

Prepare-se!




OK agora você tem o seu LCD, você também vai precisar de algumas outras coisas. Primeiro é um potenciômetro 10K. Isso permitirá que você ajuste o contraste. Cada LCD terá configurações de contraste um pouco diferente assim que você deve tentar obter algum tipo de trimmer. Você também vai precisar de algum cabeçalho de 0,1 "- 16 pinos longos





Se o cabeçalho é muito longo, apenas corte / encaixe-curta!
Em seguida, você vai precisar soldar o cabeçalho para o LCD. Você deve fazer isso, não é OK para apenas tentar 'encaixe' do LCD!





A maneira mais fácil, sabemos de fazer isso é furar o cabeçalho em uma breadboard e depois sentar em cima do LCD, enquanto a soldagem. isso mantém-se firme.

De energia e luz de fundo

OK agora vamos para a parte interessante! Obtenha seu LCD ligado na breadboard

Agora vamos fornecer energia ao breadboard. Conectar +5 V para o trilho vermelho e terra para o trilho azul.



Em seguida, vamos conectar-se a luz de fundo para o LCD. Conectar o pino 16 para terra e pin 15-5 V através de um resistor em série. Para calcular o valor do resistor em série, procure a luz de fundo corrente máxima ea queda de tensão típica luz de fundo da folha de dados. Subtraia a queda de tensão de 5 volts, em seguida, dividir pela corrente máxima, em seguida, volta até o valor do resistor próximo padrão. Por exemplo, se a queda de tensão é 3.5V backlight típica e corrente nominal é de 16mA, então o resistor deve ser (5-3,5) / 0,016 = 93,75 ohms ou 100 ohms quando arredondado para um valor padrão. Se você não consegue encontrar a folha de dados, então deve ser seguro usar um resistor de 220 ohm, apesar de um valor tão alto pode fazer a luz de fundo em vez dim.



Conectar o Arduino até o poder, você verá as luzes se backlight

Note que alguns LCDs de baixo custo não vêm com uma luz de fundo. Obviamente que nesse caso você deve apenas continuar.

Circuito de contraste



Em seguida, vamos colocar o pot outro lado, ele vai para o lado mais próximo do pino 1





Conecte um lado do pote de +5 V e outro para a terra (não importa o que vai sobre o lado). No meio da panela (limpa) conecta ao pino 3





Agora vamos conectar a lógica do LCD - este é separada da luz de fundo! O pino 1 aterrado eo pino 2 é +5 V





Agora ligue o Arduino, você vai ver a luz backlight para cima (se houver), e você também pode torcer o pot para ver a primeira linha de retângulos aparecer.






Isto significa que você tem a lógica de retroiluminação e contraste tudo certo. Não continue a menos que você tem este figurado para fora!

Fiação de ônibus

Agora vamos terminar a fiação ligando as linhas de dados. Existem 11 linhas de ônibus: D0 através D7 (8 linhas de dados) e RS , PT , e RW . D0-D7 são os pinos que os dados brutos que enviamos para o visor. RS pino permite que o microcontrolador dizer o LCD se quer exibir os dados (como em um ASCII de caracteres) ou se é um byte de comando (como, alterar posistion do cursor). PT é o pino 'enable' linha usamos isso para dizer o LCD quando os dados está pronto para a leitura. A RW pino é usado para definir a direção - se queremos escrever para o display (comum) ou ler a partir dele (menos comum)
A boa notícia é que nem todos estes pinos são necessários para nos conectar ao microcontrolador (Arduino). RW por exemplo, não é necessário se estamos apenas escrevendo para o display (que é a coisa mais comum de fazer de qualquer maneira), de modo podemos 'tie-lo' a terra. Há também uma maneira de falar com o LCD utilizando apenas 4 pinos de dados em vez de 8. Isso economiza nos 4 pinos! Por que você nunca quer usar 8 quando você pode usar 4?Não estamos 100% de certeza, mas pensamos que, em alguns casos, a sua mais rápido usar 8 - que leva o dobro do tempo de usar 4 - e que a velocidade é importante. Para nós, a velocidade não é tão importante, então vamos poupar alguns pinos!
Então, para recapitular, precisamos de 6 pinos: RS, EN, D7, D6, D5, e D4 para falar com o LCD.
Nós estaremos usando o LiquidCrystal biblioteca para falar com o LCD assim que um monte de trabalho chato de pinos de fixação e como é cuidado. Outra coisa legal sobre esta biblioteca é que você pode usar qualquer pino do Arduino para conectar-se os pinos de LCD. Então, depois de passar por este guia, você encontrará mais fácil de trocar em torno dos pinos, se necessário
Como mencionado, não estará usando o RW pino, para que possamos amarrá-lo ir chão. Isso é o pino 5 como bere mostrado:





Em seguida é a RS pin # 4. Vamos usar um fio marrom para conectá-lo ao pino digital do Arduino # 7





Em seguida é a EN pin # 6, vamos usar um fio branco para conectá-lo ao Arduino digital # 8





Agora vamos conectar os pinos de dados. DB7 é o pino # 14 no LCD e se conecta com um fio de laranja para Arduino # 12





Em seguida, estão os restantes três linhas de dados, DB6 (amarelo) DB5 (verde) e DB4 (azul) que se conectar a
Arduino # 11, 10 e 9





Isto é o que você terá em sua mesa:





Abra o Arquivo → Exemplos → LiquidCrystal → HelloWorld esboço exemplo
Agora vamos precisar atualizar os pinos. Procure esta linha:
LiquidCrystal lcd ( 12 ,  11 ,  5 ,  4 ,  3 ,  2 ) ;
E mude para:
LiquidCrystal lcd ( 7 ,  8 ,  9 ,  10 ,  11 ,  12 ) ;
Para coincidir com a mesa de pinos que nós fizemos.
Agora você pode compilar e fazer o upload do esboço



Ajustar o contraste, se necessário





Você pode, naturalmente, utilizar qualquer tamanho ou LCD a cores, tal como um LCD 20x4:





Ou um preto em verde:





A coisa agradável sobre o negro em verdes é que você pode remover a luz de fundo. Às vezes, eles não vêm com um!


Várias linhas

Uma coisa que você vai querer prestar atenção para é como o LCD controla as mensagens grandes e múltiplas linhas.Por exemplo, se você mudou esta linha
lcd. print ( "Olá, mundo!" ) ;
A esta:
lcd. print ( "Olá, mundo esta é uma mensagem muito longa!" ) ;
O LCD 16x2 vai cortar nada de passado o 16 º caractere:



Mas o LCD 20x4 vai 'quebrar' a primeira linha para a terceira linha! (Da mesma forma a linha 2 corre para o quarto) Isso parece realmente bizarro, mas a sua memória como o LCD configurado no interior. Isso provavelmente deve ter sido feito diferente, mas hey, que é o que temos de viver. Esperamos que vamos ter uma biblioteca LCD futuro que é muito inteligente e linhas de wraps, mas por agora estamos presos. Então, ao escrever longas filas para o LCD contar seus personagens e se certificar de que você não acidentalmente saturação das linhas!


Backlight RGB LCDs

Temos agora um pouco diferentes ações backlight RGB LCDs . Estes trabalhos LCDs como o tipo de caractere normal, mas a luz de fundo tem três LEDS (vermelho / verde / azul) para que você possa gerar qualquer cor que você quiser. Muito útil quando você quer ter alguma informação veiculada ambiente.
Depois de ter ligado o LCD e testou-o como descrito acima, você pode conectar os LEDs à analógica PWM fora pinos do Arduino para precisamente definir a cor. Os pinos PWM são fixos em hardware e há 6 deles, mas três já são usadas por isso vamos usar os restantes três pinos PWM. Conectar o pino LED vermelho para Digital 3, o pino de LED verde (pino 17 do LCD) para digital 5 eo pino LED azul (pino 18 do LCD) para digital 6. Você não precisa de nenhum resistências entre os pinos LED e os pinos do Arduino porque resistores são já soldada sobre o LCD personagem para você!





Agora carregar este código ao seu Arduino para ver o LCD redemoinho de luz de fundo! ( Clique aqui para ver o que parece em ação )





/ / Incluir o código da biblioteca: 
# include <LiquidCrystal.h> 
# include <Wire.h>
 
# Define REDLITE 3 
# define GREENLITE 5 
# define BLUELITE 6
 
/ / Inicializar a biblioteca com os números da interface pinos 
LiquidCrystal lcd ( 7 ,  8 ,  9 ,  10 ,  11 ,  12 ) ;
 
/ / Você pode alterar o brilho geral em faixa de 0 -> 255 
int brilho =  255 ;
 
vazio de configuração ( )  { 
  / / set up número do LCD de linhas e colunas: 
  . lcd começar ( 16 ,  2 ) ; 
  / / Imprimir uma mensagem para o LCD. 
  lcd. print ( "RGB 16x2 Display" ) ; 
  lcd. setCursor ( 0 , 1 ) ; 
  lcd. print ( "Multicolor LCD" ) ;
 
  brilho =  100 ; 
}
 
 
void loop() {
  for (int i = 0; i < 255; i++) {
    setBacklight(i, 0, 255-i);
    delay(5);
  }
  for (int i = 0; i < 255; i++) {
    setBacklight(255-i, i, 0);
    delay(5);
  }
  for (int i = 0; i < 255; i++) {
    setBacklight(0, 255-i, i);
    delay(5);
  }
}
 
 
 
vazio setBacklight ( uint8_t r ,  uint8_t g ,  uint8_t b )  { 
  / / normalizar o LED vermelho - a sua mais brilhante do que o resto! 
  r = map ( r ,  0 ,  255 ,  0 ,  100 ) ; 
  g = map ( g ,  0 ,  255 ,  0 ,  150 ) ;
 
  r = map ( r ,  0 ,  255 ,  0 , luminosidade ) ; 
  g = map ( g ,  0 ,  255 ,  0 , luminosidade ) ; 
  b = map ( b ,  0 ,  255 ,  0 , luminosidade ) ;
 
  / / Anodo comum para inverter! 
  r = map ( r ,  0 ,  255 ,  255 ,  0 ) ; 
  g = map ( g ,  0 ,  255 ,  255 ,  0 ) ; 
  b = map ( b ,  0 ,  255 ,  255 ,  0 ) ; 
  Serial. print ( "R =" ) ; Serial. imprima ( r , dezembro ) ; 
  Serial. print ( "G =" ) ; Serial. print ( g , dezembro ) ; 
  . Serial print ( "B =" ) ; . Serial println ( b , dezembro ) ; 
  analogWrite ( REDLITE , r ) ; 
  analogWrite ( GREENLITE , g ) ; 
  analogWrite ( BLUELITE , b ) ; 
}

BÔNUS! fazendo o seu próprio personagem

Você pode querer ter caracteres especiais, por exemplo, este sensor de temperatura, criamos um "grau" símbolo (º)


Nenhum comentário:

Postar um comentário