Bouton poussoir
. Par : Dominique, Guillaume, Jean-Luc
Vous répondez à :
Oui. Regardez les exemples de la bibliothèque !
21 Messages
-
Bouton poussoir 1er janvier 2016 21:26, par tanguy
Bonjour et bonne année,
dans l’extrait de code
Bounce bouton = Bounce() ;
à quoi sert la deuxième partie " = Bounce()" ?-
Bouton poussoir 2 janvier 2016 10:26, par Jean-Luc
Bonjour et meilleurs vœux pour 2016.
Ça ne sert pas à grand chose. D’ailleurs je l’ai supprimé. Dans les deux cas, le constructeur sans argument de
Bounce
est appelé. -
Bouton poussoir 2 janvier 2016 10:38, par Thierry
Bonjour
Lors de la déclaration d’une instance (un exemplaire) de la classe Bounce nommée ’bounce’, il est possible de faire appel au constructeur que l’on veut plutôt que de faire automatiquement appel à celui par défaut. La notation employée ici est inutile puisque l’on appelle quand même le constructeur par défaut sans arguments ! Il s’agit là du code officiel de l’exemple ’Bounce’ livré avec la bibliothèque Bounce2...
-
-
Bouton poussoir 2 janvier 2016 10:38, par Thierry
haaaa . Grilled ! :)
-
problèmes de rebond , Bouton poussoir 30 mars 2017 09:20, par Almamy
Bonjour, actuellement je cherche à mettre en pause l’affichage sur mon joulemètre qui reçoit les valeurs d’un emetteur NRF24L01 . Ce pendant quand j’appuie sur le bouton, il fonctionne correctement mais au fur et à mesure ce problème de rebond est de plus en plus fréquent. J’utilise la bibliothèque Bounce2 et un trigger de schmitt, mais rien à faire. Lorsque je relie la pin qui reçoit l’information du bouton au trigger, le basculement se fait automatiquement, pouvez-vous m’aider ?
Voici mon programme :
#include <Bounce2.h> #include <PinChangeInt.h> #include <LiquidCrystal.h> ////////////////////////////////////////////// #include <SPI.h> #include <Mirf.h> #include <MirfHardwareSpiDriver.h> #include <MirfSpiDriver.h> #include <nRF24L01.h> ////////////////////////////////////////////////////// float energy; float times; float paramValues[2]={0}; int timesS; int timesM; //////////////////////////////////////////////////////////// //int pinBouton; boolean etatRecu; const byte pinBouton =6; Bounce bouton = Bounce(); //////////////////////////////////////////////////////////// LiquidCrystal lcd(8,7,5,4,3,2); void setup() { // put your setup code here, to run once: Serial.begin(9600); etatRecu=0; bouton.attach(pinBouton); bouton.interval(5); pinMode(pinBouton, INPUT); PCintPort: attachInterrupt(pinBouton,tour,CHANGE); //////////////////////////// Mirf.cePin=9; Mirf.csnPin=10; Mirf.spi=&MirfHardwareSpi; Mirf.init(); Mirf.channel=1; Mirf.payload=sizeof(paramValues) ; Mirf.config(); Mirf.configRegister(RF_SETUP,00100110); //Mirf.configRegister(CONFIG,01111011); Mirf.setTADDR((byte*)"nrf01"); Mirf.setRADDR((byte*)"nrf02"); ////////////////////////////// lcd.begin(16,2); ////////////////////////////// } void loop() { bouton.update(); tour(); //Serial.println(etatRecu); if (etatRecu){ if(Mirf.dataReady()){ Mirf.getData((byte*)¶mValues); energy = paramValues[0]; times = paramValues[1]; timesM=times/60; timesS= times-60*timesM; } //Serial.print("Energy:"); Serial.println(energy); // Serial.print("Time:"); Serial.print(timesM); Serial.print(":"); Serial.println(timesS); Serial.println("pause"); } else { if(Mirf.dataReady()){ Mirf.getData((byte*)¶mValues); energy = paramValues[0]; times = paramValues[1]; timesM=times/60; timesS= times-60*timesM; } //Serial.print("Energy:"); Serial.println(energy); // Serial.print("Time:"); Serial.print(timesM); Serial.print(":"); Serial.println(timesS); //} lcd.print("Energy:"); lcd.setCursor(8,0); lcd.print(energy,3); lcd.setCursor(15,0); lcd.print("J"); lcd.setCursor(0,1); lcd.print("Time"); lcd.setCursor(5,1); lcd.print(timesM); lcd.setCursor(8,1); lcd.print(":"); lcd.setCursor(9,1); lcd.print(timesS); lcd.home(); Serial.println("marche"); } } void tour(){ int etatPinBouton= bouton.read(); //digitalRead(pinBouton); //=bouton.read(); int memoire= HIGH; //Serial.println(etatPinBouton); //(etatPinBouton!=memoire)&&(!etatPinBouton)à remettre dans la boucle if(etatPinBouton==LOW){//bouton appuyé en pull up if(etatRecu){ etatRecu=0; } else{ etatRecu=1; } } }
Cordialement
-
Bouton poussoir 13 juillet 2017 21:17, par Jacques
Bonjour Dominique, Guillaume et Jean-Luc,
Cet article est génial car il explique clairement comment utiliser la bibliothèque Bounce2.
Merci à tous,
Jacques-
Bouton poussoir 13 juillet 2017 21:50, par Dominique
Merci beaucoup, ça nous fait plaisir :))
-
-
Bouton poussoir lumineux 25 septembre 2018 17:34, par Pascal
Bonjour,
Pour aller plus loin avec cet article très intéressant sur les boutons poussoir, existe-t-il des boutons poussoirs avec une led RVB intégrée qui permettrait par exemple de passer d’une couleur verte pour dire bouton activable à rouge pour bouton inutilisable ?
D’avance merci pour votre réponse
Cordialement
Pascal-
Bouton poussoir lumineux 27 septembre 2018 08:35, par dominique
Un tel bouton n’existe pas tel que vous le décrivez. Mais il existe des boutons avec leds intégrées, en cherchant sur le net.
Ensuite c’est à vous de piloter les leds avec un Arduino.
-
Bouton poussoir lumineux 30 septembre 2018 12:11, par Laurent
Bonjour,
J’ai eu besoin d’utiliser ce type de boutons pour un montage en cours.
J’ai commandé des boutons de borne d’arcade sur Arcade World.
J’ai ensuite remplacé la led par une rvb (il faut modifier le support de led pour pouvoir faire passer tous les fils).
Attention, les boutons peuvent être commandés complets (avec led, support de led et contacteur), ou bouton seul (pour dépannage).
Voir en ligne : Arcade World
-
Merci beaucoup pour ces informations (et pour l’adresse web, ou finalement pas besoin de faire trop de bricolage car ça existe déjà..... cf : lien ci dessous)
Voir en ligne : bouton lumineux RGB
-
-
-
Bouton poussoir 1er octobre 2018 07:02, par Pascal
Merci pour ces informations
Maintenant yapluk.... -
Bouton poussoir 8 janvier 2019 17:06, par Roland Codaccioni
bonjour,
Je suis sur un projet de plaque tournante HO avec les données suivantes :
une carte Arduino uno, un moteur step 5V DC ref 28BYJ -48 avec son module de branchement, un bouton pressoir pour faire tourner le moteur dans un sens et un autre BP pour aller dans l’autre sens de manière à aligner les rails par petites impulsions avant arrière.
Je parviens bien à faire tourner le moteur en suivant les instructions de câblage mais impossible d’arriver à inclure les 2 BP dans ce processus.
Avez vous un schéma qui permettrait de résoudre ce problème SVP ?
Merci d’avance
Cordialement RC-
Bouton poussoir 14 février 2020 12:58, par Fina
Il me semble que pour le plateau tournant
Un potentiomètre serait plus utile :
On tourne de chaque côté le potar pour un nombre de pas du moteur
...
-
-
Bouton poussoir 21 novembre 2021 19:11, par Claude49
Bonjour
Sur mon réseau, je refais mon TCO. J’utilise donc des boutons poussoirs. Quand ils sont activés ils déclenchent une interruption....d’où la gestion des rebonds. Je viens de "tomber" sur la bibliothèque Bounce 2...ça me plait bien. Ma question dois je déclarer une instance Bounce pour chacun des boutons du genre
( si B1, B2, B....sont des boutons) :
Bounce B1 = Bounce() ;
Bounce B2 = Bounce() ;
Bounce B3 = Bounce() ;void setup()
B1.attach(pinBouton) ;
B1.interval(5) ;
pinMode(pinB1, INPUT) ;B2.attach(pinBouton) ;
B2.interval(5) ;
pinMode(pinB2, INPUT) ;B3.attach(pinBouton) ;
B3.interval(5) ;
pinMode(pinB3, INPUT) ;Mis à part les instructions attach et pinMode, doit on tout répéter
Merci
-
Bouton poussoir 21 novembre 2021 20:04, par Dominique
Oui. Regardez les exemples de la bibliothèque !
-
Bouton poussoir 22 novembre 2021 17:05, par Claude49
Merci
Il fallait aller dans /examples/more.....on ne va jamais au fond des choses
-
-
Bouton poussoir 10 octobre 2022 14:34, par Olivier
Bonjour,
Je gère un moteur PAP avec des pulses de l’ordre de 60 ms, tout en veillant les appuis potentiels sur des bp de contrôle et d’autres actions. Je n’ai donc pas droit à des interruptions de programme pour débouncer mes bp. Est-ce que Bounce2 induit des interruptions dans le PG ou conserve-t-il dans une mémoire les valeurs lues pour comparaison avant validation d’appui ? Merci pour la réponse.-
Bouton poussoir 10 octobre 2022 14:58, par msport
Bonjour,
un petit tour dans la bibliothèque Bounce2 permet de lire (Bounce2,h) :
Because Bounce does not use interrupts, you have to "update" the object before reading its value and it has to be done as often as possible (that means to include it in your loop()). Only call update() once per loop().
Cordialement
-
Bouton poussoir 10 octobre 2022 16:06, par Olivier
Vitesse de réponse impressionnante !! Si je comprends bien il garde en mémoire le premier état et le compare jusqu’à la tempo désirée sans stand-by.je peux donc l’insérer dans ma routine, c’est bien ça ? (Merci encore)
-
Bouton poussoir 10 octobre 2022 16:54, par msport
On ne sait pas tout, mais ça doit fonctionner comme ça.
-
-
-