Bonjour,
J'ai actuellement un projet consistant à faire tourner dans un premier temps qu'un seul moteur. On fait aussi attention à la vitesse. J'ai utilisé pour cela un transistor L293D, un arduino UNO, un moteur CC, une pile 9V. Je vous ai mis ci-joint le plan physique du circuit que j'ai utilisé et son code. Le moteur ne tourne pas et c'est comme si aucune tension ne circulait sur la breadboard... Auriez-vous des idées?
const int enable = 3; // la PWM
const int in1 = 2; // les broches de signal
const int in2 = 4;
const int potar = 0; // la broche pour régler la vitesse
void setup()
{
pinMode(enable, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
Serial.begin(115200);
// on démarre moteur en avant et en roue libre
analogWrite(enable, 0);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
}
void loop()
{
int vitesse = analogRead(potar);
// dans le sens positif
if(vitesse > 512)
{
// on décale l'origine de 512
vitesse -= 512;
// le moteur va dans un sens
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
Serial.print("+");
}
else // dans l'autre sens
{
// de même on décale pour que la vitesse augmente en s'éloignant de 512
vitesse = 512-vitesse;
// le moteur va dans l'autre sens
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
Serial.print("-");
}
// pour rester dans l'intervalle [0;255] (sinon on est dans [0;512])
vitesse /= 2;
// envoie la vitesse
analogWrite(enable, vitesse);
// et l'affiche
Serial.println(vitesse);
delay(50);
}