contrôleur de moteurs Ardumoto

• Blindage du moteur pour Arduino contrôlant deux moteurs CC
• Basé sur le pont en H L298
• Alimentation de 2 ampères par canal
• Comprend des DEL bleues et jaunes
• Conforme RoHS

Voici le blindage contrôleur de moteurs Ardumoto SFE pour Arduino. La nouvelle version de ce blindage permet une logique 3,3 V ou 5 V, une connexion VIN distincte et plus robuste et l'entrée MID a été déplacée sur la broche 3.

Il s'agit d'un blindage de moteur pour Arduino qui contrôle deux moteurs CC. Basé sur le pont en H L298, l'Ardumoto peut alimenter jusqu'à 2 ampères par canal. La carte s'alimente à partir de la même ligne VIN que la carte Arduino. Elle comprend des DEL bleues et jaunes qui indiquent la direction active. Toutes les lignes du pilote sont protégées par diodes contre la force contre-électromotrice. La commande du moteur fixée à OUT1/2 est connectée à la ligne numérique 12 (direction A) et à la ligne numérique 3 (MID A). La commande du moteur fixée à OUT3/4 est connectée à la ligne numérique 13 (direction B) et à la ligne numérique 11 (MID B).

http://www.robotshop.com/blindage-ardumoto-arduino-sfe-4.html

http://www.sparkfun.com/products/9815

 

Code source

  1.  /*
  2.  
  3.   10-5-10
  4.  
  5.   Pete Dokter
  6.  
  7.   SparkFun Electronics
  8.  
  9.  
  10.  
  11.   This is an example sketch for Arduino that shows very basically how to control an Ardumoto
  12.  
  13.   motor driver shield with a 5V Arduino controller board (3.3V may work, but it's out of spec
  14.  
  15.   for the L298 H-bridge logic, so no promises). If you're plugging the Ardumoto into an
  16.  
  17.   Arduino Duemilanove or similar, all the connections are done for you and you can just rewrite
  18.  
  19.   the examples in this code to your liking.
  20.  
  21.  
  22.  
  23.   Changed to reflect a new board revision...
  24.  
  25.  */
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  //int pwm_a = 10; //PWM control for motor outputs 1 and 2 is on digital pin 10
  32.  
  33.  int pwm_a = 3; //PWM control for motor outputs 1 and 2 is on digital pin 3
  34.  
  35.  int pwm_b = 11; //PWM control for motor outputs 3 and 4 is on digital pin 11
  36.  
  37.  int dir_a = 12; //direction control for motor outputs 1 and 2 is on digital pin 12
  38.  
  39.  int dir_b = 13; //direction control for motor outputs 3 and 4 is on digital pin 13
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  void setup()
  46.  
  47.  {
  48.  
  49.   pinMode(pwm_a, OUTPUT); //Set control pins to be outputs
  50.  
  51.   pinMode(pwm_b, OUTPUT);
  52.  
  53.   pinMode(dir_a, OUTPUT);
  54.  
  55.   pinMode(dir_b, OUTPUT);
  56.  
  57.  
  58.  
  59.   analogWrite(pwm_a, 100); //set both motors to run at (100/255 = 39)% duty cycle (slow)
  60.  
  61.   analogWrite(pwm_b, 100);
  62.  
  63.  
  64.  
  65.  }
  66.  
  67.  
  68.  
  69.  void loop()
  70.  
  71.  {
  72.  
  73.   digitalWrite(dir_a, LOW); //Set motor direction, 1 low, 2 high
  74.  
  75.   digitalWrite(dir_b, LOW); //Set motor direction, 3 high, 4 low
  76.  
  77.  
  78.  
  79.   delay(1000);
  80.  
  81.  
  82.  
  83.   analogWrite(pwm_a, 255); //set both motors to run at 100% duty cycle (fast)
  84.  
  85.   analogWrite(pwm_b, 255);
  86.  
  87.  
  88.  
  89.   delay(1000);
  90.  
  91.  
  92.  
  93.   digitalWrite(dir_a, HIGH); //Reverse motor direction, 1 high, 2 low
  94.  
  95.   digitalWrite(dir_b, HIGH); //Reverse motor direction, 3 low, 4 high
  96.  
  97.  
  98.  
  99.   delay(1000);
  100.  
  101.  
  102.  
  103.   analogWrite(pwm_a, 100); //set both motors to run at (100/255 = 39)% duty cycle
  104.  
  105.   analogWrite(pwm_b, 100);
  106.  
  107.  
  108.  
  109.   delay(1000);
  110.  
  111.  }