根据adafruit提供的代码。
利用ladyada提供的motor shield
近距离全照:
将9g舵机接在
srv1处,(褐色为负极,红色正极,橙色信号线用来接受PWM指令)
将直流电机接在M2处,(正负极可以先不考虑,因为是直流电机)
步进电机自己占据了M3,M4.
步进电机的排线
详细属性地址:
http://www.adafruit.com/products/858#Technical Details
- Unipolar stepper with 0.1" spaced 5-pin cable connector
- 8 steps per revolution
- 1/64 geared down reduction
- 5V DC suggested operation
- Weight: 37 g.
- Dimensions: 28mm diameter, 20mm tall not including 9mm shaft with 5mm diameter
- 9" / 23 cm long cable
- Holding Torque: 150 gram-force*cm, 15 N*mm/ 2 oz-force*in
- Shaft: 5mm diameter flattened
组装拼成:
外接9v 1A 电源。
然后,三种电机开了个party!
利用的是Servo 库,和AFMotor 库(原因是用了adafruit motor shield)
// Adafruit Motor shield library // copyright Adafruit Industries LLC, 2009 // this code is public domain, enjoy! #include <AFMotor.h> #include <Servo.h> // DC motor on M2 AF_DCMotor motor(2); // DC hobby servo Servo servo1; // Stepper motor on M3+M4 64 steps per revolution AF_Stepper stepper(64, 2); // 不同的步进电机不同,我用的这款是64steps 一圈的。 void setup() { Serial.begin(9600); // set up Serial library at 9600 bps Serial.println("Motor party!"); // turn on servo servo1.attach(9); // adafruit提供的shield 上面带的地一个舵机是就是在Arduino PWM口,Pin 9 // 第二个舵机的位置,拓展板上是Servo2=》 在Arduino Uno上是Pin 10 // turn on motor #2 motor.setSpeed(200); // 最高转速是255 (这个是由于实例对象motor来源的类AF_DCMotor 决定的 motor.run(RELEASE); // } int i; // Test the DC motor, stepper and servo ALL AT ONCE! void loop() { motor.run(FORWARD); for (i=0; i<255; i++) { servo1.write(i); motor.setSpeed(i); stepper.step(1, FORWARD, INTERLEAVE); delay(3); } for (i=255; i!=0; i--) { servo1.write(i-255); motor.setSpeed(i); stepper.step(1, BACKWARD, INTERLEAVE); delay(3); } motor.run(BACKWARD); for (i=0; i<255; i++) { servo1.write(i); motor.setSpeed(i); delay(3); stepper.step(1, FORWARD, DOUBLE); } for (i=255; i!=0; i--) { servo1.write(i-255); motor.setSpeed(i); stepper.step(1, BACKWARD, DOUBLE); delay(3); } }