Advertisement
GobiernoFederal

Contador de pulsaciones arduino

Nov 21st, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.44 KB | None | 0 0
  1. int estadoAnterior1=0;
  2. int estadoAnterior2=0;
  3. int cont=0;
  4.  
  5. struct myMillis{
  6. unsigned long offset = 0;
  7.   unsigned long  get(){
  8.     return millis() - offset;
  9.   }
  10.   void reset(){
  11.     offset=millis();
  12.   }
  13.   void set(unsigned long value){
  14.     offset = millis() - value;
  15.   }
  16. };
  17.  
  18. myMillis MM;
  19.  
  20. void setup(void) {
  21.   Serial.begin(9600);
  22. pinMode(5 , INPUT); //boton 1
  23. pinMode(6, INPUT); // boton 2
  24. }
  25.  
  26. void loop(void) {
  27.   int btn1= digitalRead(5);
  28.   int btn2= digitalRead(6);
  29.  
  30.  
  31. if(btn1!=estadoAnterior1){ //Si hay un cambio de estado, entramos en el if
  32.   if(btn1==0){
  33.     cont++; //Aumentamos en una unidad la cuenta
  34.     Serial.println(cont); //Imprime el valor por consola
  35.   }
  36. }
  37. estadoAnterior1=btn1; //guardamos el estado actual del pulsador para la siguiente iteración
  38.  
  39. if(btn2!=estadoAnterior2){ //Si hay un cambio de estado, entramos en el if
  40.   if(btn2==0){
  41.     cont++; //Aumentamos en una unidad la cuenta
  42.     Serial.println(cont); //Imprime el valor por consola
  43.   }
  44. }
  45. estadoAnterior2=btn2; //guardamos el estado actual del pulsador para la siguiente iteración
  46.  
  47.  
  48. if(cont==3){ // Si se presionaron los botones 3 veces entre los dos...
  49.   if (MM.get() > 5000) { // Si pasaron los 5 segundos...
  50.  Serial.println("pasaron los 5 segundos"); // Imprime
  51.  cont=0; // Se inicializa el contador. (esta parte depende si se continua o no el programa)
  52.     MM.reset();    // reseteo el millis().
  53.   }
  54. }
  55. if(cont==10){
  56.   cont=0;
  57. }
  58.  
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement