Bouton poussoir qui reste enclenché

Bien le bonjour, je suis en cour d'apprentissage du arduino.
Je suis sur tinkercad actuellement.

Mon probléme est le suivant:
j'ai branché un bouton poussoir et j'ai tenté de programmer mon arduino pour que sur mon ecran LCD celui ci indique zero si le bouton poussoir n'est pas enclenché et 1 si celui ci l'est.
La problématique est la suivante:
dés le démarage, l'ecran lcd m'affiche 1.
en essayant de refaire le même circuit et enlevant le bouton poussoir, "0" est affiché, ce qui m'amméne à me dire que j'ai bien un probléme avec mon bouton poussoir, et jene sais pas comment régler ce probléme, cela fait quelques heures maintenant que j'essaye de comprendre ce qui ne fonctionne pas.
j'imagine que la solution est toute bête, mais sans doute qu'a force d'avoir la tête dans el guidon...

Voici mon chéma, et voici mon code (et voici également mon lien):

#include <LiquidCrystal.h>

const int rs=12, en=11, db4=5, db5=4, db6=3, db7=2;
LiquidCrystal lcd(rs, en, db4, db5, db6 ,db7);
const int sensorPin=0, btn=13;
bool etat;

                   
void setup()
{
 lcd.begin(16,2);
 pinMode(btn, INPUT);
  
}
    

void loop()
{
  lcd.setCursor(0,0);
  lcd.print("T:");
  lcd.print(GetTemp());
  
  lcd.setCursor(0,1);
  etat = digitalRead(btn);
  lcd.print(etat);

 
  delay(1000);
  lcd.clear();
    
}
  
float GetTemp()
{
  int reading=analogRead(sensorPin);
  float voltage=reading * 5.0;
  voltage/=1024.0;
  return (voltage - 0.5) * 100;
  
}
  

[le lien vers mon projet](https://lien tinkercad)

Merci d'avance pour vos retours :slight_smile:

On ne voit pas bien sur le schéma (je lis sur mon iPhone), avez vous mis une resisted pullup ou pulldown pour ke bouton? On dirait qu’il est connecté en direct sur 5v et la pin 13.

Effectivement il n'y a pas de résistances (je suis en train de suivre le tuto de cette personnes, sur sa video tout fonctionne correctement d'ailleurs)

C'est un potentiomètre que tu as mis et qui est utilisé dans la vidéo.*
pourquoi utiliser cette ligne de code dans ton code, alors qu'elle n'est pas utilisé dans la vidéo?

etat = digitalRead(btn);

Je suppose que tu as mixer deux sources différentes?

pour bien débuter avec l’arduino, un bon point de départ c’est de lire les tutos d’eskimon. Il y en a un sur les boutons

Pour te simplifier la vie, je te conseille d'utiliser un module i2c, pour l'écran. Ça permet de n'utiliser que 2 pins analogiques pour contrôler l'écran.
Dans ton code, tu peux rajouter sur la définition du bouton :

pinMode(pinBUTON, INPUT_PULLUP);

Ou alors tu en rajoutes une matériel sur ton montage, 50 kΩ c'est bien :slight_smile:

Voici le lien d'un module LCD i2c :slight_smile:

Cordialement
Pandaroux007

on écrit 50 kΩ ou 50 k Ohms :wink: - ce ne sont pas les maisons (en anglais)

Et pour écrire Ω comme on ne l'a pas sur le clavier (bien souvent), on peut taper (sans mettre les espaces:
& O m e g a ;
Sinon on recherche ailleurs un Ω et on fait un couper coller.

Sur le clavier d'un Mac on fait optionshiftQ et ça fait Ω directement :slight_smile:

Bonsoir à tous et merci pour toute vos réponse. Alors je mer end compte que j'ai donné la mauvaise vidéo.
il s'agit de la vidéo d'aprés. Mais du coup j'ai eu une réponse d'un ami qui me dis la chose suivante:
"tu as tout bien suivi le tuto, mais c'est le circuit du tuteur qui n'est pas bon."

Voici le lien de la vidéo. vraie vidéo youtube. pour ceux qui veulent voir.

Du coup je vais regarder les liens que vous m'avez donnez plus haut dans le feed

Bonjour @J-M-L merci pour la correction :slight_smile:
Juste a propos de votre post #5, j'ai trouvé ceci :
https://www.juggling.ch/gisin/microcontroleur/code_exemples.html
Je ne sais pas si c'est des bons tuto, qu'en pensez vous ?

Cordialement
Pandaroux007

je ne les connais pas, il y a une belle liste

Si tu veux un tutoriel, il y a celui-ci qui est très bien

Bonjour pandaroux007

Oui, c'est la bonne option, je n'utilise que celle-ci, ainsi, il n'y a que le GND à distribuer sur le ou les boutons et autres switches.
Mais, il y a un changement de câblage à faire:
image
cette liaison, actuellement à +5V doit aller à GND.

La lecture du bouton,
etat = digitalRead(btn);
etat donne 0 quand le bouton est pressé (1 dans la version précédente).

Cordialement
jpbbricole

Bonjour syhnes

Attention avec ce type de boutons:
image
de ne pas câbler les fils l'un en face de l'autre, sinon le contact est permanent, et tu as 1 en permanence sur l'affichage.

Si tu regardes bien sur le breadboard, les 2 fils sont décalés.
image

Si tu conserve ce type de câblage, en mode PULL_DOWN, je te conseille de mettre une résistance de PULL_DOWN, env. 10k. entre le fil gris et le GND. Ou, plus pratique, tu passes en PULL_UP.

Cordialement
jpbbricole

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