Arduino robot

Bonjour , je voudrais faire un robot deja qui roule a une vitesse très faible , j'utilise 2 moteur a courant continu comme ceux-ci https://www.amazon.fr/KKmoon-Voiture-Intelligente-Châssis-Encodeur/dp/B079JQ2CK5/ref=sr_1_7?ie=UTF8&qid=1542310706&sr=8-7&keywords=moteur+roue+arduino , avec un L293D , j'arrive a faire tourner les moteurs mais avec le code ci-dessous je ne peux pas descendre en dessous d'une valeur de 130 sinon les moteur ne tournent pas. Les moteurs sont alimentés en 9V

int enableA = 5;
int MotorA1 = 6;
int MotorA2 = 7;
 
//Motor B
int enableB = 8;
int MotorB1 = 9;
int MotorB2 = 10;


int puissance1 = 130;
int puissance0 = 0;



void setup() {
  
  Serial.begin (9600);
  //configure pin modes
  pinMode (enableA, OUTPUT);
  pinMode (MotorA1, OUTPUT);
  pinMode (MotorA2, OUTPUT);  
  
  pinMode (enableB, OUTPUT);
  pinMode (MotorB1, OUTPUT);
  pinMode (MotorB2, OUTPUT);  
  
}
 
void loop() {
  //enabling motor A
 
  analogWrite (enableA, puissance1);
  analogWrite (enableB, puissance1);
  

 
 
  analogWrite (MotorA1, puissance0);
  analogWrite (MotorA2, puissance1);
 
  analogWrite (MotorB1, puissance0);
  analogWrite (MotorB2, puissance1);}

oooops....

  analogWrite (enableA, puissance1);
  analogWrite (enableB, puissance1);

(tout fonctionne donc bien selon vos instructions)

Pour bien comprendre les moteurs (et pour bien débuter avec l'arduino), c'est bien de lire Le mouvement grâce aux moteurs - les tutos d'eskimon. (commencez par la partie Le moteur à courant continu)

Bonjour Antoine_b89

Je suppose que MotorA1 et MotorA2 sont Input 1 et Input 2 et que MotorB1 et MotorB2 sont Input 2 et Input 3.
Tu fais une petite confusion au sujet de l'utilisation des broches du L293D, les broches MotorA1, A2, B1, B2, sont à commandes 0 ou 1 donc commandées par

digitalWrite(MotorA1, 0);
ou
digitalWrite(MotorA1, 1);
Ces broches, par paires permettent de régler le sens de rotation du moteur.

Par contre les borches enableA et enableA (Enable 1 et Enable 2) sont des commandes PWM (0-255) qui, elles, règlent la vitesse des moteurs donc:

analogWrite(enableA, puissance1);

Mais attention, toutes les broches ne permettent pas de faire du PWM (tu en as utilisé des pas possible, pour le UNO se sont les boches
3, 5, 6, 9, 10, 11

Avec cette confusion tu as du PWM sur la commande de vitesse du moteur (Enable) ainsi que sur la commande de sens (dans ton programme sur MotorA2 et MotorB2) d'où confusion des moteurs et manque de performances.

Je te suggère de changer avc ces lignes (je n'ai pas pu tester)

int enableA = 5;
int MotorA1 = 7;
int MotorA2 = 8;

//Motor B
int enableB = 6;
int MotorB1 = 9;
int MotorB2 = 10;

dans loop:

digitalWrite(MotorA1, 1);
digitalWrite(MotorA2, 0);

digitalWrite(MotorB1, 0);
digitalWrite(MotorB2, 1);} //Si tu inverses les 1 et 0 tu inverses le sens du moteurs.

Cordialement et bons essais
jpbbricole