Home

Adafruit Motor Shield V2 for Arduino

image

Contents

1. If you would like to have a single DC power supply for the Arduino and motors Say a wall adapter or a single battery pack with 6 12VDC output simply plug it into the DC jack on the Arduino or the 2 pin power terminal block on the shield Place the power jumper on the motor shield Note that you may have problems with Arduino resets if the battery supply is not able to provide constant power so it is not a suggested way of powering your motor project You cannot use a 9V battery for this it must be 4 to 8 AA batteries or a single double lead acid battery pack If you would like to have the Arduino powered off of USB and the motors powered off of a DC power supply Plug in the USB cable Then connect the motor supply to the power terminal block on the Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 28 of 45 shield Do not place the jumper on the shield This is a suggested method of powering your motor project as it has a split supply one power supply for logic and one supply for motors If you would like to have 2 seperate DC power supplies for the Arduino and motors Plug in the supply for the Arduino into the DC jack and connect the motor supply to the power terminal block Make sure the jumper is removed from the motor shield No matter what if you want to use the DC motor Stepper system the motor shield LED should be lit indicating good motor power Adafruit Industries https
2. Standard header does not permit stacking but itis mechanically stronger and they re much less expensive too If you want to stack a shield on top do not perform this step as it is not possible to uninstall the headers once soldered in Skip down to the bottom for the stacking tutorial Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 11 of 45 Break apart the 0 1 header into 6 8 and or 10 pin long pieces and slip the long ends into the headers of your Arduino Place the assembled shield on top of the header ed Arduino so that all of the short parts of the header are sticking through the outer set of pads Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 12 of 45 Solder each one of the pins into the shield to make a secure connection Next you will attach the terminal blocks power jumper and servo connections Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 13 of 45 That s it Now you can install the terminal blocks and jumper Installing Terminal Blocks and more After you have installed either normal or stacking headers you must install the terminal blocks Next we will install the terminal blocks These are how we will connect power and motors to the shield They re much easier to use than soldering direct just use a small screwdriver to release attach wires First though we mus
3. learn adafruit com adafruit motor shield v2 for arduino Page 29 of 45 Using RC Servos LM brad GTI AU hus P uu d LH T SCL el 1312711185 a SEELE EEA 3 Fo _Servo pese 52 dn ni Jelelelelelelelelelelel Adafruit Motor Shield ver he GND AED a us 1 iii Hiti xr a th T Hobby servos are the easiest way to get going with motor control They have a 3 pin 0 1 female header connection with 5V ground and signal inputs The motor shield simply brings out the PWM output lines from Arduino pins 9 and 10 to two 3 pin headers so that its easy to plug in and go They can take a lot of power so a 9V battery wont last more than a few minutes The nice thing about using the onboard PWM is that its very precise and goes about its business in the background You can use the built in Servo library Using the servos is easy please read the official Arduino documentation for how to use them and see the example Servo sketches in the IDE http adafru it aOD Powering Servos Power for the Servos comes from the Arduino s on board 5V regulator powered directly from the USB or DC power jack on the Arduino If you need an external supply cut the trace on the bottom of the board and connect a 5V or 6V DC supply directly to the Opt Servo power input Using an external supply is for advanced users as you Can accidentally destroy the servos by connecting a power supply incorrectly Adafruit Industries h
4. Arduino digital 9 amp 10 pins Stacking shields is very easy Each shield you want to stack on top of must have stacking headers installed The top shield does not have to have stacking headers unless you eventually want to put something on top of it Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 37 of 45 The only thing to watch for when stacking shields is every shield must have a unique I2C address The default address is 0x60 You can adjust the address of the shields to range from 0x60 to 0x80 for a total of 32 unique addresses Addressing the Shields Each board in the chain must be assigned a unique address This is done with the address jumpers on the lower edge of the board The I2C base address for each board is 0x60 The binary address that you program with the address jumpers is added to the base I2C address To program the address offset use a drop of solder to bridge the corresponding address jumper for each binary 1 in the address The right most jumper is address bit 0 then to the left of that is address bit 1 etc up to address bit 5 Adafr ruit Motor Shie ale v Board 0 Address 0x60 Offset binary 0000 no jumpers required Board 1 Address 0x61 Offset binary 0001 bridge AO as in the photo above Board 2 Address 0x62 Offset binary 0010 bridge A1 to the left of AO Adafruit Industries https learn adafruit com adafruit motor shield v2 f
5. contacts go to pin 9 and 10 on the Arduino What if also need some more servos Check out our lovely servo shield also stackable with this motor shield and adds 16 free running servos per shield http learn adafruit com adafruit 16 channel pwm slash servo shield http adafru it ciQ What Arduinos is this shield compatible with It is tested to work with Duemilanove Diecimila Uno all revisions Leonardo and Mega ADK R3 and higher It can work with Mega R2 and lower if you solder a jumper wire from the shield s SDA pin to Digital 20 and the SCL pin to Digital 21 For use with the Due or other 3 3v processors you must configure the board for 3 3v logic levels Find the set of 3 pads labeled Logic Cut the small trace between the center pad and 5v and add a jumper from 3 3v to the center As of Arduino 1 5 6 r2 BETA there is a bug in the Due Wire library that prevents multiple Motor Shields from working properly get the following error trying to run the example code error Adafruit MotorShield h No such file or directory Make sure you have installed the Adafruit MotorShield library How do install the library Check the tutorial page on the subject here http learn adafruit com adafruit motor shield v2 for arduino install software http adafru it ciO HELP My motor doesnt work HELP My motor doesnt work But the servos work FINE Is the power LED lit The Stepper and DC motor connection
6. does not apply any braking void setSpeed uint8 t The setSpeed function controls the power level delivered to the motor The speed parameter is a value between 0 and 255 Note that setSpeed just controls the power delivered to the motor The actual speed of the motor will depend on several factors including The motor the power supply and the load Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 43 of 45 LE class Adafruit StepperMotor The Adafruit StepperMotor class represents a stepper motor attached to the shield You must declare an Adafruit StepperMotor for each stepper motor in your system Adafruit StepperMotor void The constructor takes no arguments The stepper motor is typically initialized by assigning a stepper object retrieved from the shield as below motor shield object with the default I2C address AFMS Connect a steppe os per revolution 1 8 degree to motor port 2 M3 and M4 myMotor AFMS getStepper void step uint16 t steps uint8 t dir uint8 t style SINGLE The step function controls stepper motion Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 44 of 45 e The first parameter specifies how many steps to move e he second parameter specifies the direction FORWARD or BACKWARD e he last parameter specifies the stepping style SINGLE DOUBLE INTERLEAVED or MICROSTEP Th
7. get you started up fast We suggest getting started with the DC motor example You can use any DC motor that can be powered by 6V 12VDC First restart the IDE to make sure the new library is loaded Plug the shield into the Arduino and connect a DC motor to motor port 1 it does not matter which wire goes into which terminal block as motors are bi directional Connect to the top two terminal ports do not connect to the middle pin GND See the photo below for the red and blue wire example Be sure to screw down the terminal blocks to make a good connection Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 22 of 45 0O OO J00OC a elelelelelelelole JES 0000000000000000000 ats Adatruit Motor shield wil 2 steppers or e o I 4 DC motors a per motor LJA max LELEL ET EL Hii Hi iit 3 a n Lae iw ml a rm erela oo oc y aL rt Un 4 a Hu Ss A NL LT p 3 s RST gt Arado li You must also supply 5 12VDC to power the motor There are two ways to do this 1 You can power the Arduino via the DC Barrel Jack and insert the VIN Jumper shown as the tall black handle right next to the green Power LED below 2 Youcan power the Arduino via the DC Barrel jack or USB port Then Power the shield via the 5 12VDC motor power terminal port the double terminal block next to the green Power LED and remove the VIN jumper If the Green LED isn t li
8. pin holes we did this so it wont fall out easily when you turn it over Then flip the board over and solder the 6 pins ee XL n Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 17 of 45 Finally break off a 2 pin piece of header and place it next to the POWER terminal block short legs down tape it in place if necessary and solder it in E P 0000 Dooo c GOGO c coda c COO000 c Coa c Fa ul L TT ooo T e F li bebe bbbbbbbb 1 v Installing with Stacking Headers You will need to purchase Arduino stacking headers for this step the shield does not come with them http adafru it 85 Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 18 of 45 Start by sliding the 10 pin 2 x 8 pin and 6 pin stacking headers into the outer rows of the shield from the top Then flip the board over so its resting on the four headers Pull on the legs if necessary to straighten them out Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 19 of 45 Tack one pin of each header to get them set in place before more soldering If the headers go crooked you can re heat the one pin while re positioning to straighten them up Md Ad Waciatruie ep a E 1 LLL NEN Adafruit Industries https learn adafruit com adafruit motor shield v2 for ard
9. want changing it on the fly to as you may Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 35 of 45 want minimum power more torque or more precision By default the motor will hold the position after its done stepping If you want to release all the coils so that it can spin freely call release The stepping commands are blocking and will return once the steps have finished Because the stepping commands block you have to instruct the Stepper motors each time you want them to move If you want to have more of a background task stepper control check out AccelStepper library http adafru it aOL install similarly to how you did with Adafruit MotorShield which has some examples for controlling three steppers simultaneously with varying acceleration Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 36 of 45 Stacking Shields One of the cool things about this shield design is that it is possible to stack shields Every shield you stack can control another 2 steppers or 4 DC motors or a mix of the two You can stack up to 32 shields for a total of 64 steppers or 128 DC motors Most people will probably just stack two or maybe three but hey you never know PS if you drive 64 steppers from one of these shields send us a photo OK Note that stacking shields does not increase the servo connections those are hard wired to the
10. wires together to GND UDINE LA er ie My o O fal ooc Maar En rd 28 Ce f 1 z 4 DC iuf o um zi z 1 Der mid m E tee EPA max LT Lo g i REL gt de You must also supply 5 12VDC to power the motor There are two ways to do this 1 You can power the Arduino via the DC Barrel Jack and insert the VIN Jumper shown as the tall black handle right next to the green Power LED below 2 Youcan power the Arduino via the DC Barrel jack or USB port Then Power the shield via the 5 12VDC motor power terminal port the double terminal block next to the green Power LED and remove the VIN jumper If the Green LED isn t lit up brightless do not continue you must power it via the VIN jumper or the terminal block Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 25 of 45 LL e Once you have verified the motor is connected properly and you have the power LED lit up brightly we can upload our code In the IDE load File gt Examples gt Adafruit_MotorShield gt StepperTest You should see and hear the stepper motor turn on and move back and forth attaching a slip of paper or tape as a flag can help you visualize the movement if you have trouble seeing the movement There are four ways to move a stepper with varying speed torque and smoothness tradeoffs This example code will demonstrate all four Adafruit Industries https learn adafruit c
11. AFMSbot begin Start the bottom shield AFMStop begin Start the top shield You can try out this code for yourself by setting up two shields and running the File gt Examples gt Adafruit MotorShield gt StackingTest example Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 39 of 45 Resources Motor ideas and tutorials e Wikipedia has tons of information http adafru it aOF on steppers e Jones on stepper motor types http adafru it aOH e Jason on reverse engineering the stepper wire pinouts http adafru it aOl Schematic click to embiggen ARDUINO I UND R3 sP eld poeta var Fear Idka PA Jra 171 Adai Industries 7 Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 40 of 45 Library Reference mn en SOM ae end RP hg I 0 LI ERD bikario a XN A P a E SCL ARE 131211190 8 X z 2 5 4 T HOO00000 Vole elelelelele d mem Lm Servo pins gt Si 2 M mejelejelejejejejejejejejejelejelejeje e E Jj gelelelelelelelelejejejlojeojolelelelolo e ORN m m elelelelelelelelejelelelelelelelelele o 520 ooo0000000000000000le eJelelelelelelelelelelelelelelelelele m olololololololololololololololololol o Piele Adafruit Motor Shield v2 80 g steppers or 0 O C motors t ZA per motor O Q a 56 ede AA p F T ANTT FRPP RPP E ee GND MN 3 Hil a uETEBEEENBBBSE m TETT
12. EEE STEEK ER j en eR En en ET Fr i i m i T re i T1 b i i a 8 cd d 1 1 JEL _ jJgt a pa i F La 5 120 Motor ae ae n jv 2 Bnd t3 Polisi 1 Analog In class Adafruit MotorShield The Adafruit MotorShield class represents a motor shield and must be instantiated before any DCMotors or StepperMotors can be used You will need to declare one Adafruit MotorShield for each shield in your system Adafruit MotorShield uint8 t addr 0x60 The constructor takes one optional parameter to specify the i2c address of the shield The default address of the constructor 0x60 matches the default address of the boards as shipped If you have more than one shield in your system each shield must have a unique address void begin uint16 t freq 1600 begin must be called in setup to initialize the shield An optional frequency parameter can be used to specify something other than the default maximum 1 6KHz PWM frequency Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 41 of 45 Adafruit DCMotor getMotor uint8 t n This function returns one of 4 pre defined DC motor objects controlled by the shield The parameter specifies the associated motor channel 1 4 Adafruit StepperMotor getStepper uint16 t steps uint8 t n This function returns one of 2 pre defined stepper motor objects controlled by the shield The first parameter specifies t
13. Yr adafruit learning system Adafruit Motor Shield V2 for Arduino Created by lady ada Last updated on 2014 06 28 08 17 15 PM EDT Guide Contents Guide Contents 2 Overview 4 FAQ 7 Install Headers amp Terminals 11 Installing Standard Headers 11 Installing Terminal Blocks and more 14 Installing with Stacking Headers 18 Install Software 22 Running the Example Code 22 DC Motor 22 Stepper Motor Test 24 Powering Motors 21 Voltage requirements 27 Current requirements 27 Setting up your shield for powering Hobby Servos 27 Setting up your shield for powering DC Motors 27 If you would like to have a single DC power supply for the Arduino and motors 28 If you would like to have the Arduino powered off of USB and the motors powered off of a DC power supply 28 If you would like to have 2 seperate DC power supplies for the Arduino and motors 29 Using RC Servos 30 Powering Servos 30 Using DC Motors 32 Connecting DC Motors 32 Include the required libraries 32 Create the Adafruit MotorShield object 33 Create the DC motor object 33 Connect to the Controller 33 Set default speed 33 Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 2 of 45 Run the motor Using Stepper Motors Include the required libraries Create the Adafruit MotorShield object Create the stepper motor object Set default speed Run the motor otacking Shields Addressing the Shields Writing Code for Multiple Shield
14. connect them to either the M1 M2 M3 or M4 Then follow these steps in your sketch Include the required libraries Make sure you Zinclude the required libraries include lt Wire h gt Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 32 of 45 include lt Adafruit Moto rShield h gt include utility Adafruit PWMServoDriver h Create the Adafruit MotorShield object Adafruit MotorShield AFMS Adafruit MotorShield Create the DC motor object Request the Stepper motor from the Adafruit MotorShield Adafruit DCMotor myMotor AFMS getMotor 1 with getMotor port Port is which port it is connected to If you re using M1 its 1 M2 use 2 M3 use 3 and M4 use 4 Connect to the Controller In your setup function call begin on the Adafruit MotorShield object AFMS begin Set default speed 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 myMotor gt setSpeed 100 Run the motor 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 myMotor run FORWARD Adafruit Industries https learn adafruit com adafruit motor shield v2 for ardui
15. e running Is the shield broken Motors take a lot of power and can cause brownouts that reset the Arduino For that reason the shield is designed for seperate split supplies one for the electronics and one for the motor Doing this will prevent brownouts Please read the user manual for information about appropriate power supplies I m trying to build this robot and it doesn t seem to run on a 9V battery You cannot power motors from a 9V battery You must use AA batteries or a lead acid battery for motors Can this shield control small 3V motors Not really its meant for larger 5V motors It does not work for 3V motors unless you overdrive them at 5V and then they will burn out faster have good solid power supplies but the DC motors seem to cut out or skip Try soldering a ceramic or disc 0 1uF capacitor between the motor tabs on the motor itself this will reduce noise that could be feeding back into the circuit thanks macegr http adafru it clc Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 8 of 45 I m using a 4WD robot platform and can t get anything to work The motors used in the AWD robot platforms from some distributors have a lot of brush noise This feeds back into the Arduino circuitry and causes unstable operation This problem can be solved by soldering 3 noise suppression capacitors to the motor 1 between the motor terminals and one from each term
16. e ste function is synchronous and does not return until all steps are complete When complete the motor remains powered to apply holding torque to maintain position void setSpeed uint16 t The setSpeed function controls the speed of the stepper motor rotation Speed is specified in RPM uint8 t onestep uint8 t dir uint8 t style The oneStep function is a low level internal function called by step But it can be useful to call on its own to implement more advanced functions such as acceleration or coordinating simultaneous movement of multiple stepper motors The direction and style parameters are the same as for step but onestep steps exactly once Note Calling step with a step count of 1 is not the same as calling onestep The step function has a delay based on the speed set in setSpeed onestep has no delay void release void The release function removes all power from the motor Call this function to reduce power requirements if holding torque is not required to maintain position Adafruit Industries Last Updated 2014 06 28 08 17 17 PM EDT Page 45 of 45
17. he number of steps per revolution The second parameter specifies the associated stepper channel 1 2 void setPWM uint8 t pin uint16 t val void setPin uint8 t pin boolean val These are low level functions to control pins on the on board PWM driver chip These functions are intended for internal use only class Adafruit DCMotor The Adafruit DCMotor class represents a DC motor attached to the shield You must declare an Adafruit DCMotor for each motor in your system Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 42 of 45 Adafruit DCMotor void The constructor takes no arguments The motor object is typically initialized by assigning a motor object retrieved from the shield class as below Create the motor shield object with the default I2C address AFMS Select which port M1 M2 M3 or M4 In this case M1 myMotor AFMS getMotor 1 You can also make another motor on port M2 myOtherMotor AFMS getMotor 2 void run uint8 t The run function controls the motor state The parameter can have one of 3 values e FORWARD Rotate in a forward direction e REVERSE Rotate in the reverse direction e RELEASE Stop rotation Note that the FORWARD and REVERSE directions are arbitrary If they do not match the actual direction of your vehicle or robot simple swap the motor leads Also note that RELEASE simply cuts power to the motor It
18. inal to the motor casing But my motor already has a capacitor on it and it still doesn t work These motors generate a lot of brush noise and usually need the full 3 capacitor treatment for adequate suppression Why don t you just design capacitors into the shield They would not be effective there The noise must be suppressed at the source or the motor leads will act like antennae and broadcast it to the rest of the system Why won t my stepper motor go any faster Since the shield is controlled by i2c the maximum step rate is limited by the i2c bus speed The default bus speed is 100KHz and can be increased to 400KHz by editing the library file in your Arduino installation folder The file can be found in Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 9 of 45 hardware libraries wire utility twi h Find the line with define TWI FREQ 100000L and change it to define TWI FREQ 400000L Or you can add the following code to your setup function TWBR F CPU 4000001 16 2 Change the i2c clock to 400KHz Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 10 of 45 Install Headers amp Terminals PPEEEEEEPE PPP HH LLL LLL LL D E LE E E E E o0 0000000000 lelelelelelelelelelelele Adafruit Sa Es wie T yj mn m zE WE yd uH Installing Standard Headers The shield comes with 0 1 standard header
19. no Page 33 of 45 Using Stepper Motors e Jaslelels s o Wr 0000000000000 HosBopiDmDODDOOO0DOD ooo elelele elelelelele nan EalelaeleleleleleleleJeleIelejej alajolo ele j gair uji Her S eld Jak Dr aE p of ete LEF va IIR Stepper motors are great for semi precise control perfect for many robot and CNC projects This motor shield supports up to 2 stepper motors The library works identically for bi polar and uni polar motors For unipolar motors to connect up the stepper first figure out which pins connected to which coil and which pins are the center taps If its a 5 wire motor then there will be 1 that is the center tap for both coils Theres plenty of tutorials online on how to reverse engineer the coils pinout http adafru it aOO The center taps should both be connected together to the GND terminal on the motor shield output block then coil 1 should connect to one motor port say M1 or M3 and coil 2 should connect to the other motor port M2 or M4 For bipolar motors its just like unipolar motors except theres no 5th wire to connect to ground The code is exactly the same Running a stepper is a little more intricate than running a DC motor but its still very easy Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 34 of 45 Include the required libraries Make sure you include the required libraries include lt Wire h gt include Adafruit Mo
20. no uses This is OK for the small hobby servos suggested Basically power up your Arduino with the USB port or DC barrel jack and you re good to go If you want something beefier cut the trace going to the optional servo power terminal and wire up your own 5 6V supply Setting up your shield for powering DC Motors The DC motors are powered off of a high voltage supply and NOT the regulated 5V Don t connect the motor power supply to the Arduino s 5V power pin This is a very very very bad idea unless you are sure you know what you re doing You could damage your Arduino and or USB port There are two places you can get your motor high voltage supply from 1 One is the DC barrel jack on the Arduino board 2 The other is the 2 terminal block on the shield that is labeled DC Motor Power 5 Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 27 of 45 12VDC The DC Jack on the Arduino has a protection diode so you won t be able to mess things up too bad if you plug in the wrong kind of power The terminal block as a protection FET so you will not damage the arduino shield if you wire up your battery supply backwards but it wont work either Here s how it works ARDUINO BOARD P4 Motor logic supply l Ml e Servo power supply Vin d aL O57 Arduino power supply mI L 3 ET TRIAL Motor power high voltage supply Motor shield power jumper MOTOR SHIELD
21. o 13 5VDC e Up to 4 bi directional DC motors with individual 8 bit speed selection so about 0 596 resolution e Up to 2 stepper motors unipolar or bipolar with single coil double coil interleaved or micro stepping e Motors automatically disabled on power up e Big terminal block connectors to easily hook up wires 18 26AWG and power e Arduino reset button brought up top e Polarity protected 2 pin terminal block and jumper to connect external power for separate logic motor supplies e ested compatible with Arduino UNO Leonardo ADK Mega R3 Diecimila amp Duemilanove Works with Due with 3 3v logic jumper Works with Mega ADK R2 and earlier with 2 wire jumpers e Download the easy to use Arduino software library check out the examples and you re ready to go e 5v or 3 3v compatible logic levels jumper configurable Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 5 of 45 Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 6 of 45 FAO How many motors can use with this shield You can use 2 DC hobby servos that run on 5V and up to 4 DC motors or 2 stepper motors or 1 stepper and up to 2 DC motors that run on 5 12VDC Can connect more motors Yes by stacking shields Every shield you stack on will add 4 DC motors or 2 stepper motors or 1 more stepper and 2 more DC motors You will not gain more servo connections as the servo
22. om adafruit motor shield v2 for arduino Page 26 of 45 Powering Motors Motors need a lot of energy especially cheap motors since they re less efficient Voltage requirements The first important thing to figure out what voltage the motor is going to use If you re lucky your motor came with some sort of specifications Some small hobby motors are only intended to run at 1 5V but its just as common to have 6 12V motors The motor controllers on this shield are designed to run from 5V to 12V MOST 1 5 3V MOTORS WILL NOT WORK Current requirements The second thing to figure out is how much current your motor will need The motor driver chips that come with the kit are designed to provide up to 1 2 A per motor with 3A peak current Note that once you head towards 2A you ll probably want to put a heat sink on the motor driver otherwise you will get thermal failure possibly burning out the chip You can t run motors off of a 9V battery so don t waste your time batteries Use a big Lead Acid or NiMH battery pack Its also very much suggested that you set up two power supplies split supply one for the Arduino and one for the motors 9996 of weird motor problems are due to noise on the power line from sharing power supplies and or not having a powerful enough supply Even small DC motors can draw up to 3 Amps when they stall Setting up your shield for powering Hobby Servos Servos are powered off of the same regulated 5V that the Ardui
23. or arduino Page 38 of 45 Board 3 Address 0x63 Offset binary 0011 bridge AO amp A1 two rightmost jumpers Board 4 Address 0x64 Offset binary 0100 bridge A2 middle jumper etc Writing Code for Multiple Shields The Adafruit MotorShield library has the ability to control multiple shields unlike the older AF Motor library First we must create a Motor Shield Controller for each shield with the assigned address Adafruit MotorShield AFMSbot 0x61 Rightmost jumper closed Adafruit MotorShield AFMStop 0x60 Default address no jumpers One motor shield is going to be called AFMSbot bottom shield so we remember and one is AFMStop top shield so we can keep them apart When you create the shield object specify the address you set for it above Then we can request the motors connected to each one On the top shield connect two steppers each with 200 steps Adafruit StepperMotor myStepper2 AFMStop getStepper 200 1 Adafruit StepperMotor myStepper3 AFMStop getStepper 200 2 On the bottom shield connect a stepper to port M3 M4 with 200 steps Adafruit StepperMotor myStepperl AFMSbot getStepper 200 2 And a DC Motor to port M1 Adafruit DCMotor myMotorl AFMSbot getMotor 1 You can request a stepper or DC motor from any port just be sure to use the right AFMS controller object when you call getMotor or getStepper Then both shields must have begin called before you use the motors connected
24. s Resources Motor ideas and tutorials Library Reference class Adafruit MotorShield Adafruit MotorShield uint8 t addr 0x60 void begin uint16 tfreq 1600 Adafruit DCMotor getMotor uint8 t n Adafruit StepperMotor getStepper uint16_t steps uint8 tn void setPWM uint8 t pin uint16 t val void setPin uint8 t pin boolean val class Adafruit DCMotor Adafruit DCMotor void void run uint8 t void setSpeed uint8 t class Adafruit StepperMotor Adafruit StepperMotor void void step uint16 tsteps uint8 t dir uint8 t style SINGLE void setSpeed uint16 t uint8 t onestep uint8 t dir uint8 t style void release void Adafruit Industries https learn adaf ruit com adafruit motor shield v2 for arduino 33 34 35 35 35 35 35 3 38 39 40 40 41 41 41 41 42 42 42 42 43 43 43 44 44 44 45 45 45 Page 3 of 45 Overview The original Adafruit Motorshield kit is one of our most beloved kits which is why we decided to make something even better We have upgraded the shield kit to make the bestest easiest way to drive DC and Stepper motors This shield will make quick work of your next robotics project We kept the ability to drive up to 4 DC motors or 2 stepper motors but added many improvements Instead of a L293D darlington driver we now have the TB6612 MOSFET driver with 1 2A per channel and 3A peak current capability It also has much lower voltage drops across the motor so you ge
25. s will not work if the onboard green Power LED is not lit brightly Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 7 of 45 You must connect 5 12VDC power to the shield through the POWER terminal blocks or through the DC barrel jack on the Arduino and VIN jumper What is the green Power LED for The LED indicates the DC Stepper motor power supply is working If it is not lit brightly then the DC Stepper motors will not run The servo ports are 5V powered and does not use the DC motor supply What pins are are not used on the motor shield The shield uses the SDA and SCL i2c pins to control DC and stepper motors On the Arduino UNO these are also known as A4 and A5 On the Mega these are also known as Digital 20 and 21 On the Leonardo these are also known as digital 2 and 3 Do not use those pins on those Arduinos with this shield with anything other than an i2c sensor driver Since the shield uses I2C to communicate you can connect any other i2c sensor or driver to the SDA SCL pins as long as they do not use address 0x60 the default address of the shield If you want to use the servo connections they are on pins 9 and 10 If you do not use the connector then those pins are simply not used You can use any other pins for any other use How can connect to the unused pins All pins are broken out into 0 1 spaced header along the edges of the shield My Arduino freaks out when the motors ar
26. t more torque out of your batteries and there are built in flyback diodes as well Instead of using a latch and the Arduino s PWM pins we have a fully dedicated PWM driver chip onboard This chip handles all the motor and speed controls over I2C Only two pins SDA amp SCL are required to drive the multiple motors and since it s I2C you can also connect any other I2C devices or shields to the same pins This also makes it drop in compatible with any Arduino such as the Uno Leonardo Due and Mega R3 Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 4 of 45 Completely stackable design 5 address select pins means up to 32 stackable shields that s 64 steppers or 128 DC motors What on earth could you do with that many steppers have no idea but if you come up with something send us a photo because that would be a pretty glorious project Lots of other little improvements such as a polarity protection FET on the power pins and a bit prototyping area And the shield is assembled and tested here at Adafruit so all you have to do is solder on straight or stacking headers and the terminal blocks Lets check out these specs again e 2 connections for 5V hobby servos connected to the Arduino s high resolution dedicated timer no jitter e 4 H Bridges TB6612 chipset provides 1 2A per bridge 3A peak with thermal shutdown protection internal kickback protection diodes Can run motors on 4 5VDC t
27. t solder them in Slide the 3 pin terminal blocks into 2 pin terminal blocks so that you have 2 x 5 pin and 1 x 2 pin blocks The two 5 pin sets go on either side The 2 pin piece goes nearthe bottom of the shield Make sure that the open holes of the terminal blocks face out Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 14 of 45 Flip the board over so that you can see amp solder the pins of the terminal blocks LI E JT NM IT B r TH 5 uci d ed Bo DO adafruit a 99999 56 Solder in the two pins of the external power terminal block MT EI T EE adafruit NE or A EEL B S A ro OE af ruit oo tsss oC ZI ME n owe xe eoa B d bbb OOO 6666 Z Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 15 of 45 Solder in both motor blocks 5 pads each rx xam dis i EET EE pi bz adafruit Ue a Kk e MEM MM MEM MEM EN EM 00 seeee r o 2 d E UNJEDE ne j5 Di kbs ei Pe Hier MA UE That s it for the terminal blocks Next up servo connections Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 16 of 45 OK next up take the 2x3 pin header and place it with the short legs down into the top corner where it says SERVO 1 and SERVO 2 You might have to sort of angle the part a little to get it to fit into both sets of 3
28. t up brightless do not continue you must power it via the VIN jumper or the terminal block Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 23 of 45 Once you have verified the motor is connected properly and you have the power LED lit up brightly we can upload our code In the IDE load File gt Examples gt Adafruit MotorShield gt DCMotorTest You should see and hear the DC motor turn on and move back and forth attaching a slip of paper or tape as a flag can help you visualize the movement if you have trouble seeing the movement Stepper Motor Test You can also test a stepper motor connection with the shield The shield can run unipolar 5 wire and 6 wire and bipolar 4 wire steppers It cannot run steppers with any other of wires The code is the same for unipolar or bipolar motors the wiring is just slightly different Plug the shield into the Arduino and connect a stepper motor to motor port 2 unlike DC motors the wire order does matter Connect to the top two terminal ports coil 1 and the bottom two terminal ports coil 2 Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 24 of 45 e f you have a bipolar motor do not connect to the middle pin GND e f you are using a unipolar motor with 5 wires connect the common wire to GND e f you are using a unipolar motor with 6 wires you can connect the two center coil
29. torShield h gt include utility Adafruit PWMServoDriver h Create the Adafruit MotorShield object Adafruit MotorShield AFMS Adafruit MotorShield Create the stepper motor object Request the Stepper motor from the Adafruit MotorShield Adafruit StepperMotor myMotor AFMS getStepper 200 2 with getStepper steps stepper Steps indicates how many steps per revolution the motor has A 7 5degree step motor has 360 7 5 48 steps Stepper is which port it is connected to If you re using M1 and M2 its port 1 If you re using M3 and M4 indicate port 2 Set default speed Set the speed of the motor using setSpeed rpm where rpm is how many revolutions per minute you want the stepper to turn Run the motor Then every time you want the motor to move call the step steps direction steptype procedure steps is how many steps you d like it to take direction is either FORWARD or BACKWARD and the step type is SINGLE DOUBLE INTERLEAVE or MICROSTEP e Single means single coil activation e Double means 2 coils are activated at once for higher torque e Interleave means that it alternates between single and double to get twice the resolution but of course its half the speed e Microstepping is a method where the coils are PWM d to create smooth motion between steps Theres tons of information about the pros and cons of these different stepping methods in the resources page You can use whichever stepping method you
30. ttps learn adafruit com adafruit motor shield v2 for arduino Page 30 of 45 When using external servo power be careful not to let it short out against the USB socket shell on the processor board Insulate the top of the USB socket with some electrical tape Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 31 of 45 Using DC Motors x E A Kama Di itai Fija Eo WI z E bs a ims y LE ECE naer L3 12 z ii 18 8 noo 4 x _ Servo ODDO oo EIS DOC IP Milelelelelelelelelelelelelels FJ elelelaselalelelelelelelels Jelelelelelelelelelelsisis 0000000000000090000 E Adafruit Matar shield We F steppers or O O 4 DC motors Ni E per motor ST U CJA max EN Ju lt lt n1 E um Er as t P m a iii F Fa je TE m I e 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 596 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 continuous loads over 1 2A or motors that peak over 3A so this is for small motors Check the datasheet for information about the motor to verify its OK Connecting DC Motors To connect a motor simply solder two wires to the terminals and then
31. uino Page 20 of 45 Once you ve tacked and straightened all the headers go back and solder the remaining pins for each header th 20000 Oo PEE Ni d d WERE NS Adafruit Industries https learn adafruit com adafruit motor shield v2 for arduino Page 21 of 45 Install Software To use the shield on an Arduino you ll need to install the Adafruit Motorshield v2 library This library is not compatible with the older AF Motor library used for v1 shields However if you have code forthe older shield adapting the code to use the new shield isn t difficult We had to change the interface a little to support shield stacking amp we think its worth it Start by downloading the zip of the library from the Github repository http adafru it ciN You can also just click the button below Download latest Adafruit Motor Shield V2 Library http adafru it cBx Copy the folder inside the zip file to the Libraries folder inside your Arduino Sketchbook folder and re name it to Adafruit Motorshield For more details on how to install Arduino libraries check out our detailed tutorial http adafru it aY M If you plan to use AccelStepper for acceleration control or for simultaneous control of multiple stepper motors you will also need to download and install the AccelStepper library AccelStepper Library http adafru it dh1 Running the Example Code DC Motor The library comes with a few examples to

Download Pdf Manuals

image

Related Search

Related Contents

WARNING - P.C. Richard & Son  Advanced Digital Meter  Sonos Controller für iPhone Produkthandbuch  Samsung HT-TXQ120 User Manual  Lenovo Laptop E93 User's Manual  Ventilsystem VS CL03/CL03-XL  「生ごみ処理機 Version1.5」 認定基準書    L`Espace Info Énergie, nouveau  

Copyright © All rights reserved.
Failed to retrieve file