Arduino Nano - LCD

Este tutorial ensina você a usar o display LCD com o Arduino Nano e como programar o Arduino Nano para exibir texto e caracteres especiais no LCD.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×LCD I2C 16x2
1×LCD I2C 1602 Display Compact-Size 5V
1×(Alternativa) LCD I2C 20x4
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Buy Note: Alternatively, you can assemble the LCD I2C display using LCD 1602 Display and PCF8574 I2C Adapter Module.

Sobre o LCD I2C 16x2

O LCD I2C é formado por um LCD padrão, um módulo I2C e um potenciômetro. É altamente recomendado usar o LCD I2C em vez do LCD padrão. Isso porque usar o LCD I2C deixa a ligação muito mais fácil.

Pinagem do LCD

O LCD I2C usa a interface I2C para se conectar ao Arduino Nano. Ele tem quatro pinos:

  • O pino GND deve ser conectado ao terra (0V).
  • O pino VCC é a alimentação do LCD e deve ser conectado ao VCC (5V).
  • O pino SDA é o sinal de dados I2C.
  • O pino SCL é o sinal de clock I2C.
LCD I2C pinout

Coordenadas do LCD

O LCD I2C 16x2 tem 16 colunas e 2 linhas, com colunas e linhas numeradas a partir de 0.

Arduino Nano LCD I2C coordinate

Diagrama de Ligação

The wiring diagram between Arduino Nano and LCD I2C

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Módulo LCD I2C Arduino Nano
Vin 5V
GND GND
SDA A4
SCL A5

Como Programar o LCD I2C

A biblioteca DIYables_LCD_I2C precisa ser incluída para usar o LCD.

  • Configurar o LCD:

O LCD precisa ser configurado corretamente para funcionar bem.

  • Escrever no LCD:

Escrever no LCD é fácil graças à biblioteca DIYables_LCD_I2C.

#include <DIYables_LCD_I2C.h> // Library for LCD
  • Crie um objeto DIYables_LCD_I2C informando o endereço I2C, o número de colunas e o número de linhas.
DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows
  • Inicie o LCD.
lcd.init(); //initialize the lcd lcd.backlight(); //open the backlight
  • Vá para a coluna e a linha indicadas por column_index e row_index, respectivamente.
lcd.setCursor(column_index, row_index);
  • Exiba uma mensagem no LCD.
lcd.print("Hello World!");

Explore as possibilidades do que pode ser feito com o LCD na seção "Faça Mais com o LCD".

※ Nota:

O endereço do LCD pode variar conforme o fabricante. No nosso código, usamos 0x27, conforme especificado pela DIYables.

Código Arduino Nano

#include <DIYables_LCD_I2C.h> DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows void setup() { lcd.init(); // Initialize the LCD I2C display lcd.backlight(); lcd.setCursor(3, 0); // move cursor to (3, 0) lcd.print("DIYables"); // print message at (3, 0) lcd.setCursor(0, 1); // move cursor to (0, 1) lcd.print("www.diyables.io"); // print message at (0, 1) } void loop() { }

Passos Rápidos

  • Clique no ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise por "DIYables LCD I2C" e localize a biblioteca DIYables_LCD_I2C criada pela DIYables.
  • Depois, clique no botão Install para adicionar a biblioteca.
Arduino Nano DIYables LCD I2C library
  • Copie o código e abra-o com o Arduino IDE.
  • Clique no botão Upload na IDE para enviar o código ao Arduino Nano.
  • Veja o resultado no LCD.
Arduino Nano display text on LCD
  • Experimente alterar o texto e a posição dele.

Vídeo

Faça Mais com o LCD

Caractere Personalizado

lcd.print() só funciona com caracteres ASCII. Para exibir um caractere especial ou símbolo (por exemplo, coração, angry bird), você deve usar o gerador de caracteres.

Um LCD 16x2 pode mostrar até 32 caracteres. Cada caractere é formado por 40 pixels, organizados em 8 linhas e 5 colunas.

Arduino Nano LCD 16x2 Pixel

O gerador de caracteres cria um caractere de 40 pixels. Para usá-lo, basta seguir estes passos:

Click on each pixel to select/deselect


Copy below custom character code
Replace the customChar[8] in the below code
#include <DIYables_LCD_I2C.h> DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; void setup() { lcd.init(); // Initialize the LCD I2C display lcd.backlight(); lcd.createChar(0, customChar); // create a new custom character lcd.setCursor(2, 0); // move cursor to (2, 0) lcd.write((byte)0); // print the custom char at (2, 0) } void loop() { }

O LCD mostrou o resultado. O resultado foi exibido no LCD.

LCD custom character

Vários caracteres personalizados

Podemos criar no máximo 8 caracteres personalizados, numerados de 0 a 7. O exemplo abaixo mostra como criar e exibir três deles.

#include <DIYables_LCD_I2C.h> DIYables_LCD_I2C lcd(0x27, 16, 2); // I2C address 0x27, 16 column and 2 rows byte customChar0[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 }; byte customChar1[8] = { 0b00100, 0b01110, 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 }; byte customChar2[8] = { 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, 0b01110, 0b00100 }; void setup() { lcd.init(); // Initialize the LCD I2C display lcd.backlight(); lcd.createChar(0, customChar0); // create a new custom character (index 0) lcd.createChar(1, customChar1); // create a new custom character (index 1) lcd.createChar(2, customChar2); // create a new custom character (index 2) lcd.setCursor(2, 0); // move cursor to (2, 0) lcd.write((byte)0); // print the custom char 0 at (2, 0) lcd.setCursor(4, 0); // move cursor to (4, 0) lcd.write((byte)1); // print the custom char 1 at (4, 0) lcd.setCursor(6, 0); // move cursor to (6, 0) lcd.write((byte)2); // print the custom char 2 at (6, 0) } void loop() { }

O resultado exibido no LCD é: . O resultado que aparece no LCD é:

LCD multiple custom characters

Resumo: como usar caracteres personalizados no LCD

  • Use o gerador de caracteres para gerar o código binário do seu caractere personalizado.
  • Copie o código binário gerado no passo anterior.
byte customChar[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000, 0b00000 };
  • Atribua um caractere personalizado a um valor de índice de 0 a 7 dentro da função setup().
lcd.createChar(index, customChar);
  • Imprima o caractere personalizado no LCD a qualquer momento, na função setup() ou loop().
lcd.setCursor(column, row); // move cursor to a desired position lcd.write((byte)index); // print the custom char at the desired position

Outras funções

  • Imprimir "Hello World"

Insira as funções a seguir na função loop(), uma de cada vez, com um atraso de 5000 milissegundos após cada uma:

  • Limpar a tela do LCD
  • Imprimir "Hello World"
lcd.clear();
  • Tela
  • Posicionar o cursor no canto superior esquerdo do display LCD.
lcd.home();
  • Posicionar o cursor em uma determinada coluna e linha.
lcd.setCursor(column, row);
  • Mostrar o cursor do LCD na tela.
lcd.cursor();
  • Torna o cursor do LCD invisível.
lcd.noCursor();
  • Mostrar o cursor do LCD piscando.
lcd.blink()
  • Desativar o piscar do cursor do LCD.
lcd.noBlink()

Desafie-se

Tente usar um LCD em um destes projetos:

Solução de Problemas do LCD I2C

  1. Gire o potenciômetro na parte de trás do LCD para ajustar o contraste.
  2. Dependendo do fabricante, o endereço I2C do LCD pode ser diferente. Em geral, o endereço I2C padrão do LCD é 0x27 ou 0x3F. Tente os dois valores. Se ainda não funcionar, execute o código abaixo para descobrir o endereço I2C.
// I2C address scanner program #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("I2C Scanner"); } void loop() { byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for (address = 1; address < 127; address++ ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) Serial.print("0"); Serial.print(address, HEX); Serial.println(" !"); nDevices++; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) Serial.print("0"); Serial.println(address, HEX); } } if (nDevices == 0) Serial.println("No I2C devices found"); else Serial.println("done"); delay(5000); // wait 5 seconds for next scan }

A saída exibida no Serial Monitor é: . O resultado que aparece no Serial Monitor é:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Scanning... I2C device found at address 0x3F ! done Scanning... I2C device found at address 0x3F ! done
Ln 11, Col 1
Arduino Nano on COM15
2

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!