Étape 3: code!!
#include « OneButton.h »
Les actions je faire ca...
typedef enum {}
ACTION_NONE, / / ne rien faire.
ACTION_ON, / / set LED « Activé »
ACTION_SLOW, / / clignoter la LED « SLOW »
ACTION_FAST / / clignoter la LED « Rapide »
}
MyActions ;
Configurer un nouveau OneButton sur broche A1.
OneButton button(A1, true) ;
NextAction MyActions = ACTION_NONE ; aucune action lors du démarrage
code d’installation ici, à exécuter une fois :
void setup() {}
activez la norme conduite sur la broche 13.
pinMode (13, sortie) ; définit la broche numérique en sortie
lien vers la fonction myClickFunction à appeler à un événement de clic.
button.attachClick(myClickFunction) ;
lien vers la fonction de doubleclick pour être appelé sur un événement doubleclick.
button.attachDoubleClick(myDoubleClickFunction) ;
} / / installation
code principal ici, d’exécuter à plusieurs reprises :
void loop() {}
unsigned long maintenant = millis() ;
continuer à regarder le bouton :
Button.Tick() ;
Vous pouvez implémenter d’autre code ici ou juste attendre un certain temps
Si (nextAction == ACTION_NONE) {}
ne rien faire.
digitalWrite (13, faible) ;
} ElseIf (nextAction == ACTION_ON) {}
allumer la LED
digitalWrite (13, HIGH) ;
} ElseIf (nextAction == ACTION_SLOW) {}
faire un clignotement lent
Si {(maintenant % 1000 < 500)
digitalWrite (13, faible) ;
} else {}
digitalWrite (13, HIGH) ;
} / / Si
} ElseIf (nextAction == ACTION_FAST) {}
faire un clignotement rapide
Si {(maintenant % 200 < 100)
digitalWrite (13, faible) ;
} else {}
digitalWrite (13, HIGH) ;
} / / Si
} / / Si
} / / loop
Cette fonction sera appelée lorsque la touche a été enfoncée 1 fois et eux a passé quelque temps.
void myClickFunction() {}
Si (nextAction == ACTION_NONE)
nextAction = ACTION_ON ;
d’autre
nextAction = ACTION_NONE ;
} / / myClickFunction
Cette fonction sera appelée lorsque le bouton a été sélectionné 2 fois en peu de temps.
void myDoubleClickFunction() {}
Si (nextAction == ACTION_ON) {}
nextAction = ACTION_SLOW ;
} ElseIf (nextAction == ACTION_SLOW) {}
nextAction = ACTION_FAST ;
} ElseIf (nextAction == ACTION_FAST) {}
nextAction = ACTION_ON ;
} / / Si
} / / myDoubleClickFunction
Fin