Using DC Motors | Adafruit Motor Shield

Skip to main content Adafruit Motor Shield Using DC Motors
  • Overview
  • FAQ
  • Make It!
    • Preparation
    • Parts List
    • Solder It
  • Use It!
    • Library Install
    • Power Usage
    • Using RC Servos
    • Using Stepper Motors
    • Using DC Motors
    • AF_DCMotor Class
    • AF_Stepper Class
  • Resources
  • Downloads
  • Forums
  • Single page
  • Feedback? Corrections?
  • Text View
Featured Products view all
  • Angled shot of a Adafruit METRO 328 Fully Assembled Adafruit METRO 328 Fully Assembled - Arduino IDE compatible Out of Stock
192 Intermediate Project guide

Using DC Motors

This tutorial is for the now ancient V1 Motor shield. Chances are you have a V2, check out the tutorial https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino This tutorial is for historical reference and previous customers only! adafruit_products_dcmotor.jpg

DC motors are used for all sort of robotic projects.

The motor shield can drive up to 4 DC motors bi-directionally. That means they can be driven forwards and backwards. The speed can also be varied at 0.5% increments using the high-quality built in PWM. This means the speed is very smooth and won't vary!

Note that the H-bridge chip is not meant for driving loads over 0.6A or that peak over 1.2A so this is for small motors. Check the datasheet for information about the motor to verify its OK.

To connect a motor, simply solder two wires to the terminals and then connect them to either the M1, M2, M3, or M4. Then follow these steps in your sketch

  1. Make sure you #include <AFMotor.h>
  2. Create the AF_DCMotor object with AF_DCMotor(motor#, frequency), to setup the motor H-bridge and latches. The constructor takes two arguments. The first is which port the motor is connected to, 1, 2, 3 or 4. frequency is how fast the speed controlling signal is. For motors 1 and 2 you can choose MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, orMOTOR12_1KHZ. A high speed like 64KHz wont be audible but a low speed like 1KHz will use less power. Motors 3 & 4 are only possible to run at 1KHz and will ignore any setting given
  3. Then you can set the speed of the motor using setSpeed(speed) where the speed ranges from 0 (stopped) to 255 (full speed). You can set the speed whenever you want.
  4. To run the motor, call run(direction) where direction is FORWARD, BACKWARD or RELEASE. Of course, the Arduino doesn't actually know if the motor is 'forward' or 'backward', so if you want to change which way it thinks is forward, simply swap the two wires from the motor to the shield.
Download File Copy Code #include <AFMotor.h> AF_DCMotor motor(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm void setup() { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Motor test!"); motor.setSpeed(200); // set the speed to 200/255 } void loop() { Serial.print("tick"); motor.run(FORWARD); // turn it on going forward delay(1000); Serial.print("tock"); motor.run(BACKWARD); // the other way delay(1000); Serial.print("tack"); motor.run(RELEASE); // stopped delay(1000); } #include <AFMotor.h> AF_DCMotor motor(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm void setup() { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Motor test!"); motor.setSpeed(200); // set the speed to 200/255 } void loop() { Serial.print("tick"); motor.run(FORWARD); // turn it on going forward delay(1000); Serial.print("tock"); motor.run(BACKWARD); // the other way delay(1000); Serial.print("tack"); motor.run(RELEASE); // stopped delay(1000); }

Page last edited August 27, 2012

Text editor powered by tinymce.

Using Stepper Motors AF_DCMotor Class Related Guides Adalight Project Pack By Phillip Burgess beginner Your browser does not support the video tag. This links to the guide Silicone Robo-Tentacle. Silicone Robo-Tentacle By Matthew Borgatti beginner DS1307 Real Time Clock Breakout Board Kit By Tyler Cooper intermediate Nokia 5110/3310 Monochrome LCD By lady ada beginner Photocells By lady ada beginner Geofencing with the FONA 808 & Adafruit IO By M. Schwartz beginner Sending an SMS with Temboo By Vaughn Shinall advanced Your browser does not support the video tag. This links to the guide Trellis 3D Printed Enclosure. Trellis 3D Printed Enclosure By Ruiz Brothers beginner Trinket Audio Player By Phillip Burgess beginner WiFi Weather Station By M. Schwartz intermediate Cloud Thermometer By Tony DiCola beginner RGB LED Matrix Basics By Phillip Burgess beginner Adafruit IO Basics: NeoPixel Controller By Tyler Cooper beginner Remote controlled door lock using a fingerprint... By M. Schwartz beginner Adafruit Ultimate GPS Logger Shield By lady ada intermediate
Create Wishlist
× Title Description Close Search Search
Categories

Tag » Arduino Motor Shield 4 Dc Motors