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