Tutoriais

Arduino – Como criar caracteres especiais

7 Comentários

Por Ricardo Sousa para o Pplware.com

Hoje vamos explorar um pouco mais o ecrã num arduino, não que seja já para avançar para algum trabalho mais rebuscado, não, vamos avançar passo a passo, com pequenos saltos para quem está a começar nos poder acompanhar, mas o intuito deste artigo de hoje é ajudar a criar os vossos próprios caracteres para utilizar no LCD ligado ao vosso Arduino.

Primeiro de tudo se precisam de ajuda para ligar o LCD ao Arduino podem seguir as dicas deixadas num ótimo e simples artigo.

Vamos agora ver o restante trabalho, também ele simples, que necessitam.

imagem_ecra_arduino00_small


Depois de fazerem as ligações, conforme o artigo acima indicado, vamos fazer download do seguinte programa em java: (LCDv1.0.jar)

O interface desta aplicação é muito fácil, depois é só utilizar a imaginação ou a necessidade:

Exemplo 1

imagem_ecra_arduino01_smal

Exemplo 2

imagem_ecra_arduino02_smal

Exemplo 3

imagem_ecra_arduino03_smal

Poderão encontrar abaixo um código exemplo para testarem o que aprenderam:

// incluir livraria para o LCD:
#include <LiquidCrystal.h>

LiquidCrystal lcd(25, 11, 5, 22, 3, 23);

// copiar para aqui o codigo fornecido pela aplicação de criar caracteres
// caracter bateria vazia
byte batlow[8] = {
B01110,
B11011,
B10001,
B10001,
B10001,
B10001,
B10001,
B11111
};
// caracter bateria meio
byte batmed[8] = {
B01110,
B11011,
B10001,
B10001,
B11111,
B11111,
B11111,
B11111
};
// caracter bateria cheia
byte batfull[8] = {
B01110,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
// caracter bateria coracao
byte coracao[8] = {
B00000,
B01010,
B11111,
B11111,
B11111,
B01110,
B00100,
B00000
};

void setup() {
// vai criar novo caracter bateria vazia
lcd.createChar(0, batlow);
// vai criar novo caracter bateria media
lcd.createChar(1, batmed);
// vai criar novo caracter bateria cheia
lcd.createChar(2, batfull);
// vai criar novo caracter bateria cheia
lcd.createChar(3, coracao);

lcd.begin(16, 2); //inicializa o LCD 16×2

lcd.setCursor(0, 2); //aponta para coluna 0, linha 2
lcd.print(“I “);
lcd.write(3); //escreve o coracao
lcd.print(” PPLWARE!”);

lcd.setCursor(2, 0); //aponta para coluna 2, linha 0
lcd.print(“…a carregar”);
}

void loop() {
//desenha no LCD a simulação bateria a carregar
for(int i=0; i<3; i++){
lcd.setCursor(0, 0); //aponta para coluna 0, linha 0
lcd.write(i); //escreve lcd.write(1); lcd.write(2); lcd.write(3);
delay(800);
}

}

Há muitos mais caracteres que podem ser usados e imagens que são possíveis no ecrã. Uma pesquisa pela web descobrem uma imensidão de novas formas, mas o básico, o conceito está aqui explicado e a aplicação está aqui apresentada. Agora é a vossa imaginação.

Autor: Vítor M.
Partilhar:
Também pode gostar

Comentários

7

Responder a Apolônio Serafim Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Tiago
    Tiago

    Esse LCD é 16×2?

    1. Avatar de Raul
      Raul

      Sim é um 16×2

  2. Avatar de Francisco
    Francisco

    Viva pessoal, sou “iniciante” no arduino e por isso estou com dificuldades em saber como faço para abrir a interface do programa acima.
    Já fiz o download e aparecem vários ficheiros, mas nenhum deles é executável. Se puderem dar uma ajuda agradeço.
    Cumprimentos e bom ano.

  3. Avatar de Cleber José Zermiani
    Cleber José Zermiani

    Muito bom muito bem explicado

  4. Avatar de Apolônio Serafim
    Apolônio Serafim

    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

  5. Avatar de davidson fellipe pena
    davidson fellipe pena

    no caso usando a interface i2c como ficaria? (percebe-se que não sei nada de arduino)