Neste tutorial estamos introduzindo o conceito de ADC (Conversão Analógico para Digital) no ARDUINO UNO. A placa Arduino possui seis canais ADC, conforme mostrado na figura abaixo. Dentre eles, qualquer um ou todos podem ser usados como entradas para tensão analógica. O Arduino Uno ADC tem resolução de 10 bits (portanto, os valores inteiros de (0- (2 ^ 10) 1023)). Isso significa que ele mapeará tensões de entrada entre 0 e 5 volts em valores inteiros entre 0 e 1023. Portanto, para cada (5/1024 = 4,9 mV) por unidade.
Em tudo isso vamos conectar um potenciômetro ou potenciômetro ao canal 'A0' e mostrar o resultado do ADC em um display simples. As exibições simples são unidades de exibição 16x1 e 16x2. A unidade de exibição 16x1 terá 16 caracteres e está em uma linha. O 16x2 terá 32 caracteres no total 16in 1 r linha e outro 16 em 2 nd linha. Aqui deve-se entender que em cada caractere há 5x10 = 50 pixels, então para exibir um caractere todos os 50 pixels devem funcionar juntos, mas não precisamos nos preocupar com isso porque há um outro controlador (HD44780) na unidade de exibição que faz o trabalho de controlar os pixels (você pode ver isso na unidade de LCD, é o olho roxo atrás).
Componentes necessários
Hardware: ARDUINO UNO, fonte de alimentação (5v), JHD_162ALCD (16x2LCD), capacitor 100uF, potenciômetro ou potenciômetro 100KΩ, capacitor 100nF.
Software: IDE arduino (Arduino noturno)
Diagrama de Circuito e Explicação
No LCD 16x2, existem 16 pinos ao todo, se houver uma luz de fundo, se não houver luz de fundo, haverá 14 pinos. Pode-se ligar ou deixar os pinos da luz de fundo. Agora, nos 14 pinos, há 8 pinos de dados (7-14 ou D0-D7), 2 pinos de fonte de alimentação (1 e 2 ou VSS e VDD ou GND e + 5v), 3º pino para controle de contraste (VEE-controla a espessura dos caracteres mostrado) e 3 pinos de controle (RS & RW e E).
No circuito, você pode observar que peguei apenas dois pinos de controle, o bit de contraste e READ / WRITE não são usados com frequência, então eles podem estar em curto com o aterramento. Isso coloca o LCD em maior contraste e modo de leitura. Precisamos apenas controlar os pinos ENABLE e RS para enviar caracteres e dados de acordo.
As conexões que são feitas para LCD são fornecidas abaixo:
PIN1 ou VSS para aterrar
PIN2 ou VDD ou VCC para alimentação de + 5v
PIN3 ou VEE para aterrar (oferece contraste máximo, melhor para um iniciante)
PIN4 ou RS (Registrar Seleção) para PIN8 de ARDUINO UNO
PIN5 ou RW (leitura / gravação) para aterrar (coloca o LCD no modo de leitura facilita a comunicação para o usuário)
PIN6 ou E (habilitar) para PIN9 de ARDUINO UNO
PIN11 ou D4 a PIN10 de ARDUINO UNO
PIN12 ou D5 a PIN11 de ARDUINO UNO
PIN13 ou D6 a PIN12 de ARDUINO UNO
PIN14 ou D7 a PIN13 de ARDUINO UNO
O ARDUINO IDE permite ao usuário usar LCD no modo de 4 bits. Este tipo de comunicação permite ao usuário diminuir o uso de pin no ARDUINO, ao contrário de outros o ARDUINO não precisa ser programado separadamente para ser usado no modo 4 it porque por padrão o ARDUINO está configurado para se comunicar no modo 4 bits. No circuito você pode ver que usamos comunicação de 4 bits (D4-D7).
Portanto, pela mera observação da tabela acima, estamos conectando 6 pinos do LCD ao controlador, em que 4 pinos são pinos de dados e 2 pinos para controle.
A figura acima mostra o diagrama de circuito do ADC de ARDUINO UNO.
Trabalhando
Para fazer a interface de um LCD com o ARDUINO UNO, precisamos saber algumas coisas.
|
Em primeiro lugar, os canais UNO ADC têm um valor de referência padrão de 5V. Isso significa que podemos fornecer uma tensão de entrada máxima de 5 V para conversão ADC em qualquer canal de entrada. Como alguns sensores fornecem tensões de 0-2,5 V, com uma referência de 5 V obtemos menos precisão, portanto, temos uma instrução que nos permite alterar esse valor de referência. Portanto, para alterar o valor de referência, temos (“analogReference ();”)
Como padrão, obtemos a resolução máxima do ADC da placa que é 10bits, esta resolução pode ser alterada usando a instrução (“analogReadResolution (bits);”). Essa mudança de resolução pode ser útil em alguns casos.
Agora, se as condições acima forem definidas como padrão, podemos ler o valor do ADC do canal '0' chamando diretamente a função "analogRead (pino);", aqui "pino" representa o pino onde conectamos o sinal analógico, neste caso, ser “A0”. O valor do ADC pode ser convertido em um número inteiro como “int ADCVALUE = analogRead (A0); ”, Por esta instrução o valor após ADC é armazenado no inteiro“ ADCVALUE ”.
AGORA vamos falar um pouco sobre o LCD 16x2. Primeiro, precisamos habilitar o arquivo de cabeçalho ('#include
Em segundo lugar, precisamos dizer à placa que tipo de LCD estamos usando aqui. Uma vez que temos tantos tipos diferentes de LCD (como 20x4, 16x2, 16x1 etc.). Aqui, faremos a interface de um LCD 16x2 com o UNO, então obteremos 'lcd.begin (16, 2);'. Para 16x1, obtemos 'lcd.begin (16, 1);'.
Nesta instrução vamos dizer à placa onde conectamos os pinos. Os pinos que estão conectados devem ser representados na ordem como “RS, En, D4, D5, D6, D7”. Esses pinos devem ser representados corretamente. Como conectamos RS ao PIN0 e assim por diante, conforme mostrado no diagrama de circuito, representamos o número do pino à placa como “LiquidCrystal LCD (0, 1, 8, 9, 10, 11);”.
Depois de acima tudo que resta é enviar dados, os dados que precisam ser exibidos no LCD devem ser escritos como “cd.print (" hello, world! ");”. Com este comando, o LCD exibe 'hello, world!'.
Como você pode ver, não precisamos nos preocupar com mais nada, apenas temos que inicializar e o UNO estará pronto para exibir os dados. Não precisamos escrever um loop de programa para enviar os dados BYTE por BYTE aqui.
O uso do ADC do Arduino Uno é explicado passo a passo no programa C fornecido a seguir.