2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Em um dos meus Instructable anteriores, mostrei como conectar e fazer a interface de um LCD com o Arduino Uno e exibir valores nele. Mas como observado, havia muitas conexões e se o projeto começou a ficar muito bagunçado devido a muitos fios.
Neste Instructable, vou mostrar como conectar um LCD a um I2C, que terá apenas 4 pinos para controlar e usar o LCD. Então vamos começar.
Etapa 1: componentes necessários
Para este projeto, você precisará de:
- Arduino Uno
- LCD 16x2
- I2C para LCD 16x2
- Fios de conexão
Com tudo isso, vamos entrar na parte das conexões.
Etapa 2: conexões
Consulte as fotos e faça as conexões. É muito simples, você só precisa conectar o I2C nas portas do LCD e soldá-lo no lugar. Em seguida, conecte o pino SCL ao pino A4 no Arduino e o pino SDA ao pino A5 no Arduino.
Não estou soldando o I2C porque já soldei os pinos do cabeçote no LCD. Mas eu sugeriria soldar o I2C no LCD
Etapa 3: Código
Há uma biblioteca mestre LCD I2C incluída no Arduino IDE. Mas há um pequeno problema com o código nele. Todos os exemplos nesta biblioteca assumem o endereço padrão do I2C como 0x27. Portanto, primeiro temos que descobrir qual é o endereço do nosso I2C. Podemos fazer isso usando o código do scanner I2C. Assim que tivermos o endereço I2C, podemos substituir esse valor no código de exemplo e começar a usá-lo.
Código do scanner I2C:
#incluir
void setup () {Wire.begin (); Serial.begin (9600); while (! Serial); // aguarde o monitor serial Serial.println ("\ nI2C Scanner"); } void loop () {erro de byte, endereço; int nDevices; Serial.println ("Digitalizando …"); nDispositivos = 0; for (endereço = 1; endereço <127; endereço ++) {// O i2c_scanner usa o valor de retorno de // o Write.endTransmisstion para ver se // um dispositivo reconheceu o endereço. Wire.beginTransmission (endereço); erro = Wire.endTransmission (); if (erro == 0) {Serial.print ("dispositivo I2C encontrado no endereço 0x"); if (endereço <16) Serial.print ("0"); Serial.print (endereço, HEX); Serial.println ("!"); nDevices ++; } else if (erro == 4) {Serial.print ("Erro desconhecido no endereço 0x"); if (endereço <16) Serial.print ("0"); Serial.println (endereço, HEX); }} if (nDispositivos == 0) Serial.println ("Nenhum dispositivo I2C encontrado / n"); else Serial.println ("concluído / n"); atraso (5000); // aguarde 5 segundos para a próxima varredura}
Código de exemplo (para exibir os caracteres inseridos no Monitor serial):
#include #include
LiquidCrystal_I2C lcd (0x3F, 20, 4); // define o endereço LCD para 0x27 para um display de 16 caracteres e 2 linhas
void setup ()
{lcd.init (); // inicializa o lcd lcd.backlight (); Serial.begin (9600); }
void loop ()
{// quando os caracteres chegam pela porta serial… if (Serial.available ()) {// espere um pouco para que a mensagem inteira chegue delay (100); // limpa a tela lcd.clear (); // lê todos os caracteres disponíveis enquanto (Serial.available ()> 0) {// exibe cada caractere no LCD lcd.write (Serial.read ()); }}}
Etapa 4: o resultado
Depois de fazer o upload do código, você está pronto para prosseguir. Para este Instructable, peguei o exemplo do código de impressão serial. Agora, depois de fazer o upload do código, abra o Monitor Serial e digite uma palavra e clique em "enviar". Agora você deve ver este valor sendo exibido no LCD.