Ler valores analógicos a partir de um potenciômetro com Arduino

Ler valores analógicos a partir de um potenciômetro com Arduino

Neste projeto vamos aprender a ler um valor de tensão usando um pino analógico. Utilizaremos um potenciômetro para ajustar esse valor, o qual poderia também ser fornecido a partir de outra fonte, como um sensor, por exemplo.

Os valores lidos podem ser usados para disparar eventos, como acionar um alarme, motor ou outro elemento qualquer. Neste tutorial os valores lidos serão exibidos no monitor serial.

Abaixo temos o diagrama esquemático a ser utilizado:

Ler dados a partir de um potenciômetro com Arduino

É um projeto bem simples. Vamos precisar de um potenciômetro de 10 kΩ (outros valores próximos também servirão), e de um resistor de baixo valor (47 Ω são suficientes) para evitar que uma corrente em excesso possa danificar seu Arduino.

Vamos começar conectando o potenciômetro entre os pinos 5V e GND, e seu terminal central (divisor de tensão) será conectado ao pino analógico A0, a partir de onde será feita a leitura do valor da tensão elétrica.

Código do sketch

Abaixo temos o código utilizado no projeto:

const int potenciometro = 0; // pino de entrada do potenciômetro
int valor = 0;
 
void setup() {
Serial.begin(9600);
}
 
void loop() {
valor = analogRead(potenciometro);
Serial.println(valor);
delay(100);
}

Funcionamento

Um potenciômetro possui três terminais. Dois desses terminais são conectados a um material resistivo interno, e o terceiro terminal é conectado a um eixo giratório que pode ser rotacionado para fazer contato ao longo do material resistivo.

Geralmente esse é o terminal central. Conforme o potenciômetro gira, a resistência entre o terminal central e os outros terminais muda, aumentando em relação a um dos terminais e diminuindo em relação ao outro terminal.

Desta forma, se aplicarmos uma tensão elétrica entre os terminais laterais do potenciômetro, podemos variar sua resistência em relação ao terminal central, provocando uma queda de tensão cujo valor irá depender da posição do eixo giratório.

Essa tensão será lida no pino A0 do Arduino, e poderemos ler no monitor serial um valor numérico associado, que irá variar de 0 para quando a tensão estiver em seu nível mais baixo até um valor máximo (1023), para quando a tensão estiver próxima de 5 volts.

Note que não será exibido o valor da tensão em si, pois não se trata de um voltímetro, mas sim um valor numérico mapeado a partir da leitura do nível de tensão em A0.

Vamos usar o monitor serial para exibir esse valor numérico proporcional à tensão elétrica lida no pino A0. Conforme ajustamos o potenciômetro, o nível de tensão será modificado, e o valor exibido no computador será alterado de acordo. A leitura é feitam em intervalos de 100 ms, ajustado pela função delay().

A figura a seguir ilustra o circuito montado em uma matriz de contatos:

Arduino ocm potenciômetro e resistor - entrada analógica

Após compilar e carregar o código no Arduino, abra o monitor serial clicando em Ferramentas -> Monitor serial no Arduino IDE (ou pressione a combinação de teclas Ctrl + Shift + M), e observe que os valores capturados na entrada analógica aparecerão. Movimente o eixo do potenciômetro e você verá os valores sendo alterados de acordo com a rotação aplicada, como podemos ver na captura de tela abaixo:

Monitor Serial - Capturando valore analógicos com um potenciômetro

Na figura podemos ver que eu variei a rotação do potenciômetro de um valor próximo ao máximo até zero, e depois de volta ao valor máximo, ou seja, no terminal central do potenciômetro fomos da tensão máxima até 0V, e de volta à tensão máxima (aproximadamente 5V, fora a queda no resistor de 47Ω).

Você pode aprender mais sobre a função analogRead() neste artigo, que também traz informações sobre as funções analogWrite() e analogReference().

É isso aí! Vamos aprimorar essa técnica nos próximos projetos, a fim de efetuarmos a leitura de sinais de sensores e o controle de cargas a partir dos valores lidos.

Até mais!

 

Sobre Fábio dos Reis (1150 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Astronomia, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Comentário em Ler valores analógicos a partir de um potenciômetro com Arduino

  1. Douglas Myckael // 04/02/2017 em 0:32 // Responder

    Muito legal esse projeto

1 Trackbacks & Pingbacks

  1. Arduino - Função map() - Mapeando intervalos de valores numéricos - Bóson Treinamentos em Tecnologia

Escreva um comentário

Seu e-mail não será divulgado


*