LOCODUINO

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

jeudi 28 mars 2024

Visiteurs connectés : 80

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 (...)

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.)

8 Messages

Rubrique Matériel

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)

Le microcontrôleur ATtiny45 (9)

Le microcontrôleur ATtiny45 (10)

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

Un minimum pour jouer rapidement avec un Arduino

Où acheter ?

Résistances, kézako ?

Les cartes Teensy

Relais électromagnétique

Les diodes classiques

Détecteurs à ultrasons

De nouveaux composants pour continuer à jouer

La carte Arduino Uno

Bouton poussoir

Les différents types de mouvements d’un servomoteur

Les encodeurs en quadrature

Les indispensables du prototypage

Les écrans LCD alphanumériques

Des bus de communication pour l’Arduino

Les interrupteurs

Signaux lumineux et Arduino

Les shields de prototypage et de connexion

Commande de moteur à courant continu

Choisir sa carte Arduino

Une station DCC complète, polyvalente et économique avec JMRI.

Écran couleur tactile Kuman

Capteurs à effet Hall

Programmation des ATtiny Digispark

Ma première centrale DCC

Ma première manette DCC (1)

Une station DCC minimale avec boutons de commande et écran Oled

Ma première manette DCC (2)

Le Raspberry Pi Pico

Signalisation et sonorisation du va-et-vient pour deux trains

Configurateur de CV sur base de la station DCC minimale

Fabrication d’un programmateur pour microcontrôleurs ATtiny

Détection RailCom© avec ESP32 (ou Arduino)

Adieu Uno, bonjour Uno !

Ma nouvelle manette DCC avec ESP32 (1)

Ma nouvelle manette DCC avec ESP32 (2)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (1)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (2)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (3)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino.(4)

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (5)

Les derniers articles

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (5)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino.(4)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (3)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (2)


bobyAndCo

LES SATELLITES AUTONOMES : une nouvelle approche du concept de Satellites Locoduino. (1)


bobyAndCo

Détection RailCom© avec ESP32 (ou Arduino)


bobyAndCo, catplus

Ma nouvelle manette DCC avec ESP32 (2)


msport

Ma nouvelle manette DCC avec ESP32 (1)


msport

Adieu Uno, bonjour Uno !


Christian

Fabrication d’un programmateur pour microcontrôleurs ATtiny


Christian, Dominique, Jean-Luc

Les articles les plus lus

Commande de moteur à courant continu

Capteurs à effet Hall

Une station DCC complète, polyvalente et économique avec JMRI.

Programmation des ATtiny Digispark

Les différents types de mouvements d’un servomoteur

Les diodes classiques

Bouton poussoir

Le microcontrôleur ATtiny45 (8)

Relais électromagnétique

Le Raspberry Pi Pico