Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // DFR0075 ======================================================================
- // Code fabricant modifié du module 5 boutons DFR0075
- // https://wiki.dfrobot.com/ADKeyboard_Module__SKU__DFR0075_
- // Permet le simple clic (clic court), le clic long, et le double-clic
- // une version hyper commentée de ce code se trouve ici :
- // https://pastebin.com/gVZBu2Wg
- // une version du code fabricant hyper commentée aussi se trouve ici :
- // https://pastebin.com/JXRjZ4G3
- // ===============================================================================
- // Ollivier JULLIEN || aout 2020
- // 100% libre de droit
- // (en cas de copie, merci de citer l'auteur...
- // il a travaillé dur pour vous le donner ;) )
- // ===============================================================================
- // VARIABLES
- int valLimiteHauteModule[5] = {600, 700, 760, 850, 900};
- const int nombreBoutons = 5;
- const int pinModule5BP = 0;
- int valeurLue;
- int numBouton = -1;
- int derniereLue = -1;
- int memoireNumBouton = -1;
- int ancienneMemoireNumBouton =-1;
- unsigned long debutPression;
- unsigned long debutEntreDeux;
- unsigned long dureePression;
- unsigned long dureeEntreDeux;
- // FONCTIONS
- // Fonction servant à transformer la valeur reçu (comprise entre 0 et 1023)
- // en valeur de bouton (comprise entre -1 et 4)
- int recupNumBouton (unsigned int lecture) {
- int boucleLecture;
- for (boucleLecture = 0; boucleLecture < nombreBoutons; boucleLecture ++){
- if (lecture < valLimiteHauteModule[boucleLecture]) {
- return boucleLecture;
- }
- }
- if (boucleLecture >= nombreBoutons) {
- boucleLecture = -1;
- }
- return boucleLecture;
- }
- // SET UP
- void setup() {
- Serial.begin(9600);
- }
- void loop() {
- valeurLue = analogRead(pinModule5BP);
- delay(50);
- valeurLue = analogRead(pinModule5BP);
- numBouton = recupNumBouton(valeurLue);
- // Si on vient d'enfoncer le bouton
- if (numBouton != derniereLue && numBouton != -1) {
- dureeEntreDeux = (millis() - debutEntreDeux);
- debutPression = millis();
- derniereLue = numBouton;
- ancienneMemoireNumBouton = memoireNumBouton;
- memoireNumBouton = numBouton;
- // Si on vient de relâchcer le bouton
- } else if (numBouton != derniereLue && numBouton == -1) {
- debutEntreDeux = millis();
- dureePression = millis() - debutPression;
- derniereLue = numBouton;
- if (dureeEntreDeux > 350) {
- if (dureePression < 250 ) {
- Serial.print("clic court sur le bouton ");
- Serial.println(memoireNumBouton);
- } else if (dureePression >= 250) {
- Serial.print("clic long sur le bouton ");
- Serial.println(memoireNumBouton);
- }
- } else {
- if (dureePression < 250 ) {
- if (memoireNumBouton == ancienneMemoireNumBouton){
- Serial.print("double clic sur le bouton ");
- Serial.println(memoireNumBouton);
- Serial.print("antepenultieme ");
- Serial.println(ancienneMemoireNumBouton);
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment