/* * Contadorregresivo.pde ... * * Fecha: 30/08/10 * Autor: V. Garcia * */ int switchPin2 = 9; // switch se conecta al pin 9 int ledPin2 = 3; // el LED se conecta al pin 3 int vval; // variable para lectura del estado del pin int vval2; // variable para leer el estado delayed/debounced int botonStado2; // variable para mantener el estado del botón int buttonCounter2 = 0 ; // contador para el número de pulsos de botón int lightMode2 = 0; // Esta la luz EN o AP void setup() { pinMode(switchPin2, INPUT); // pone el pin switch como entrada pinMode(ledPin2, OUTPUT); Serial.begin(9600); // Comunicación serie puesta a 9600bps botonStado2 = digitalRead(switchPin2); // lee el estado inicial buttonCounter2 = -92; // lo uso para saltarme los 91 primeros. Despues se quita } void loop(){ vval = digitalRead(switchPin2); // lee el valor de entrada y almacénlo en val delay(10); // 10 milisegundos son una cantidad de tiempo buena vval2 = digitalRead(switchPin2); // lee la entrada otra vez para comprobar saltos if (vval == vval2) { // asegúrar que conseguimos 2 lecturas constantes if (vval != botonStado2) { // el estado de botón ha cambiado! if (vval == LOW) { // compruebe si el botón es presionado buttonCounter2= buttonCounter2 - 1 ; if (lightMode2 == 0) { // esta la luz AP? lightMode2 = 1; // conecta la luz! digitalWrite(ledPin2, HIGH); } else { lightMode2 = 0; // apaga la luz! digitalWrite(ledPin2, LOW); } Serial.print("Numero de pulsaciones: "); // muestro las // if (buttonCounter2 > -10) Serial.print("0"); // pulsaciones Serial.println(buttonCounter2, DEC); // habidas } if (buttonCounter2 <= -99){ buttonCounter2 = 0; } } botonStado2 = vval; // guardar el nuevo estado en la variable } }