Como interface o LCD com o ESPPOP 10 usando o Arduino IDE

Como interface o LCD com o ESPPOP 10 usando o Arduino IDE

O ESP32 é um microcontrolador baseado em IoT que pode processar várias instruções como Arduino, mas vem por padrão com Bluetooth e WiFi. O ESP32 é uma placa independente que pode ajudar outro sistema a reduzir sua carga, pois pode atuar como dispositivo mestre ou escravo. Como Arduino, também podemos interface uma tela LCD com ESP32. Vamos discutir como fazer isso em detalhes.

Interface LCD com ESP32 usando Arduino IDE

O I2C LCD pode exibir processos de dados durante a programação em uma tela. Ele fornece uma representação visual dos dados recebidos de sensores, módulos ou microcontroladores. O LCD pode ser integrado sem usar o módulo I2C, mas o benefício do uso do i2C é que ele usa apenas dois fios SDA e SCL Para comunicar dados, resultando em fornecendo vários E/S Free no ESP32 que podem ser usados ​​para integrar outros dispositivos.

Além disso, possui um potenciômetro a bordo que pode controlar o brilho do LCD, apenas ajustando o botão do potenciômetro.

Ligando o LCD para o ESP32 com I2C

Conecte o módulo I2C com o ESP32 usando o pino digital 21 e 22 do PIN do ESP32. Abaixo a imagem dada representa conexões de I2C com o ESP32 e LCD Display. O pino SDA de I2C está conectado com o pino GPIO 21 do ESP32 e o pino SCL da I2C da mesma forma é unido ao pino GPIO 22.

A tabela abaixo representa a conexão do ESP32 com i2c.

I2C LCD Esp32
Gnd Gnd
VCC Vin
SDA GPIO 21
SCL GPIO 22

Instalando a biblioteca LiquidCrystal_I2C em Arduino IDE

Depois que o circuito é concluído, conecte a placa ESP32 com PC. Agora abra o IDE e vá para Gerente da biblioteca procurar Cristal líquido I2C biblioteca. Instale a biblioteca dada por Frank de Brabander.

Depois de clicar nos arquivos da biblioteca de instalação, começará a baixar, após a instalação bem -sucedida, você receberá uma mensagem instalada da biblioteca na janela de saída.

Obtendo o endereço LCD

Antes de conectarmos qualquer dispositivo I2C com ESP32, é importante observar em qual endereço esse dispositivo específico está conectado. Alguns módulos têm endereços I2C padrão escritos, enquanto alguns deles não têm instruções para verificar os endereços I2C.

Para resolver esse problema, temos um arame Código da biblioteca que verifica todos os dispositivos I2C conectados e em qual endereço eles estão conectados ao ESP32. Isso ajudará a depurar e melhorar o circuito ESP32.

#include /*inclua fio.biblioteca H*/
configuração void ()

Arame.começar(); /*Comunicação I2C do fio Iniciar*/
Serial.começar (115200); /*Taxa de transmissão definida para comunicação serial*/
enquanto (!Serial); /*Aguardando saída serial no monitor serial*/
Serial.println ("\ ni2c scanner");

Void Loop ()

byte err, ADR; /*O erro variável é definido com o endereço de i2c*/
int number_of_devices;
Serial.println ("Scanning.");
número_of_devices = 0;
para (ADR = 1; ADR < 127; adr++ )

Arame.BEGNTRANSMISSÃO (ADR);
err = fio.ENDTRANSMISSÃO ();
if (err == 0)

Serial.print ("dispositivo i2c no endereço 0x");
if (adr < 16)
Serial.print ("0");
Serial.impressão (ADR, hexadecimal);
Serial.println (" !");
número_of_devices ++;

caso contrário, se (err == 4)

Serial.print ("Erro desconhecido no endereço 0x");
if (adr < 16)
Serial.print ("0");
Serial.println (ADR, Hex);


if (number_of_devices == 0)
Serial.println ("Não I2C dispositivo anexado \ n");
outro
Serial.println ("feito \ n");
atraso (5000); /*Aguarde 5 segundos para a próxima varredura i2c*/

Este código ajudará a encontrar o número de dispositivos I2C e seu endereço no qual eles estão conectados. Este código é comumente referido como código do scanner i2C.

Primeiro, incluímos um "Arame.h " biblioteca. Então, na parte de configuração do código, começamos esta biblioteca. Depois disso, inicializamos a comunicação serial, definindo a taxa de transmissão 9600. Isso ajudará a ver a saída sobre o monitor serial.

Na seção Loop, definimos duas variáveis "errar" e "ADR". Então definimos outra variável "Dispositivos" e defina -o como zero. Depois disso a para O loop é inicializado com valores entre 0 e 127.

Em seguida, inserimos o endereço no fio usando arame.BEGNTRANSMISSÃO (), O scanner I2C procurará o reconhecimento de dispositivos e seu endereço. O valor lido será armazenado na variável "erro". O valor de retorno será igual a 0 se o dispositivo reconhecer o endereço, caso contrário, o valor se tornará 4. Em seguida, usamos uma condição IF que imprimirá o endereço do dispositivo i2C se o valor for <16. Final address of the device is printed in Hexadecimal form.

A saída de dispositivos anexados ao ESP32 sobre os protocolos I2C parecerão como mostrado no diagrama abaixo. Aqui 0x3C é o endereço do i2C LCD enquanto 0x27 é o endereço do OLED tela.

Exibindo texto no LCD

Exibir texto em um LCD usando o ESP32 é muito simples. Tudo o que precisamos é selecionar a linha e a coluna do LCD, onde queremos exibir caracteres. Abaixo está um programa muito simples exibindo “Linuxhint esp32”.

#incluir
/* Inicialize colunas e linhas LCD*/
int lcd_columns = 16;
int lcd_rows = 2;
/* Defina o endereço LCD, número de colunas e linhas*/
/* Para saber sobre o endereço I2C (0x27), execute um esboço do scanner i2c*/
LiquidCrystal_i2c lcd (0x27, lcd_columns, lcd_rows);
Void Setup ()
/* Inicialize LCD*/
LCD.iniciar();
/* Ligue a luz de fundo do LCD*/
LCD.luz de fundo ();

Void Loop ()
/*Defina o cursor para a primeira coluna, primeira linha*/
LCD.setCursor (0, 0);
/* Mensagem de impressão*/
LCD.print ("linuxhint esp32");
atraso (1000);
/*Limpa a tela para imprimir nova mensagem*/
LCD.claro();

Enquanto escrevia o código, a primeira coisa que precisamos é chamar a biblioteca de cristal líquido que instalamos.

#incluir

As próximas duas linhas representam as linhas e colunas do LCD, onde precisamos de texto para exibir. Se você estiver usando uma exibição de qualquer outro tamanho, altere a linha e a coluna de acordo.

int lcd_columns = 16;
int lcd_rows = 2;

Em seguida, exibiremos o endereço I2C no qual o módulo LCD I2C está conectado. No nosso caso, é 0x27. Se você estiver usando uma versão semelhante do LCD, pode ser o mesmo que o nosso executar o código de verificação de endereço fornecido acima.

LiquidCrystal_i2c lcd (0x27, lcd_columns, lcd_rows);

Em seguida, inicializamos a tela e a luz de fundo do LCD usando os seguintes comandos.

LCD.iniciar();
LCD.luz de fundo ();

Para exibir o comando de cursor LCD de texto, é usado 0 corresponde à primeira coluna e linha.

LCD.setCursor (0, 0);

Depois disso, o LCD.A função print () é usada para exibir o texto e depois limpar a tela usando LCD.claro().

LCD.print ("linuxhint esp32");
LCD.claro();

Saída

A saída do código representa caracteres definidos no programa na tela LCD.

Conclusão

Cobrimos todas as etapas para conectar uma tela LCD com ESP32 usando o módulo I2C. Para conectar o LCD, precisamos instalar a biblioteca primeiro usando o gerente da biblioteca. Em seguida, usando o endereço I2C correto, podemos enviar os dados que desejarmos para o LCD.