Détecter un changement de valeur
Organigramme pour l'envoi de la valeur d'une entrée numérique seulement si elle change
Extraits de code pertinents
Pour détecter un changement de valeur, il faut :
- Créer une variable pour se souvenir de la valeur précédente:
int maValeurPrecedente; // VALEUR PRÉCÉDENTE DE L'ENTRÉE NUMÉRIQUE
- Aller chercher la nouvelle valeur.
- Comparer la nouvelle valeur avec la précédente:
if ( maNouvelleValeur != maValeurPrecedente ) { // SI LA NOUVELLE VALEUR EST DIFFERENTE DE LA PRÉCÉDENTE
// FAIRE QQCH
}
- Mettre en mémoire la nouvelle valeur:
maValeurPrecedente = maNouvelleValeur; // METTRE EN MÉMOIRE LA NOUVELLE VALEUR
Exemple : envoyer la valeur d'une entrée numérique seulement si elle change
int maBrocheEntreeNumerique = 4;
int maValeurPrecedente; // VALEUR PRÉCÉDENTE DE L'ENTRÉE NUMÉRIQUE
void setup() { // AU DÉMARRAGE
Serial.begin(57600); // CONFIGURER LA COMMUNICATION SÉRIE
pinMode( maBrocheEntreeNumerique , INPUT_PULLUP); // CONFIGURER LA BROCHE DE L'INTERRUPTEUR EN ENTRÉE
}
void loop() { // RÉPÉTER LE PLUS VITE POSSIBLE
int maNouvelleValeur = digitalRead( maBrocheEntreeNumerique ); // LECTURE DE TENSION
if ( maNouvelleValeur != maValeurPrecedente ) { // SI LA NOUVELLE VALEUR EST DIFFERENTE DE LA PRÉCÉDENTE
Serial.print( maNouvelleValeur ); // ENVOYER LA VALEUR
Serial.println(); // TERMINER LE MESSAGE
}
maValeurPrecedente = maNouvelleValeur; // METTRE EN MÉMOIRE LA NOUVELLE VALEUR
}