Code arduino motor shield V3 avec '4 capteur de pressence 2 moteurs


bonjours, je suis en classe de terminale s si et je réalise un projet avec 4 capteur de mouvement et deux moteur.
on souhaite realisé une trepier automatisé pour les tetraplegique et pour cela il faut que le tableau puisse aller au haut, en bas, à droite et à gauche.
problème mon code si dessus me fonctionne pas, il y que un moteur qui marche .

code: [select]
const int vitessemota=3; // constante pour la broche 3
const int sensmota=12; // constante pour la broche 12
const int freinmota=9; // constante pour la broche 9
const int vitessemotb=11;
const int sensmotb=13; // constante pour la broche 12
const int freinmotb=8;
int presence1=7;// capteur 1
int etatpresence1;
int presence2=6;// capteur 2
int etatpresence2;
int presence3=5;// capteur 3
int etatpresence3;
int presence4=4;// capteur 4
int etatpresence4;
void setup()   {
serial.begin(9600);

// ------- broches en sorties numériques ------- 
 pinmode (vitessemota,output); // broche vitessemota configurée en sortie
 pinmode (freinmota,output); // broche freinmota configurée en sortie
 pinmode (sensmota,output); // broche sensmota configurée en sortie
 pinmode (presence1,input); // capteur de pressence1
 pinmode (presence2,input); // capteur de pressence2

  pinmode (vitessemotb,output); // broche vitessemotb configurée en sortie
 pinmode (freinmotb,output); // broche freinmotb configurée en sortie
 pinmode (sensmotb,output); // broche sensmotb configurée en sortie
 pinmode (presence3,input); // capteur de pressence3
 pinmode (presence4,input); // capteur de pressence4

// ------- initialisation des variables utilisées ------- 

// ------- codes d'initialisation utile ------- 
digitalwrite(vitessemota,low); // l'arret
digitalwrite(sensmota,low);
digitalwrite(freinmota,low); // frein off

digitalwrite(vitessemotb,low); // l'arret
digitalwrite(sensmotb,low);
digitalwrite(freinmotb,low); // frein off

}

void loop(){ // debut de la fonction loop()
 
etatpresence1 = digitalread(presence1);
etatpresence2 = digitalread(presence2);
etatpresence3 = digitalread(presence3);
etatpresence4 = digitalread(presence4);

if (etatpresence1 == high && etatpresence2 == high) {
//arrêt
digitalwrite(vitessemota,low); // l'arret
digitalwrite(sensmota,low);
digitalwrite(freinmota,low); // frein off
}
else if (etatpresence1 == high && etatpresence2 == low) {
// sens 1
digitalwrite(sensmota,low); // sens 1
digitalwrite(vitessemota, high); // vitesse maximale
}
else if (etatpresence1 ==low && etatpresence2 ==high) {
// sens 2
digitalwrite(sensmota,high); // sens 2
digitalwrite(vitessemota, high); // vitesse maximale
}
 else if (etatpresence1 == low && etatpresence2 == low) {
//arrêt
digitalwrite(vitessemota,low); // l'arret
digitalwrite(sensmota,low);
digitalwrite(freinmota,low); // frein off
}

else if (etatpresence3= high && etatpresence4 == high) {
//arrêt
digitalwrite(vitessemotb,low); // l'arret
digitalwrite(sensmotb,low);
digitalwrite(freinmotb,low); // frein off
}
else if (etatpresence3 == high && etatpresence4 == low) {
// sens 1
digitalwrite(sensmotb,low); // sens 1
digitalwrite(vitessemotb, high); // vitesse maximale
}
else if (etatpresence3 ==low && etatpresence4 ==high) {
// sens 2
digitalwrite(sensmotb,high); // sens 2
digitalwrite(vitessemotb, high); // vitesse maximale
}
 else if (etatpresence3 == low && etatpresence4 == low) {
//arrêt
digitalwrite(vitessemotb,low); // l'arret
digitalwrite(sensmotb,low);
digitalwrite(freinmotb,low); // frein off
}
}


merci de votre aide.

vous avez un else en trop:

si le pilotage du second moteur est indépendant les tests sur etatpresence3 et  etatpresence4 doivent se faire indépendamment de de qu'il s'est passé sur le premier moteur, non?


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Code arduino motor shield V3 avec '4 capteur de pressence 2 moteurs


arduino

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor