LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

jeudi 14 décembre 2017

12 visiteurs en ce moment

Les interrupteurs

Ou comment basculer d’un avis à l’autre…

. Par : Thierry

Des interrupteurs, vous en utilisez tous les jours : allumer la lumière, mettre son clignotant (enfin ceux qui les utilisent…), allumer son aspirateur (si, si, le truc bruyant qui vous réveille le samedi matin !). C’est un élément extrêmement courant de notre vie quotidienne. Il ne faut pas confondre ces bascules matérielles avec des dispositifs (...)

Retourner à l'article

Vous répondez à :

Les interrupteurs 10 septembre 2016 21:53, par Dominique

Il y a peut-être une alternative à l’utilisation de la bibliothèque Bounce2 pour éliminer les rebonds :

Le principe de l’anti-rebond est de faire 2 mesures espacées d’un temps de latence (quelques millisecondes), la 2ème mesure devant confirmer la première.

Bounce2 embarque un temporisation dans chacun des objets dont les méthodes peuvent être appelées n’importe quand, et c’est bien normal. Si on appelle inter.update() dans la loop, cela déroule pas mal de code dans le processeur, à chaque tour de la loop donc pour presque rien.

Si, par contre, on limite l’accès en lecture aux pins des inters, après l’écoulement d’une tempo qui est placée dans la loop, on n’a plus besoin de la bibliothèque bounce2, cette tempo pouvant être commune à tous les inters et poussoirs branchés sur des pins.

Exemple :

 if (millis()-debounce > SAMPLE_TIME) {
   debounce = millis();  
   if ((digitalRead(STARTSTOP) == 0) && bouton ) {
     if (dccON) {
       digitalWrite(SIGNAL_ENABLE_PIN_MAIN,LOW);
       dccON = false;
     } else {
       digitalWrite(SIGNAL_ENABLE_PIN_MAIN,HIGH);
       dccON = true;
     }
     bouton = false;
   }
   if (digitalRead(STARTSTOP) == 1) {
     bouton = true;
   }      
 }

Ici un seul bouton STARTSTOP est testé et comparé à sa valeur précédente "bouton" pour signaler un changement. J’aurais pu tester plusieurs inters et poussoirs dans le même temps.

Puisque ce code retarde les mesures suivantes après la tempo "SAMPLE_TIME", on obtient le même résultat qu’avec Bounce2… en plus simple !

Et pendant que la loop ne s’occupe pas des poussoirs et inters, elle a plus de temps pour les autres tâches.

N’est-il pas ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

2 Messages

Rubrique Matériel

Fonctionnement et pilotage d’une DEL

Qu’est ce qu’une carte Arduino ?

Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803

Résistances, kézako ?

Relais électromagnétique

Les diodes classiques

Détecteurs à ultrasons

La carte Arduino Uno

Bouton poussoir

Les différents types de mouvements d’un servomoteur

Les encodeurs en quadrature

Les écrans LCD alphanumériques

Des bus de communication pour l’Arduino

Les interrupteurs

Le microcontrôleur ATtiny45 (1)

Le microcontrôleur ATtiny45 (2)

Le microcontrôleur ATtiny45 (3)

Le microcontrôleur ATtiny45 (4)

Le microcontrôleur ATtiny45 (5)

Le microcontrôleur ATtiny45 (6)

Le microcontrôleur ATtiny45 (7)

Le microcontrôleur ATtiny45 (8)

Signaux lumineux et Arduino

Les shields de prototypage et de connexion

Commande de moteur à courant continu

Les derniers articles

Le microcontrôleur ATtiny45 (8)


Christian

Le microcontrôleur ATtiny45 (7)


Christian

Commande de moteur à courant continu


Christian

Le microcontrôleur ATtiny45 (6)


Christian

Les shields de prototypage et de connexion


Christian

Le microcontrôleur ATtiny45 (5)


Christian

Signaux lumineux et Arduino


Christian

Le microcontrôleur ATtiny45 (4)


Christian

Le microcontrôleur ATtiny45 (3)


Christian

Le microcontrôleur ATtiny45 (2)


Christian

Les articles les plus lus

La carte Arduino Uno

Les diodes classiques

Commande de moteur à courant continu

Les écrans LCD alphanumériques

Des bus de communication pour l’Arduino

Qu’est ce qu’une carte Arduino ?

Fonctionnement et pilotage d’une DEL

Bouton poussoir

Les encodeurs en quadrature

Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803