VARIANDO A ENTRADA, PORTA ANALOGICA, INSTRUÇÕES INPUT_PULLUP, "analogRead" E "map"
Uma porta configurada como entrada (INPUT) também pode ter sua entrada mudada de digital para modulada (parcial), desde que seja indicada para isso.
Existem 6 portas que fazem isso: 14, 15, 16, 17, 18 e 19, identificadas respectivamente por A0, A1, A2, A3, A4, A5. Neste experimento usaremos um potenciômetro para variar a entrada do sinal e assim variar o brilho do LED.
int partes; //valor parcial para a porta de entrada
int pinLED = 11; //número do pino que será conectado um LED
int pinPot = A0; //pino de entrada do potenciometro
void setup() //inicio do bloco de setup
{ //inicia o bloco de instruções do setup
pinMode (pinLED, OUTPUT); // informa que o pinLED é saída
pinMode (pinPot, INPUT_PULLUP); //informa que o pino eh entrada analogica
} //finaliza o bloco do setup
void loop()
{ //inicia o bloco do loop
partes = analogRead (A0); //faz a leitura do valor parcial, de 0 a 1023.
partes = map (partes,0,1023,0,255); //transforma o valor em proporcao a 255
analogWrite (pinLED, partes); //coloca tensao proporcional no LED
delay(20); //tempo de espera necessario a percepcao visual
} //finaliza o bloco do loop
Você poderia substituir o LED por um motor, MAS, o Arduino tem um limite de corrente de 40 miliamperes por porta. Isto suporta apenas um pequeno motor, como do disco de um leitor de CD, e SEM carga em seu eixo. Para acionar motores mais "potentes" é necessário um drive de potencia que amplifica a "força" da porta do Arduino.
Novas palavras: INPUT_PULLUP, analogRead, map.
DESAFIO:
faça um esquema com dois LED's de forma que quando um aumenta a luminosidade o outro diminui. Dica: vai precisar duas variáveis e duas instruções "map", uma para cada LED.