Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Tutorial do Arduino 16 × 2 LCD – Tudo o que você precisa saber


Neste tutorial do Arduino vamos aprender como conectar e usar um LCD (Liquid Crystal Display) com Arduino . Visores de LCD como esses são muito populares e amplamente utilizados em muitos projetos eletrônicos porque são ótimos para exibir informações simples, como dados de sensores, ao mesmo tempo em que são muito acessíveis.

Eu já os usei em vários dos meus projetos Arduino, e você pode conferir aqui:
  • Projeto de sistema de alarme e segurança do Arduino
  • Máquina de venda automática DIY – Projeto de mecatrônica baseado em Arduino
  • Medidor de alcance Arduino e projeto de nível de bolha digital

Você pode assistir ao vídeo a seguir ou ler o tutorial escrito abaixo. Inclui tudo o que você precisa saber sobre o uso de um display de caracteres LCD com Arduino, como pinagem do LCD, diagrama de fiação e vários códigos de exemplo.

O que é a tela de caracteres LCD?


Um display de caracteres LCD é um tipo único de display que só pode produzir caracteres ASCII individuais com tamanho fixo. Usando esses caracteres individuais, podemos formar um texto.

Se olharmos mais de perto a tela podemos notar que existem pequenas áreas retangulares compostas por uma grade de 5×8 pixels. Cada pixel pode acender individualmente, e assim podemos gerar caracteres dentro de cada grade.

O número de áreas retangulares define o tamanho do LCD. O LCD mais popular é o LCD 16×2, que possui duas linhas com 16 áreas ou caracteres retangulares. Claro, existem outros tamanhos como 16×1, 16×4, 20×4 e assim por diante, mas todos funcionam com o mesmo princípio. Além disso, esses LCDs podem ter diferentes cores de fundo e de texto.

Pinagem de LCD 16×2


Tem 16 pinos e o primeiro da esquerda para a direita é o Terra alfinete. O segundo pino é o VCC que conectamos o pino de 5 volts na placa Arduino. Em seguida está o pino Vo no qual podemos conectar um potenciômetro para controlar o contraste da tela.

Em seguida, o RS pin ou pino de seleção de registro é usado para selecionar se enviaremos comandos ou dados para o LCD. Por exemplo, se o pino RS estiver definido em estado baixo ou zero volts, estamos enviando comandos para o LCD como:defina o cursor para um local específico, limpe a tela, desligue a tela e assim por diante. E quando o pino RS está definido em estado alto ou 5 volts, estamos enviando dados ou caracteres para o LCD.

Em seguida vem o R/W pino que seleciona o modo se vamos ler ou escrever no LCD. Aqui o modo de escrita é óbvio e é usado para escrever ou enviar comandos e dados para o LCD. O modo de leitura é usado pelo próprio LCD ao executar o programa sobre o qual não precisamos discutir neste tutorial.

O próximo é o E pino que permite a escrita nos registradores, ou os próximos 8 pinos de dados de D0 a D7. Então através destes pinos estamos enviando os dados de 8 bits quando estamos escrevendo nos registradores ou por exemplo se quisermos ver o último A maiúsculo no display enviaremos 0100 0001 para os registradores de acordo com a tabela ASCII. Os dois últimos pinos A e K , ou ânodo e cátodo são para a luz de fundo do LED.

Afinal, não precisamos nos preocupar muito com o funcionamento do LCD, pois a Biblioteca de Cristais Líquidos cuida de quase tudo. No site oficial do Arduino você pode encontrar e ver as funções da biblioteca que facilitam o uso do LCD. Podemos usar a Biblioteca no modo de 4 ou 8 bits. Neste tutorial vamos usá-lo no modo de 4 bits, ou usaremos apenas 4 dos 8 pinos de dados.

Como conectar o Arduino ao LCD – Diagrama de fiação


Veja como precisamos conectar o display LCD 16×2 a uma placa Arduino.

Usaremos apenas 6 pinos de entrada digital da placa Arduino. Os registros do LCD de D4 a D7 será conectado aos pinos digitais do Arduino de 4 a 7. O Ativar o pino será conectado ao pino número 2 e ao RS pino será conectado ao pino número 1. O R/W pino será conectado ao terra e o Vo pino será conectado ao pino do meio do potenciômetro.

Você pode obter esses componentes em qualquer um dos sites abaixo:

  • LCD de 16×2 caracteres………………………..
  • Potenciômetro ……………………………….
  • Placa Arduino ………………………………
  • Breadboard e jump wires ……… 

Ajustando o contraste do LCD


Podemos ajustar o contraste do LCD ajustando a entrada de tensão no Vo alfinete. Estamos usando um potenciômetro porque dessa forma podemos ajustar facilmente o contraste, ajustando a tensão de entrada de 0 a 5V.

Posso usar o LCD sem potenciômetro?


Sim, caso não tenhamos um potenciômetro, ainda podemos ajustar o contraste do LCD usando um divisor de tensão composto por dois resistores. Usando o divisor de tensão, precisamos definir o valor da tensão entre 0 e 5V para obter um bom contraste no display. Descobri que a tensão de cerca de 1V funcionou muito bem para o meu LCD. Eu usei resistor de 1K e 220 ohm para obter um bom contraste.

Há também outra maneira de ajustar o contraste do LCD, e isso é fornecer um sinal PWM do Arduino para o Vo pino do LCD. Podemos conectar o Vo pin para qualquer pino compatível com Arduino PWM e, na seção de configuração, podemos usar a seguinte linha de código:
analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255)Code language: Arduino (arduino)

Ele irá gerar sinal PWM no pino D11, com valor de 100 de 255, que se traduz em tensão de 0 a 5V, será em torno de 2V de entrada no Vo pino LCD.

Código Arduino LCD


Aqui está um código simples através do qual podemos explicar o princípio de funcionamento da biblioteca Liquid Crystal. Este é o código do primeiro exemplo do vídeo:
/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/

#include <LiquidCrystal.h> // includes the LiquidCrystal Library 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.print("Arduino"); // Prints "Arduino" on the LCD 
 delay(3000); // 3 seconds delay 
 lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed 
 lcd.print("LCD Tutorial"); 
 delay(3000); 
 lcd.clear(); // Clears the display 
 lcd.blink(); //Displays the blinking LCD cursor 
 delay(4000); 
 lcd.setCursor(7,1); 
 delay(3000); 
 lcd.noBlink(); // Turns off the blinking LCD cursor 
 lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written 
 delay(4000); 
 lcd.noCursor(); // Hides the LCD cursor 
 lcd.clear(); // Clears the LCD screen 
}Code language: Arduino (arduino)

Descrição do código:

A primeira coisa que precisamos fazer é inserir a Biblioteca de Cristais Líquidos. Podemos fazer assim:Sketch> Include Library> Liquid Crystal. Então temos que criar um objeto LC. Os parâmetros deste objeto devem ser os números dos pinos das Entradas Digitais da Placa Arduino respectivamente aos pinos do LCD da seguinte forma:(RS, Enable, D4, D5, D6, D7). Na configuração, temos que inicializar a interface para o LCD e especificar as dimensões da tela usando o begin() função.

No loop, escrevemos nosso programa principal. Usando o imprimir() função que imprimimos no LCD.
lcd.print("Arduino"); // Prints "Arduino" on the LCDCode language: Arduino (arduino)

O setCursor() A função é usada para definir o local no qual o texto subsequente escrito no LCD será exibido.
lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed Code language: Arduino (arduino)

O piscar() função é usada para exibir um cursor piscando e o noBlink() função para desligar.
lcd.blink(); //Displays the blinking LCD cursorCode language: Arduino (arduino)

O cursor() função é usada para exibir o cursor de sublinhado e o noCursor() função para desligar. Usando o clear() função podemos limpar a tela LCD.
lcd.clear(); // Clears the LCD screenCode language: Arduino (arduino)

Exemplo de texto de rolagem em LCD 16×2 e Arduino


Caso tenhamos um texto com comprimento maior que 16 caracteres, podemos rolar o texto usando o scrollDisplayLeft() ou scrollDisplayRight() função da biblioteca LiquidCrystal.

Segue um código de exemplo:
#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2);
  lcd.print("Scrolling Text Example");
}
void loop() {
  lcd.scrollDisplayLeft();
  delay(500);
}Code language: Arduino (arduino)

Podemos escolher se o texto será rolado para a esquerda ou para a direita, usando o scrollDisplayLeft() ou scrollDisplayRight() funções. Com o atraso() função podemos definir a velocidade de rolagem.

Se você quiser mais controle sobre como o texto está rolando, você também pode fazer a rolagem por conta própria usando um loop “for”. Aqui está um exemplo:
#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display

}

void loop() {
  // scroll text to the right
  for (int i = 0; i <= 13; i++) {
    lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
    lcd.print("LCD");
    delay(500); // 1 second delay
    lcd.clear(); // Write a character to the LCD
  }
  // scroll text to the left
  for (int i = 12; i >= 1; i--) {
    lcd.setCursor(i, 0);
    lcd.print("LCD");
    delay(500); 
    lcd.clear(); 
  }
}Code language: Arduino (arduino)

Como gerar e exibir caracteres personalizados no LCD


Além dos caracteres ASCII, com a biblioteca LiquidCrystal também é possível gerar e exibir caracteres personalizados no LCD.

Podemos especificar a aparência de cada caractere por um array de 8 bytes. Segue um código de exemplo:
#include <LiquidCrystal.h>

byte heart[8] = {  // Array of bytes
  B00000,          // B stands for binary formatter and the five numbers are the pixels
  B01010,
  B11111,
  B11111,
  B01110,
  B00100,
  B00000,
  B00000
};

byte smile[8] = {
  B00000,
  B00000,
  B01010,
  B00000,
  B10001,
  B01110,
  B00000,
  B00000
};

byte lock[8] = {
  B01110,
  B10001,
  B10001,
  B11111,
  B11011,
  B11011,
  B11111,
  B00000
};

byte character[8] = {
  B11111,
  B10101,
  B11111,
  B01010,
  B01110,
  B11111,
  B01110,
  B01110
};


LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
  lcd.createChar(0, heart); // Create a custom character
  lcd.createChar(1, smile);
  lcd.createChar(2, lock);
  lcd.createChar(3, character);

  // Clears the LCD screen
  lcd.clear();

  // Print a message to the LCD
  lcd.print("Custom Character");
}

void loop() {
  lcd.setCursor(1, 1);
  lcd.write(byte(0));  // Display the custom character 0, the heart

  lcd.setCursor(5, 1);
  lcd.write(byte(1));

  lcd.setCursor(9, 1);
  lcd.write(byte(2));

  lcd.setCursor(13, 1);
  lcd.write(byte(3));
}Code language: Arduino (arduino)

Podemos notar como podemos especificar a aparência do caractere alterando os 0s para 1s dentro da grade de 5×8 pixels.

Na configuração, temos que criar o caractere personalizado usando o createChar() função.
lcd.createChar(0, heart); // Create a custom characterCode language: Arduino (arduino)

O primeiro parâmetro nesta função é um número entre 0 e 7, ou temos que reservar um dos 8 caracteres personalizados suportados. O segundo parâmetro é o nome da matriz de bytes.

Gravamos o caractere personalizado na tela usando o write() função e como parâmetro usamos o número do caractere.
lcd.write(byte(0));  // Display the custom character 0, or the heartCode language: Arduino (arduino)

Veja também: Tutorial da tela de toque do Arduino | LCD TFT

Conclusão


Então, cobrimos praticamente tudo o que precisamos saber sobre como usar um LCD com Arduino. Esses displays LCD de caracteres são realmente úteis para exibir informações para muitos projetos eletrônicos. Nos exemplos acima, usei LCD 16×2, mas o mesmo princípio de funcionamento se aplica a qualquer outro tamanho desses displays de caracteres.

Espero que tenham gostado deste tutorial e aprendido algo novo. Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo e não se esqueça de conferir minha coleção completa de mais de 30 projetos Arduino.

Processo de manufatura

  1. Tudo o que você precisa saber sobre o Plunge EDM
  2. Tudo o que você precisa saber sobre ferro fundido
  3. Tudo o que você precisa saber sobre alto-forno
  4. Tudo o que você precisa saber sobre furadeira
  5. Tudo o que você precisa saber sobre chapas metálicas
  6. Tudo o que você precisa saber sobre fresadora
  7. Tudo o que você precisa saber sobre uma plaina
  8. Tudo o que você precisa saber sobre máquina de modelagem
  9. Tudo o que você precisa saber sobre metalurgia
  10. Tudo o que você precisa saber sobre máquina CNC