sábado, 17 de junho de 2017

Criando caracteres especiais no display LCD

Caracteres especiais no LCD



Nesse tutorial, vamos demonstrar como criar caracteres especiais para aplicação em projetos com microcontroladores. 
Os conceitos aplicados podem ser adotados em qualquer modelo de placa que o usuário tiver mais afinidade em usar, levando sempre, em consideração as diferenças e particularidades entre elas.
No caso estarei demonstrando com o módulo Node MCU.
A aplicação de caracteres especiais podem ser necessários em aplicações onde, muitas vezes precisa-se inserir na tela do LCD uma aplicação exclusiva.
No tutorial também estarei usando um módulo I2C para display. Esse módulo tem a praticidade de utilizar somente 4 fios de ligação, 2 para alimentação e 2 para dados.

Componentes

Módulo NodeMCU
Módulo I2C
Display LCD 16x2
Fonte de protoboard 5 Vcc/ 3.3 Vcc
Protoboard e cabos jumpers

Deve ser feita a ligação dos componentes conforme o esquema.

fonte: próprio autor

Para melhor entendimento do funcionamento do display LCD deve-se ter o conhecimento de que o display é dividido da seguinte maneira: quando em sua especificação denomina-se 16x2 quer dizer que a tela está dividida em 16 colunas e 2 linhas.

fonte: blog baú da eletrônica

Em cada divisão das colunas com as linhas existem segmentos que numa visão ampliada divide-se em outro segmentos de 5 colunas e 8 linhas.


fonte: próprio autor

Para formar a figura que atenda a necessidade do programador, o caractere pode ser feito na divisão dos segmentos ou em vários segmentos e serem agrupados no display.
O programa (LCDv1.0) pode auxiliar na organização dos seguimentos para formar caracteres mais complexos.



fonte: próprio autor

O programa facilita, cabendo ao usuário inserir os bits conforme os caracteres necessários.

Código fonte

O código exibido abaixo é um exemplo utilizado, que pode ser visto melhor no vídeo, ao final desse tutorial.

//Caracteres Display LCD 16 x 2
//Autor: Tony Emerson Marim
//===http://www.mecatronizando.com.br===
 
#include <Wire.h>  //INCLUSÃO DE BIBLIOTECA
#include <LiquidCrystal_I2C.h> //INCLUSÃO DE BIBLIOTECA

LiquidCrystal_I2C lcd(0x3F, 16, 2); //FUNÇÃO DO TIPO "LiquidCrystal_I2C"
 
// copiar para aqui o codigo fornecido pela aplicação de criar caracteres
// caracter 1
byte punho[8] = {
B00000,
B00000,
B11111,
B11111,
B11111,
B11111,
B11111,
B00000
};
// caracter 2
byte mao[8] = {
  B10000,
  B11000,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
// caractere 3
byte youtube[8] = {
  B11111,
  B11111,
  B01111,
  B00111,
  B00111,
  B01111,
  B11111,
  B11111
};
 byte youtube2[8] = {
  B11111,
  B11110,
  B11110,
  B11110,
  B11110,
  B11110,
  B11110,
  B11111
};
void setup() 
{

  lcd.init();   // INICIALIZA O DISPLAY LCD
  lcd.backlight(); // HABILITA O BACKLIGHT (LUZ DE FUNDO)


lcd.createChar(1, punho);

lcd.createChar(2, mao);

lcd.createChar(3, youtube);

lcd.createChar(4, youtube2);

lcd.begin(16, 2); //inicializa o LCD 16x2
 
lcd.setCursor(0, 0); //aponta para coluna 0, linha 2
lcd.write(1); //escreve o caracter
lcd.setCursor(1, 0); //aponta para coluna 0, linha 2
lcd.write(2); //escreve o caracter
lcd.setCursor(2, 0);
lcd.print(" ****CURTA****");
lcd.setCursor(1, 1); //aponta para coluna 0, linha 2
lcd.write(3); //escreve o caracter
lcd.setCursor(0, 1); //aponta para coluna 0, linha 2
lcd.write(4); //escreve o caracter
lcd.setCursor(2,1);
lcd.print(" -INSCREVA-SE- ");
 
}
 
void loop() 
{

}


fonte: próprio autor

Para elaborar os mais diferentes caracteres que atenda a função do usuário é só deixar a imaginação fluir.



Gostou? Curta e Compartilhe a FanPage!
Assine o canal!
Adquira seus componentes!

Caso seja necessário, os arquivos apresentados podem ser baixados por esse LINK!

Bons estudos!

3 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. Oi pessoal, segui este tutorial a risca e daí não havia conseguido criar o caractere especial, após pesquisar mais um pouco vi que precisava estar em hexadecimal. Não sei se pela versão da minha IDE ou até da biblioteca LCD, mas só funcionou quando coloque os valores do vetor em hexa.
    Fiz uma ferramenta idêntica em java com a mesma funcionalidade.
    https://drive.google.com/open?id=1q-n_-Fb83iALDB_Wzq_mL5UBy8mD_Zwa

    Caso não tenha o Java instalado na máquina, fiz também em excel.
    https://drive.google.com/open?id=1hJtGM-iltIZZMCyYJtBtMsLk3cA3idKB

    ResponderExcluir
  3. Por que sempre tem um "8" dentro dos colchetes na criação dos caracteres?

    ResponderExcluir