Aide code

Bonjour
J’aimerai que mon moteur DC démarre en appuyant sur le bouton poussoir et s’arrête quand j’appuie à nouveau dessus, mais il doit y avoir une erreur dans mon front. :frowning:

// Librairie Adafruit
#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_MS_PWMServoDriver.h"

Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 

//moteur Canon
Adafruit_DCMotor *myMotor4 = AFMS.getMotor(4);


int monBouton = 8; // bouton en broche 2
int etatBouton; // L'état du bouton
int memoire = HIGH; // La mémoire de l'état du bouton

void setup() {
  // le bouton en entrée
  pinMode(monBouton, INPUT_PULLUP); 
  // Initialisation port serie
Serial.begin(9600);
AFMS.begin();
}

void loop()
{
    // lecture de l'état du bouton
    

    // Si le bouton a un état différent de celui enregistré ET
    // que cet état est "haut"
    if(etatBouton != memoire)
    {
      myMotor4->setSpeed(255);
      myMotor4->run(RELEASE);
      Serial.print("STOP");
      Serial.println();

    }
    else
    {
       myMotor4->setSpeed(255);
       myMotor4->run(BACKWARD);
       Serial.print("UP");
       Serial.println();

    }

    // on enregistre l'état du bouton pour le tour suivant
    memoire = etatBouton;
}

bonjour, tu mets dans le code

 // lecture de l'état du bouton

mais pas l'instruction de lecture ;)

etatBouton = digitalRead(monBouton);

Oui, c'est un oublie dans mon copié coller. Il est bien dans le code.

mais cela ne fonctionne pas :(

Qu'est ce que je rate ?

Ce que je souhaite faire. J'appuie une fois sur le bouton poussoir mon moteur démarre et continue même lorsque je relâche le bouton poussoir. J'appuie de nouveau sur le bouton poussoir mon moteur s'arrête. Le principe d'un interrupteur ON/OFF

Il faut donc mémoriser l'état du bouton poussoir entre chaque appui.

Pour le moteur Dans la librairie adafruit : Adafruit myMotor4->run(RELEASE); signifie que le moteur est à l'arrêt meme si la vitesse est à 255 et myMotor4->run(BACKWARD); en marche arrière.

Donc il y a bien l'état arret.