Bonjour, tout d'abord merci pour ta réponse rapide, j'ai pris note de ce que tu m'as dit !
Je viens de terminer un programme pour pouvoir programmer deux driver L298 sur un seul arduino avec comme pilotage un joystick, voici le résultat :
// moteur A
int ENA=3;
int IN1 = 1;
int IN2 = 2;
// moteur B
int ENB=5;
int IN3 = 4;
int IN4 = 7;
// moteur C
int ENC=6;
int IN5 = 8;
int IN6 = 9;
// moteur D
int END=10;
int IN7 = 11;
int IN8 = 12;
int val_motorA = 0;
int val_motorB = 0;
int val_motorC = 0;
int val_motorD = 0;
// joystick sortie analogique
int joyVal;
int joyVal2;
void setup() {
pinMode(ENA,OUTPPUT); // configurer les broches comme sortie
pinMode(ENB,OUTPPUT);
pinMode(ENC,OUTPPUT);
pinMode(END,OUTPPUT);
pinMode(IN1,OUTPPUT);
pinMode(IN2,OUTPPUT);
pinMode(IN3,OUTPPUT);
pinMode(IN4,OUTPPUT);
pinMode(IN5,OUTPPUT);
pinMode(IN6,OUTPPUT);
pinMode(IN7,OUTPPUT);
pinMode(IN8,OUTPPUT);
}
void loop() {
int position_x = analogRead(A0); // lecture axe X
int position_y = analogRead(A1); // lecture axe Y
// avant arrière
if ( position_y < 470 ) {
// moteur A
digitalWrite(IN1, HIGH );
digitalWrite(IN2, LOW );
// moteur B
digitalWrite(IN3, HIGH );
digitalWrite(IN4, LOW );
//moteur C
digitalWrite(IN5, HIGH );
digitalWrite(IN6, LOW );
// moteur D
digitalWrite(IN7, HIGH );
digitalWrite(IN8, LOW );
val_motorA = map(position_y, 470, 0 , 0 , 255 );
val_motorB = map(position_y, 470, 0 , 0 , 255 );
val_motorC = map(position_y, 470, 0 , 0 , 255 );
val_motorD = map(position_y, 470, 0 , 0 , 255 ); }
else if ( position_y > 550 ) {
// moteur A
digitalWrite(IN1, LOW );
digitalWrite(IN2, HIGH );
// moteur B
digitalWrite(IN3, LOW );
digitalWrite(IN4, HIGH );
//moteur C
digitalWrite(IN5, LOW );
digitalWrite(IN6, HIGH );
// moteur D
digitalWrite(IN7, LOW );
digitalWrite(IN8, HIGH );
val_motorA = map(position_y, 550, 1023 , 0 , 255 );
val_motorB = map(position_y, 550, 1023 , 0 , 255 );
val_motorC = map(position_y, 550, 1023 , 0 , 255 );
val_motorD = map(position_y, 550, 1023 , 0 , 255 );
}
else{
val_motorA = 0;
val_motorB = 0;
val_motorC = 0;
val_motorD = 0;
}
// gauche droite
if ( position_x < 470 ) {
// moteur A
digitalWrite(IN1, HIGH );
digitalWrite(IN2, LOW );
// moteur B
digitalWrite(IN3, LOW );
digitalWrite(IN4, HIGH );
//moteur C
digitalWrite(IN5, LOW );
digitalWrite(IN6, HIGH );
// moteur D
digitalWrite(IN7, HIGH );
digitalWrite(IN8, LOW );
val_motorA = map(position_y, 470, 0 , 0 , 255 );
val_motorB = map(position_y, 470, 0 , 0 , 255 );
val_motorC = map(position_y, 470, 0 , 0 , 255 );
val_motorD = map(position_y, 470, 0 , 0 , 255 ); }
else if ( position_x > 550 ) {
// moteur A
digitalWrite(IN1, LOW );
digitalWrite(IN2, HIGH );
// moteur B
digitalWrite(IN3, HIGH );
digitalWrite(IN4, LOW );
//moteur C
digitalWrite(IN5, HIGH );
digitalWrite(IN6, LOW );
// moteur D
digitalWrite(IN7, LOW );
digitalWrite(IN8, HIGH );
val_motorA = map(position_y, 550, 1023 , 0 , 255 );
val_motorB = map(position_y, 550, 1023 , 0 , 255 );
val_motorC = map(position_y, 550, 1023 , 0 , 255 );
val_motorD = map(position_y, 550, 1023 , 0 , 255 ); }
else{
val_motorA = 0;
val_motorB = 0;
val_motorC = 0;
val_motorD = 0;
}
analogWrite(ENA, val_motorA);
analogWrite(ENB, val_motorB);
analogWrite(ENC, val_motorC);
analogWrite(END, val_motorD);
}
Penses-tu que cela est correct ? ???
Actuellement, j'attends de recevoir les pieces pour pouvoir tester