Étape 4: Configuration de le debouncer physique
mettre en place le bouton
int buttonInt = 0 ; broche 2 est interruption 0
attachInterrupt (buttonInt, incrementProgram, RISING) ;
Cette ligne de code signifie que nous voulons l’axe indiqué par buttonInt (broche numérique 2) pour fonctionner comme une interruption. Nous voulons qu’il appelle la fonction incrementProgram, whenver il éprouve un front montant. Un front montant signifie simplement un endroit où la tension se lève très soudainement (par exemple, quand un bouton termine une connexion à 5 volts)
Nous allons utiliser la fonction incrementProgram (ci-dessous) de modifier le programme actuel, que l’Arduino est en cours d’exécution.
void incrementProgram() {}
Serial.Print("Pressed!") ;
Si (currentProgram == (NUMBER_OF_PROGRAMS - 1)) {}
currentProgram = 0 ;
}
else {}
currentProgram = currentProgram + 1 ;
}
}
N’oubliez pas ces lignes ?
#define NUMBER_OF_PROGRAMS 6
pour basculer entre les programmes
currentProgram volatile int = 0 ;
Qu’ils font maintenant un peu plus de sens ? la raison pour laquelle qu'il faut ajouter le mot clé volatil au programme actuel est parce que nous voulons faire de l’arduino savoir que ce nombre va changer régulièrement et qu’il s’agit d’une chose normale qu’il ne doit pas paniquer sur.
Le problème avec ceci, cependant, est que lorsqu’une touche est pressée, il en fait a rebondi vers le haut un bas un peu (très rapidement) avant de s’installer sur sa valeur finale. Pour enlever beaucoup de cela rebondir et lisser la transition nous allons utiliser un circuit RC comme un filtre passe-bas qui filtrent en grande partie la très rapide « rebondit ». La constante de temps du circuit RC particulier est environ 10 ms, ce qui est généralement plus lent qu’un être humain peut appuyer sur un bouton, et donc ces signaux devraient être affectées.
Puisque la plupart Schmidt déclencheurs sont inverser, la moitié gauche du diagramme circuit montre effectivement passera de 5 volts à 0 volt lorsque vous appuyez sur un bouton. Cependant, nous avons cette interruption sur une broche numérique et la nature exacte de la rebondir dans l’imprévisible. Pour résoudre ce problème, que nous allons utiliser un déclencheur Schmidt comme un convertisseur analogique/numérique de base, en tenant notre changement de mouvement lent de forte à faible dans un saut de bas en haut, envoyant un front montant, ce qui devrait déclencher notre interruption.
Le schéma utilise un déclencheur très particulier de Schmidt et vôtre peut être différente. Consultez la fiche technique pour voir exactement comment cela devrait fonctionner, mais la mise en place montré est très fréquente.
Vout doit être connecté à la broche numérique 2.