Bonjour,
je suis en classe de Terminal STI2D et dans le cadre de mon projet de fin d'année je dois coder deux moteur avec deux potentiomètre.
j'ai réussi mais la vitesse n'est pas progressive elle passe de -140 a 140.
j'ai donc besoin d'aide pour que la vitesse soit progressive.
#include "CytronMotorDriver.h"
#include "pins_arduino.h"
// Configure the motor drivers.
CytronMD motor1(PWM_DIR, 3, 4); // PWM 1 = Pin 3, DIR 1 = Pin 4.
CytronMD motor2(PWM_DIR, 9, 10); // PWM 2 = Pin 9, DIR 2 = Pin 10.
const int potPin1 = A0; // Potentiometer 1 connected to analog pin A0
const int potPin2 = A1; // Potentiometer 2 connected to analog pin A1
void setup() {
pinMode(potPin1, INPUT); // Set potentiometer 1 pin as input
pinMode(potPin2, INPUT); // Set potentiometer 2 pin as input
Serial.begin(9600);
}
void loop() {
// Read potentiometer values
int potValue1 = analogRead(potPin1);
int potValue2 = analogRead(potPin2);
Serial.print("Valeur du potentiomètre 1 : ");
Serial.print(potValue1);
Serial.print(" | Valeur du potentiomètre 2 : ");
Serial.println(potValue2);
// Map potentiometer values to motor speeds
int pwmValue1 = map(potValue1, 0, 1023, -255, 255);
int pwmValue2 = map(potValue2, 0, 1023, -255, 255);
if ( (pwmValue1>-20) && (pwmValue1<20) ){
motor1.setSpeed(abs(pwmValue1));
motor1.setSpeed(0);
motor2.setSpeed(abs(pwmValue2));
motor2.setSpeed(0);
} else if (pwmValue1 > 0) {
motor1.setSpeed(abs(pwmValue1));
motor1.setSpeed(140);
} else if (pwmValue1 < 0) {
motor1.setSpeed(abs(pwmValue1));
motor1.setSpeed(-140);
} else if (pwmValue2 > 0) {
motor2.setSpeed(abs(pwmValue2));
motor2.setSpeed(140);
} else if (pwmValue2 < 0){
motor2.setSpeed(abs(pwmValue2));
motor2.setSpeed(-140);
}
delay(100);
}
}