Bonjour
J'ai pour but de faire tourner une dizaine moteurs pas à pas dont les drivers A4988 ont le dir branchés en commun sur la broche 4 d'une arduino mega, en me servant de la bibilothèque MTobject. Je voudrais que les moteurs se mettent simultanément à tourner en marche avant en continue, arrière en continue ou bien s'arrêtent en fonction de commandes qu'on enverrai à un module bluetooth hc-05.
#include "MTstepStepper.h" //Voir: http:arduino.dansetrad.fr/MTobjects
#include "AccelStepper.h"
const char enable1 = 40;
const char enable2 = 43;
const char enable3 = 45;
const char enable4 = 46;
const char enable5 = 42;
const char enable6 = 44;
const char enable7 = 47;
const char enableRouge = 49;
const char enableBleu = 51;
const char enableJaune = 12;
const char enableViolet = 11;
const char enableGris = 10;
const byte mpapStepPinGris = 5; // Pour driver MPAP pin direction
const byte mpapStepPinViolet = 7; // Pour driver MPAP pin direction
const byte mpapStepPinJaune = 9; // Pour driver MPAP pin direction
const byte mpapStepPinRouge = 8;
const byte mpapStepPinBleu = 35;
const byte mpapStepPin1 = 37;
const byte mpapStepPin2 = 39;
const byte mpapStepPin3 = 41;
const byte mpapStepPin4 = 6;
const byte mpapStepPin5 = 3;
const byte mpapStepPin6 = 38;
const byte mpapStepPin7 = 36;
const char mpapDirReverse = 4;
AccelStepper MPAP1(1, mpapStepPin1, mpapDirReverse);
AccelStepper MPAP2(1, mpapStepPin2, mpapDirReverse);
AccelStepper MPAP3(1, mpapStepPin3, mpapDirReverse);
AccelStepper MPAP4(1, mpapStepPin4, mpapDirReverse);
AccelStepper MPAP5(1, mpapStepPin5, mpapDirReverse);
AccelStepper MPAP6(1, mpapStepPin6, mpapDirReverse);
AccelStepper MPAP7(1, mpapStepPin7, mpapDirReverse);
AccelStepper MPAPgris(1, mpapStepPinGris, mpapDirReverse);
AccelStepper MPAPviolet(1, mpapStepPinViolet, mpapDirReverse);
AccelStepper MPAPjaune(1, mpapStepPinJaune, mpapDirReverse);
AccelStepper MPAProuge(1, mpapStepPinRouge, mpapDirReverse);
AccelStepper MPAPbleu(1, mpapStepPinBleu, mpapDirReverse);
String Incoming_value; // Chaîne reçue de App Inventor via Bluetooth
void setup()
{
//--------------------------------- Serial 1 Rx = 19 Tx = 18
Serial1.begin(9600);
Serial1.setTimeout(50); // Pour fin des commandes depuis Bluetooth
pinMode(enable1, OUTPUT);
pinMode(enable2, OUTPUT);
pinMode(enable3, OUTPUT);
pinMode(enable4, OUTPUT);
pinMode(enable5, OUTPUT);
pinMode(enable6, OUTPUT);
pinMode(enable7, OUTPUT);
pinMode(enableRouge, OUTPUT);
pinMode(enableBleu, OUTPUT);
pinMode(enableJaune, OUTPUT);
pinMode(enableViolet, OUTPUT);
pinMode(enableGris, OUTPUT);
//---------------------------------MPAP1
MPAP1.setMaxSpeed(400);
MPAP1.setAcceleration(500);
MPAP1.setEnablePin(enable1); //ligne ajoutée
// DIR STEP ENA
MPAP1.setPinsInverted(mpapDirReverse, false, true); //ligne modifiée
//--------------------------------- MPAP2
MPAP2.setMaxSpeed(400);
MPAP2.setAcceleration(500);
MPAP2.setEnablePin(enable2); //ligne ajoutée
MPAP2.setPinsInverted(mpapDirReverse, false, true); //ligne modifiée
//--------------------------------- MPAP 3
MPAP3.setMaxSpeed(400);
MPAP3.setAcceleration(500);
MPAP3.setEnablePin(enable3); //ligne ajoutée
MPAP3.setPinsInverted(mpapDirReverse, false, true);//ligne modifiée
//--------------------------------- MPAP4
MPAP4.setMaxSpeed(400);
MPAP4.setAcceleration(500);
MPAP4.setEnablePin(enable4);
MPAP4.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAP5
MPAP5.setMaxSpeed(400);
MPAP5.setAcceleration(500);
MPAP5.setEnablePin(enable5);
MPAP5.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAP6
MPAP6.setMaxSpeed(400);
MPAP6.setAcceleration(500);
MPAP6.setEnablePin(enable6);
MPAP6.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAP7
MPAP7.setMaxSpeed(400);
MPAP7.setAcceleration(500);
MPAP7.setEnablePin(enable7);
MPAP7.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAProuge
MPAProuge.setMaxSpeed(400);
MPAProuge.setAcceleration(500);
MPAProuge.setEnablePin(enableRouge);
MPAProuge.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAPbleu
MPAPbleu.setMaxSpeed(400);
MPAPbleu.setAcceleration(500);
MPAPbleu.setEnablePin(enableBleu);
MPAPbleu.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAPjaune
MPAPjaune.setMaxSpeed(400);
MPAPjaune.setAcceleration(500);
MPAPjaune.setEnablePin(enableJaune);
MPAPjaune.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAPviolet
MPAPviolet.setMaxSpeed(400);
MPAPviolet.setAcceleration(500);
MPAPviolet.setEnablePin(enableViolet);
MPAPviolet.setPinsInverted(mpapDirReverse, false, true);
//--------------------------------- MPAPgris
MPAPgris.setMaxSpeed(400);
MPAPgris.setAcceleration(500);
MPAPgris.setEnablePin(enableGris);
MPAPgris.setPinsInverted(mpapDirReverse, false, true);
}
void loop()
{
if(Serial1.available() > 0)
{
Incoming_value = Serial1.readString();
Serial.print(Incoming_value);
Serial.print("\n");
//marche avant
if(Incoming_value == "marcheAvant")
{
MPAP1.enableOutputs();
MPAP2.enableOutputs();
MPAP3.enableOutputs();
MPAP4.enableOutputs();
MPAP5.enableOutputs();
MPAP6.enableOutputs();
MPAP7.enableOutputs();
MPAProuge.enableOutputs();
MPAPbleu.enableOutputs();
MPAPjaune.enableOutputs();
MPAPviolet.enableOutputs();
MPAPgris.enableOutputs()
////////////////////////////////
MPAP1.move(CONTINUE);
MPAP2.move(CONTINUE);
MPAP3.move(CONTINUE);
MPAP4.move(CONTINUE);
MPAP5.move(CONTINUE);
MPAP6.move(CONTINUE);
MPAP7.move(CONTINUE);
MPAProuge.move(CONTINUE);
MPAPbleu.move(CONTINUE);
MPAPjaune.move(CONTINUE);
MPAPviolet.move(CONTINUE);
MPAPgris.move(CONTINUE);
}
//marche arrière
else if(Incoming_value == "marcheArriere")
{
MPAP1.enableOutputs();
MPAP2.enableOutputs();
MPAP3.enableOutputs();
MPAP4.enableOutputs();
MPAP5.enableOutputs();
MPAP6.enableOutputs();
MPAP7.enableOutputs();
MPAProuge.enableOutputs();
MPAPbleu.enableOutputs();
MPAPjaune.enableOutputs();
MPAPviolet.enableOutputs();
MPAPgris.enableOutputs()
////////////////////////////////
MPAP1.move(-CONTINUE);
MPAP2.move(-CONTINUE);
MPAP3.move(-CONTINUE);
MPAP4.move(-CONTINUE);
MPAP5.move(-CONTINUE);
MPAP6.move(-CONTINUE);
MPAP7.move(-CONTINUE);
MPAProuge.move(-CONTINUE);
MPAPbleu.move(-CONTINUE);
MPAPjaune.move(-CONTINUE);
MPAPviolet.move(-CONTINUE);
MPAPgris.move(-CONTINUE);
}
//arrêt des moteurs
else if(Incoming_value == "ArretDesMoteurs")
{
MPAP1.stop();
MPAP2.stop();
MPAP3.stop();
MPAP4.stop();
MPAP5.stop();
MPAP6.stop();
MPAP7.stop();
MPAProuge.stop();
MPAPbleu.stop();
MPAPjaune.stop();
MPAPviolet.stop();
MPAPgris.stop();
////////////////////////////////
MPAP1.disableOutputs();
MPAP2.disableOutputs();
MPAP3.disableOutputs();
MPAP4.disableOutputs();
MPAP5.disableOutputs();
MPAP6.disableOutputs();
MPAP7.disableOutputs();
MPAProuge.disableOutputs();
MPAPbleu.disableOutputs();
MPAPjaune.disableOutputs();
MPAPviolet.disableOutputs();
MPAPgris.disableOutputs();
}
}
Mon problème est que le compilateur me dit qu'il y a un problème dont je n'arrive pas à trouver la cause. Quelqu'un verrait-il quelle est-elle ?
Cordialement