VARIANDO A ENTRADA

VARIANDO A ENTRADA

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.

 pg07

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.