Pular para o conteúdo principal

Imprimindo um caractere e seu valor Binário em um visor LCD

Imprimindo um caractere e seu valor Binário em um Display LCD


Neste experimento iremos montar um circuito e desenvolver um programa que será responsável pela leitura de um caractere e sua impressão em valor binário (como visto em postagens anteriores) em um visor LCD 16 x 2. 

Para a realização do experimento iremos precisar de alguns componentes:

1 - Placa Arduíno Uno;
1 - Potenciômetro 250 kΩ;
1 - Resistor de 220 Ω;
1 - Display LCD 16 X 2;
1-  Protoboard;
23 - Jumpers (Macho/Macho);

Para realizar as ligações do Display LCD para que ele funcione adequadamente, precisaremos fazer um simples circuíto  seguindo a tabela a seguir: 


Display Lcd 16x2 Backlight Azul E Escrita Branca - R$ 18,50 em ...

Os pinos "Backlight Cathode" e "Backlight Anode" são os pinos responsáveis pelo acendimento do LED, portanto na saida "Backlight Cathode" deve-se ligar um resistor de 250 kΩ, e na saída "Backlight Anode", deve-se ligar no polo negativo da protoboard. 
O terminal 2 do potenciômetro deve ser conectado na saída VSS (GND), o pino central deve ser ligado na saída VE (V0), e por último deve-se ligar o terminal 1 no polo positivo da protoboard.

Portanto seu circuíto deverá ficar parecido com este: 


O potenciômetro será responsável por controlar o contraste do visor LCD. Não iremos mexer nele, portanto, ele deve permanecer como está na foto.

Nosso último passo é desenvolver a programação que será responsável por imprimir o valor binário de um caractere no visor LCD.

Nosso primeiro passo, é importar a biblioteca responsável por fazer o visor LCD funcionar. Então na primeira linha do código, ou seja, antes do "void Setup", iremos escrever o seguinte comando: 

#include <LiquidCrystal.h>

Tendo feito isso, devemos inicializar a variável para leitura de um caractere. Também iremos  adicionar o comando responsável por inicializar a biblioteca com os pinos escolhidos. 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//Inicializa os pinos
char leitura; //Variavel que irá armazenar o caractere

O próximo passo é inicializarmos a variável que configura a taxa de bits por segundo (Serial.begin()) e inicializarmos uma variável com o número de colunas e linhas do visor, como estamos usando um LCD de 16 x 2, essas serão as dimensões inicializadas.

void setup() {

  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.clear(); //Limpa o que está no visor
}
Note que tais variáveis foram inicializadas dentro do "void setup".

Por fim, iremos adicionar o comando de leitura do caractere e os comandos de impressão no visor.

void loop() {
  leitura = Serial.read();
  
  lcd.setCursor(0,0);//Imprime  a partir da coluna e linha 0.
  lcd.print("Letra: ");//Imprime "leitura"
  lcd.print(leitura); //Imprime o caractere lido
  
  lcd.setCursor(0,1); //Imprime a partir da coluna 0 e linha 1.
  lcd.print("Binario: ");//Imprime "Binário"
  lcd.print(leitura,BIN);//Imprime o caractere em binário
  
delay (3000); 
}

Portanto, os comando que são utilizados para um display LCD são:

#include <LiquidCrystal.h> Biblioteca do Visor LCD.
lcd.begin(nColunas, nLinhas); Informa o tamanho do visor
lcd.clear(); Limpa o visor.
lcd.setCursor(Xcoluna,Ylinha); Informa onde o texto deverá ser adicionado.
lcd.print(); Imprime um texto.


TINKECARD: https://www.tinkercad.com/things/9MfJ4EU2kMk

Comentários

  1. Teoria precisa ser aprofundada. Alem disso a representação deveria ser em Decimal, Hex, e Binario

    Tanto para uma leitura na porta Ao de um valor e tensão quanto para a digitação no monitor serial de um caractere

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Desafio da semana 11 a 16/05. Conversor A/D e Sistemas de Numeração (Teoria)

Um conversor Analógico/Digital (A/D) é um dispositivo capaz de converter sinais analógicos de tensão em sinais digitais trabalhando a partir de um intervalo bem definido de tensão. Sinais analógicos consistem em sinais que podem assumir infinitos valores entre um ponto e outro. Isso significa que, ao variar uma tensão de 1V até 2V, por exemplo, é possível encontrar infinitos valores (1.1V, 1.01V, 1.000001V, etc). Já um sinal digital possui uma quantidade limitada de valores entre dois pontos. No caso de um conversor A/D, a precisão da conversão e a quantidade de medidas possíveis depende de sua  resolução (medida em bits). Por exemplo: No caso de um conversor de 5 bits trabalhando em uma fonte que varia de 0V a 5V, os valores convertidos podem assumir  2 5   valores possíveis. Dessa forma, entre 0 e 5 volts, temos 32 valores medidos em intervalos de aproximadamente 0,156V. Ao aumentar a resolução do conversor, tais intervalos ficam menores e a precisão aumenta. A representação d

Desafio da semana 11 a 16/05. Conversão de um caractere para frases binária, hexadecimal e Decimal

Conversão de um caractere para frases binária, hexadecimal e Decimal O objetivo desse desafio é construir um circuito responsável pela leitura de um caractere e imprimir o valor em Decimal, Hexadecimal , Binário e Octal com base nos valores da tabela ASCII.