Um potenciômetro é um simples botão giratório que fornece uma resistência variável e que pode ser lida pelo Arduino como um valor analógico. No exemplo a seguir, esse valor é usado para controlar a taxa de piscamento de um LED.
Conectamos três fios à placa Arduino. O primeiro vai do terra a partir do terminal esquerdo do potenciômetro (ele possui geralmente três terminais). O segundo fio vai dos 5 volts ao terminal direito. O terceiro e último fio vai da entrada analógica 2 ao terminal central do potenciômetro.
Se girarmos o cursor do potenciômetro, alteramos a resistência em cada lado do contato elétrico que vai conectado ao terminal central do botão. Isso provoca a mudança na proximidade do terminal central aos 5 volts ou ao terra, o que implica numa mudança no valor analógico de entrada. Quando o cursor for levado até o final da escala, teremos por exemplo zero volts a ser fornecido ao pino de entrada do Arduino e, assim, ao lê-lo obteremos 0. Quando giramos o cursor até o outro extremo da escala, haverá 5 volts a ser fornecido ao pino do Arduino e, ao lê-lo, teremos 1023. Em qualquer posição intermediária do cursor, teremos um valor entre 0 e 1023, que será proporcional à tensão elétrica sendo aplicada ao pino do Arduino.
/* * Entrada analógica * por DojoDave <https://www.0j0.org> * * Liga e desliga um LED conectado ao pino digital 13. O tempo * que o LED permanece ligado ou desligado depende do valor * obtido pelo analogRead(). No caso mais simples, conectamos * um potenciômetro ao pino analógico 2. */ int potPin = 2; // selecione o pino de entrada ao potenciômetro int ledPin = 13; // selecione o pino ao LED int val = 0; // variável a guardar o valor proveniente do sensor void setup() { pinMode(ledPin, OUTPUT); // declarar o pino ledPin como saída } void loop() { val = analogRead(potPin); // ler o valor do potenciômetro digitalWrite(ledPin, HIGH); // ligar o ledPin delay(val); // pausar o programa por algum tempo digitalWrite(ledPin, LOW); // desligar o ledPin delay(val); // pausar o programa por algum tempo }