• Post category:Fort
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :décembre 26, 2022
  • Temps de lecture :7 min de lecture

Piloter 2 Moteurs PAP + Driver TB6600 commandé par boutons + variation de vitesse avec un Arduino

Niveau APPRENTISSAGE :   ► Fort

 

    Prérequis :

Matériel :

Version IDE :

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

Code :

unsigned long currentTime;
///////////Moteur 1//////////
#define stepPinM1 2
#define dirPinM1 3
#define enabledmotorM1 4
unsigned int vitessemaxM1 = 10; //Vitesse max du moteur
unsigned int vitesseminM1 = 12000; //Vitesse min du moteur
const int senshoraireM1 = 8; // le numéro de la broche du bouton senshoraire
const int sensantihoraireM1 = 9; // le numéro de la broche du bouton sensantihoraire
int motorspeedM1;
unsigned long previousTimeM1;
int EtatstepPinM1;

///////////Moteur 2//////////
#define stepPinM2 5
#define dirPinM2 6
#define enabledmotorM2 7
unsigned int vitessemaxM2 = 10; //Vitesse max du moteur
unsigned int vitesseminM2 = 12000; //Vitesse min du moteur
const int senshoraireM2 = 10; // le numéro de la broche du bouton senshoraire
const int sensantihoraireM2 = 11; // le numéro de la broche du bouton sensantihoraire
int motorspeedM2;
unsigned long previousTimeM2;
int EtatstepPinM2;



void setup() {
///////////Moteur 1//////////
pinMode(stepPinM1, OUTPUT);
pinMode(dirPinM1, OUTPUT);
pinMode(enabledmotorM1, OUTPUT);
pinMode(senshoraireM1, INPUT_PULLUP);
pinMode(sensantihoraireM1, INPUT_PULLUP);
digitalWrite(enabledmotorM1, HIGH);

///////////Moteur 2//////////
pinMode(stepPinM2, OUTPUT);
pinMode(dirPinM2, OUTPUT);
pinMode(enabledmotorM2, OUTPUT);
pinMode(senshoraireM2, INPUT_PULLUP);
pinMode(sensantihoraireM2, INPUT_PULLUP);
digitalWrite(enabledmotorM2, HIGH);
}

void loop() {
currentTime = micros();
///////////Moteur 1//////////
int sensorReadingM1 = analogRead(A0);
motorspeedM1 = map(sensorReadingM1, 0, 1023, vitesseminM1, vitessemaxM1);
if (digitalRead(senshoraireM1) == LOW) {
digitalWrite(dirPinM1, LOW);
moteurM1();
}
else if (digitalRead(sensantihoraireM1) == LOW) {
digitalWrite(dirPinM1, HIGH);
moteurM1();
}
else {
digitalWrite(enabledmotorM1, HIGH);
}

///////////Moteur 2//////////
int sensorReadingM2 = analogRead(A1);
motorspeedM2 = map(sensorReadingM2, 0, 1023, vitesseminM2, vitessemaxM2);
if (digitalRead(senshoraireM2) == LOW) {
digitalWrite(dirPinM2, LOW);
moteurM2();
}
else if (digitalRead(sensantihoraireM2) == LOW) {
digitalWrite(dirPinM2, HIGH);
moteurM2();
}
else {
digitalWrite(enabledmotorM2, HIGH);
}
}

void moteurM1() {
digitalWrite(enabledmotorM1, LOW);
if (currentTime - previousTimeM1 > motorspeedM1) {
previousTimeM1 = currentTime;
EtatstepPinM1 = !EtatstepPinM1;
digitalWrite(stepPinM1, EtatstepPinM1);
}
}

void moteurM2() {
digitalWrite(enabledmotorM2, LOW);
if (currentTime - previousTimeM2 > motorspeedM2) {
previousTimeM2 = currentTime;
EtatstepPinM2 = !EtatstepPinM2;
digitalWrite(stepPinM2, EtatstepPinM2);
}
}

 

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire