Caractere especial

Como fazer um caractere especial e colocar no display de lcd de 16x2?

Depende de qual biblioteca você estiver usando.

No exemplo do meu projeto em http://forum.arduino.cc/index.php/topic,126197.0.html, eu uso a biblioteca da Adafruit (NewLcdLibrary).

Desta forma, cada caractere é entendido como um vetor de bytes, sendo que cada byte é uma linha, e cada bit de cada byte corresponde ao pixel daquela coluna.

Declaração do objeto “lcd”:

#include “LiquidCrystal.h”
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // específico para meu projeto, será diferente para o seu, ou pode ser outra interface, como I2C, etc.

Então você define o caractere especial assim (o tal vetor de bytes, onde cada bit de cada byte corresponde a um pixel naquela coluna):

byte charArrowRight[8] = { 0, 0, 4, 2, 31, 2, 4, 0};

Na sua chamada setup() você define que o caractere especial “0” corresponde àquele vetor:

lcd.createChar(0, charArrowRight);

Durante programa, e na hora de usar o caractere especial definido acima, você apenas especifica o índice daquele caractere (“0” no caso acima):

lcd.write(0);