Índice:

Rolar linha única do LCD: 4 etapas (com imagens)
Rolar linha única do LCD: 4 etapas (com imagens)

Vídeo: Rolar linha única do LCD: 4 etapas (com imagens)

Vídeo: Rolar linha única do LCD: 4 etapas (com imagens)
Vídeo: tv philips 42 pfl4908g/78 imagem trêmula ou congelando, como resolver! 2024, Novembro
Anonim
Image
Image

A Biblioteca de Cristal Líquido tem duas funções úteis scrollDisplayLeft () e scrollDisplayRight (). Essas funções rolam por todo o display. Ou seja, eles rolam ambas as linhas em um LCD 1602 e todas as quatro linhas em um LCD 2004. O que geralmente precisamos é a capacidade de rolar uma única linha para essas telas, em vez de rolar a tela inteira.

Este Instructable fornece duas funções adicionais, scrollInFromRight (linha para exibir o texto, string a ser rolada) e scrollInFromLeft (linha para exibir o texto, string a ser rolada). Estas duas funções que rolam as linhas na tela LCD combinadas com as duas funções, scrollLineRight (linha para exibir o texto, string a ser rolada) e scrollLineLeft (linha para exibir o texto, string a ser rolada) do meu Instructable anterior, que apresentou funções para rolar linhas fora da tela, nos oferece várias maneiras poderosas de controlar como o texto pode ser apresentado ou removido de uma tela LCD.

Etapa 1: O que é necessário

Ligar
Ligar

- Um display LCD autônomo 1602 ou 2004, ou blindagem LCD

- Veja a nota abaixo sobre o uso de um display LCD 2004

- Um Arduino UNO R3 ou clone

- Um cabo USB para conectar o Arduino a um computador

- Meio tamanho, 400 pontos de amarração, placa de ensaio

- O IDE Arduino

- Uma plataforma experimental (opcional, mas útil)

Os itens necessários são uma tela LCD 1602 ou 2004 [se um 2004 for usado, funcionará sem problemas rolar a partir da direita alterando a função lcd.begin () para refletir que você está usando agora uma linha de 20 caracteres x 4 exibição. [Para rolar a partir da esquerda usando um display de 2004, é necessário reescrever o código da função crollInFromLeft ()]. Além de um LCD, você precisará de um Arduino UNO ou clone, o IDE do Arduino e um cabo USB para conectar o Arduino a um computador.

Um escudo de LCD pode ser usado em vez do LCD autônomo mostrado aqui. Se for esse o caso, as atribuições dos pinos para o LCD no esboço abaixo precisarão ser alteradas.

- Para o display LCD 1602 independente, usei as seguintes atribuições de pinos em meus esboços:

// LiquidCrystal (rs, ativar, d4, d5, d6, d7)

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

e incluiu a biblioteca de cristal líquido LiquidCrystal.h.

- Para o escudo LCD, eu uso as seguintes atribuições de pinos em meus esboços, e também incluí a biblioteca de cristal líquido LiquidCrystal.h.

// LiquidCrystal (rs, ativar, d4, d5, d6, d7)

LiquidCrystal lcd (8, 13, 9, 4, 5, 6, 7);

Qualquer uma das rotas executará o código aqui, ou seja, um escudo LCD ou um LCD autônomo. Um display LCD autônomo 1602 foi usado neste Instructable, mas, como observado, uma blindagem 1602 também pode ser usada se as diferentes atribuições de pinos forem levadas em consideração.

Usei uma “plataforma experimental” para conectar o Arduino UNO a uma placa de ensaio com meio tamanho, 400 pontos de amarração. (Veja um Instructable anterior meu, “Plataforma Experimental do Arduino UNO R3, Como prepará-lo para uso“). No entanto, não é necessária uma plataforma experimental, embora para mim torne a conexão do LCD ao UNO muito mais fácil e rápida.

As atribuições que usei para conectar o LCD ao UNO podem ser vistas acima.

Etapa 2: Conexão

O LCD é conectado a uma placa de ensaio e, em seguida, os fios de conexão são conectados da placa de ensaio aos pinos apropriados no Arduino (consulte a etapa 2 se você tiver alguma dúvida sobre as conexões que usei).

Eu preferi um LCD autônomo para este projeto em vez de um escudo, pois era mais satisfatório para mim e me permitiu ver facilmente quais pinos estavam disponíveis. Também me permite usar um potenciômetro que tem um botão, em vez de um potenciômetro de escudo que deve ser ajustado com uma chave de fenda.

O LCD autônomo requer o uso de um potenciômetro de 10k ohm separado. Como mencionado acima, usei um com um botão cujo limpador está conectado ao terceiro pino do LCD (contando a partir da direita com os pinos do LCD voltados para você). O potenciômetro é usado para controlar o contraste do LCD. As conexões são as mesmas para 1602 e 2004. No entanto, a declaração lcd.begin (16, 2) precisa ser alterada no esboço para lcd.begin (20, 4) para mostrar que nosso LCD mudou de 16 caractere por exibição de duas linhas para 20 caracteres por quatro linhas um.

Uma olhada nas fotos anexas mostra a conexão que usei, incluindo a plataforma experimental e o potenciômetro de 10k.

Etapa 3: o esboço

O esboço
O esboço
O esboço
O esboço
O esboço
O esboço

Basta inserir o esboço em anexo no IDE do Arduino. Lembre-se de que o site Instructable frequentemente remove todos os sinais de maior e menor que e o texto entre eles. Portanto, certifique-se de incluir o texto #include LiquidCrystal.h e coloque as palavras LiquidCrystal.h entre os símbolos de maior que e menor que.

// Sketch para rolar os caracteres em uma tela LCD

#include // Veja a nota no texto sobre o que é necessário aqui, ou seja, LiquidCrystal.h dentro

// símbolos maior que e menor que

// Este site geralmente remove os símbolos de maior e menor e o texto entre eles

// LiquidCrystal (rs, ativar, d4, d5, d6, d7)

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

// Declara lcd como um objeto LiquidCrystal

int i = 0;

int j = 0;

int k = 0;

int delayTime2 = 350; // Atraso entre turnos

void scrollInFromRight (int line, char str1 ) {

// Escrito por R. Jordan Kreindler, junho de 2016

i = strlen (str1);

para (j = 16; j> = 0; j--) {

lcd.setCursor (0, linha);

para (k = 0; k <= 15; k ++) {

lcd.print (""); // Limpar linha

}

lcd.setCursor (j, linha);

lcd.print (str1);

atraso (delayTime2);

}

}

void scrollInFromLeft (int line, char str1 ) {

// Escrito por R. Jordan Kreindler, junho de 2016

i = 40 - strlen (str1);

linha = linha - 1;

para (j = i; j <= i + 16; j ++) {

para (k = 0; k <= 15; k ++) {

lcd.print (""); // Limpar linha

}

lcd.setCursor (j, linha);

lcd.print (str1);

atraso (delayTime2);

}

}

void setup () {

Serial.begin (9600);

Serial.println ("Iniciando teste…");

lcd.begin (16, 2);

lcd.clear ();

lcd.print ("Somente teste");

}

void loop () {

lcd.clear ();

scrollInFromRight (0, "Line1 From Right");

scrollInFromRight (1, "Line2 From Right");

lcd.clear ();

scrollInFromLeft (0, "Line1 From Left.");

scrollInFromLeft (1, "Line2 From Left.");

lcd.clear ();

scrollInFromRight (0, "Line1 From Right");

scrollInFromLeft (1, "Line2 From Left.");

lcd.clear ();

}

As duas funções: scrollInFromRight (linha para exibir o texto, string a ser rolada) e scrollInFromLeft (linha para exibir o texto, string a ser rolada) podem ser movidas em seu esboço para controlar as linhas que são roladas na tela LCD. Essas funções fornecem uma maneira elegante de mover o novo texto para a tela.

Quando combinadas com as duas funções no esboço contidas no Instructable “Rolar uma única linha do LCD para a esquerda ou direita, How to”, as quatro funções fornecem maneiras elegantes de rolar o texto dentro e fora de um display LCD. Essas funções permitem que você role o texto uma linha por vez e não exige que todo o display seja rolado como fazem as funções scrollDisplayLeft () e scrollDisplayRight ().

Essa capacidade de rolagem nos permite apresentar linhas mais longas do que o display normalmente é capaz de mostrar. Ou seja, para um display de 1602 não estamos restritos a apenas 16 caracteres por linha (embora apenas 16 sejam exibidos por vez) e para um 2004 não estamos restritos a 20 caracteres por linha.

Como um aparte, você pode querer ajustar o tempo de exibição entre as rolagens para atender às suas necessidades.

Etapa 4: depois

Isso é tudo que há para fazer. Essas funções e as duas do meu Instructable anterior podem ser adicionadas a qualquer esboço que você tenha que use um LCD e exiba texto. Conforme observado, a capacidade de usar linhas mais longas é um benefício definitivo que é possível por meio do uso da rolagem.

Caso deseje entrar em contato comigo com alguma dúvida ou para obter informações adicionais, ou para expandir meus conhecimentos na área apresentada, posso ser contatado pelo e-mail [email protected]. (substitua o segundo 'i' por um 'e' para entrar em contato comigo.

Recomendado: