Problème avec le programme

Bonjour, je suis un élève de 1ère SSI et comme tout les premières chaque années, j'ai le devoir de réaliser un TPE. En bref, c'est un distributeur semi-automatique de miam-miam pour animaux. On est presque à la fin mais on bloque sur un truc, le programme..
En gros, on a un moteur, une carte Arduino Méga 2560 avec son Shield ainsi qu'un bouton poussoir et sa résistance. On a déjà tester avec un programme test pour le moteur qui marchait alors très bien. Le problème, c'est qu'on galère pour le programme final incluant le bouton poussoir ainsi que le moteur.
Voici le programme que mon coéquipier à écrit jusqu'ici :

const int buttonPin = 2;
const int motorpin = 3;

int buttonState = 0;

void setup() {

pinMode(motorpin, OUTPUT);

pinMode(buttonPin, INPUT);
}

void loop(){

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {

digitalWrite(motorpin, HIGH);
delay(10000);
}
else {

digitalWrite(motorpin, LOW);
}
}

Et donc comme vous l'auriez devinez, celui-ci ne fonctionne pas et j'aimerais si possible un peu d'aide ainsi que des explications.. merci beaucoup :slight_smile:

Bonsoir,
Comment est câblé ton BP ?

Il est branché sur la borne +5V et sur le pin 2

Schéma électrique du câblage du bouton et de sa résistance stp.

Si tu met le bouton entre le Vcc et l'entrée 2 il faut une résistance (10k ohms suffisent) entre l'entrée 2 et la masse sinon c'est normal que le niveau électrique de l'entrée 2 ne change pas.

Le bouton va avoir des rebonds qui vont te pourrir la vie.

  • Met un condensateur d'environ 100nF en parrallèle sur le bouton pour suprimer l'effet des rebonds mécaniques .
  • ou trouve un bout de programme pour masquer les rebonds de manière logicielle. ( chercher avec le mot "debounce").
    Les deux solutions fonctionnent, je trouve que la première est la plus saine le défaut est tué dans l'œuf, et que le seconde complique inutilement le programme et cache la poussière sous le tapis.
    Certains pensent l'inverse, donc tu choisi la solution que tu préfère.