Paso 5: Estado de interruptor de lectura con un microcontrolador
Nota que el diseño a continuación muestra un resistor de pull-up de 10K pero el código utilizo la resistencia de pull-up 'incorporado' que puede activar colocando un perno de la entrada a alta salida (es muy aseado!) Si utiliza el pull-up interna puede omitir uno externo.
/ * Mejor Debouncer - este circuito debouncing es más resistente y trabajará con los interruptores de inclinación! */
/ * http://www.ladyada.net/learn/sensor/tilt.html * /
int inPin = 2; el número de la entrada de pin
int outPin = 13; el número de los pines de salida
int LEDstate = alto; el estado actual del pin de salida
int leer; la lectura actual del pin de entrada
int anterior = bajo; la lectura anterior de la entrada de pin
las variables de seguimiento son muchas de porque el tiempo, medido en milisegundos,
rápidamente se convertirá en un número más grande que puede ser almacenado en un int.
tiempo = 0; la última vez que el pin de salida fue fijado
tiempo de debounce = 50; el tiempo de debounce, aumenta si la salida parpadea
void setup()
{
pinMode (inPin, entrada);
digitalWrite (inPin, HIGH); encender la de la resistencia de pull-up
pinMode (outPin, salida);
}
void loop()
{
switchstate int;
lectura = digitalRead(inPin);
Si el interruptor cambia, debido a rebote o presionar...
Si (leer! = anterior) {}
reiniciar el temporizador debouncing
tiempo = millis();
}
Si ((millis()-time) > debounce) {}
lo que el interruptor está en su estado allí por mucho tiempo
que permite colocar en él!
switchstate = lectura;
Invertir ahora la salida en el LED pin13
Si (switchstate == HIGH)
LEDstate = bajo;
otra cosa
LEDstate = alto;
}
digitalWrite (outPin, LEDstate);
Guardar la última lectura por lo que mantenemos una cuenta corriente
anterior = lectura;
}