Étape 3: Code pour les boutons
1. Copiez et collez le code ci-dessous dans une nouvelle esquisse.
2. Compiler, télécharger et puis ouvrez le Serial Monitor.
3. Appuyez sur les boutons et notez les valeurs retournées.
4. remplacer mes valeurs avec le vôtre.
5. commentez la ligne : #define DEBUG_ON
/*********************
Ce code est basé sur :
Code par Doug LaRue
depuis novembre 2008
publié sous
Creative Commons Attribution-Noncommercial-Share Alike 3.0
**********************/
#define ERROR_WINDOW 50
#define intervalle 100
#define DEBUG_ON
whichButton int ;
variable pour limiter le bouton obtenir vérifié chaque cycle
long lastChecked = 0 ;
void setup() {}
Serial.Begin(9600) ;
}
void loop() {}
Si (millis() - lastChecked > intervalle) {}
Si (int buttNum = buttonPushed(0)) {}
{if(WhichButton!=buttNum)}
Serial.Print ("bouton") ;
Serial.println(buttNum) ;
Switch (buttNum) {}
cas 1 :
Serial.println ("Do quelque chose pour 1 bouton") ;
rupture ;
cas 2 :
Serial.println ("Do quelque chose pour le bouton 2") ;
rupture ;
cas 3 :
Serial.println ("Do quelque chose pour les 3 bouton") ;
rupture ;
cas 4 :
Serial.println ("Do quelque chose pour 4 bouton") ;
rupture ;
cas no 5 :
Serial.println ("Do quelque chose pour 5 bouton") ;
rupture ;
}
whichButton = buttNum ;
}
}
lastChecked = millis() ; réinitialiser la valeur de lastChecked
}
}
int buttonPushed (int pinNum) {}
variable pour stocker la valeur lue
int val = 0 ;
activez le pullup interne de 20 k
digitalWrite((14+pinNum), HIGH) ;
Val = analogRead(pinNum) ; lire l’entrée pin
#ifdef DEBUG_ON
Serial.println(Val) ;
#endif
/ * ne pas utiliser la position supérieure, parce que c’est la même que la valeur du commutateur ouvert tout lorsque l’interne 20K Ohms pullup est activée.
Pour 5 boutons, le ERROW_WINDOW est de 50 * /
Si (val > = 923 et val < = 1023)
Serial.println ("switch 0 pressé/déclenché") ;
Si (val > = 780 et val < = 880) {/ / 830
Return 1 ;
}
ElseIf (val > = (630-ERROR_WINDOW) et val < = (630 + ERROR_WINDOW)) {/ / 630
retour 2 ;
}
ElseIf (val > = (430-ERROR_WINDOW) et val < = (430 + ERROR_WINDOW)) {/ / 430
retour 3 ;
}
ElseIf (val > = (230-ERROR_WINDOW) et val < = (230 + ERROR_WINDOW)) {/ / 230
retour 4 ;
}
ElseIf (val > = 0 et val < = (20 + ERROR_WINDOW)) {}
retour 5 ;
}
d’autre
return 0 ;
}