Bem vindo ao Multilógica Shop, o primeiro site a comercializar os produtos Arduino e artigos de Open Source Hardware no Brasil. Aqui você vai encontrar toda a referência de instalação e programação da plataforma Arduino traduzida para o nosso português, bem como tutoriais e exemplos. Encontre mais informações sobre como comprar clicando aqui.
Filtrar o ruído
Este exemplo mostra o uso de um botão como interruptor: cada vez que você pressiona o botão, o LED (ou outro componente) liga (se estiver desligado) ou desliga (se estiver ligado). Ele também desrebota o sinal da entrada, sem a qual pressionando uma vez o botão, apareceria no código múltiplos acessos. Use a função millis() para obter a informação do momento em que o botão foi pressionado.
Circuito
Um botão entre o pino 7 e o terra e um LED no pino 13.
Code
int inPin = 7; // o numero do pino de entrada
int outPin = 13; // o numero do pino de saida
int state = HIGH; // o estado corrente do pino de saída
int reading; // a leitura corrente do pino de entrada
int previous = LOW; // a leitura previa do pino de entrada
// as seguintes variaveis sao do tipo long por que o tempo e medido em milisegundos e
// rapidamente se tornarão um numero grande demais para uma variavel do tipo int
long time = 0; // o ultimo tempo em que o pino de entrada teve o valor alterado
long debounce = 200; // o tempo de filtragem, aumentar se a saida piscar
void setup()
{
pinMode(inPin, INPUT);
pinMode(outPin, OUTPUT);
}
void loop()
{
reading = digitalRead(inPin);// se apenas pressionarmos o botao (i.e. modificarmos a entrada de LOW para HIGH),
// e se esperamos tempo suficiente desde a última pressionada para ignorar qualquer ruído...
if (reading == HIGH && previous == LOW && millis() - time > debounce) {
// ... inverte a saída
if (state == HIGH)
state = LOW;
else
state = HIGH;
// ... e se lembra quando o botão foi pressionado pela última vez
time = millis();
}
digitalWrite(outPin, state);
previous = reading;
}
O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.


