AIDE: Bouton poussoir et compteur sur LCD

Bonjour a tous et a toutes.

Pour un projet je doit incrémenter une variable avec un bouton poussoir et l'afficher sur un LCD, le problème c'est que ma variable ne change pas sur l'écran lors de l'appuis du bouton.

Voici le code :

#include "LiquidCrystal.h" // on inclut la librairie

LiquidCrystal lcd(11,10,5,4,3,2);
int bouton = 1;                       
int led;                              
int etatbouton;                       
int BTRouge = 0;					  


void setup() {
   lcd.begin(16, 2);
   lcd.print(BTRouge);				  
  pinMode (bouton, INPUT);            
  pinMode (led, OUTPUT);              

}

void loop() {
    etatbouton = digitalRead (bouton);  

  if (etatbouton==LOW) {             
    digitalWrite (led, HIGH);
    lcd.clear();
    BTRouge++;
    delay(100);
    lcd.print(BTRouge);
  }
  
  if (etatbouton==HIGH) {
    digitalWrite(led, LOW);
  }
  
 
}

Je vous remercie d'avance pour vos conseil et votre aide.

Amicalement

Yoldrin

Bonjour,

Ce post n'a rien à faire dans 'Tutoriels et cours' -> déplacé dans la section principale.

Comment est cablé ton bouton? Il y a bien une résistance de pullup?
Si non, active la résistance de pullup interne.
pinMode (bouton, INPUT_PULLUP);

Bonjour,
Tout d'abord merci pour le déplacement du sujet au bon chanel, erreur de débutant ^°^'.

Voici une capture sur simulateur Tinkcad (pas de câblage IRL pour l'instant je suis en attente de livraison ^^)

Merci

Bonjour,

N'essaie pas de mettre ton bouton en série avec la led.
Le bouton est lu par le micro, la led est commandée par le micro, ce sont deux circuits séparés.
Mets la borne de la résistance au gnd et met le bouton entre l'entrée et le gnd en activant le pullup par pinMode (bouton, INPUT_PULLUP);

Premièrement, la pin de la led n'est pas déclarée:
int led;

Et, surtout, elle n'est pas câblée sur l'Arduino. Si elle s'allume à la pression du bouton, c'est sans passer par l'Arduino.

Pour ce qui est du bouton, tel quel, tu as un 1 en permanence du fait de la constitution de ce type de boutons, ces 2 bornes sont pontées (le 2 droites ensemble et les 2 gauches idem)
image
donc tu as un pont permanent entre le 5V et l'entrée bouton

Pour l'initialisation de bouton, suis le conseil de @kamill:, mets cette entrée en mode PULLUP
pinMode (bouton, INPUT_PULLUP);

Regardes sur cette page comment câbler ton bouton en mode PULLUP.

Cordialement
jpbbricole

Salut !
Tu peux utiliser une bibliothèque pour gérer le boutons, si tu veux te simplifier la vie sur l'anti-rebonds par exemple :slight_smile:. Il en existe plusieurs, comme Toggle (tuto en cours d'écriture) ou OneButton (cf Tuto bibliothèque OneButton). Pour une utilisation simple comme ça, OneButton ira très bien.

Pour l'écran, tu peux te simplifier la vie avec un module I²C :
image
Au lieu de 12 pins, seulement 4 (GND, VCC, SDA, SCL)
Plusieurs bibliothèques également, mais la plus connue est certainement LiquidCrystal_I2C

Pour ton problème, je ne suis pas sûr de pouvoir t'aider, de ce que j'ai vu le code fonctionne... Ça doit être un problème de câblage.

Bon courage

Amitiés
Rémi

Bonjour a tous grâce à votre aide et quelques recherches supplémentaires j'ai réussi à faire fonctionner le programme et j'ai pû aboutir à des choses plus complexes en terme de circuit.

Merci a vous
Le sujet peut être clôt

Amicalement

Yoldrin

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.