根据adafruit提供的代码。
利用ladyada提供的motor shield
近距离全照:
将9g舵机接在
srv1处,(褐色为负极,红色正极,橙色信号线用来接受PWM指令)
将直流电机接在M2处,(正负极可以先不考虑,因为是直流电机)
步进电机自己占据了M3,M4.
步进电机的排线
详细属性地址:
/products/858#Technical Details
Unipolar stepper with 0.1" spaced 5-pin cable connector8 steps per revolution1/64 geared down reduction5V DC suggested operationWeight: 37 g.Dimensions: 28mm diameter, 20mm tall not including 9mm shaft with 5mm diameter9" / 23 cm long cableHolding Torque: 150 gram-force*cm, 15 N*mm/ 2 oz-force*inShaft: 5mm diameter flattened
组装拼成:
外接9v1A 电源。
-9-5 23:06 上传下载附件(81.36 KB)
然后,三种电机开了个party!
利用的是Servo 库,和AFMotor 库(原因是用了adafruit motor shield)
// Adafruit Motor shield library// copyright Adafruit Industries LLC, // this code is public domain, enjoy!#include <AFMotor.h>#include <Servo.h> // DC motor on M2AF_DCMotor motor(2);// DC hobby servoServo servo1;// Stepper motor on M3+M4 64 steps per revolutionAF_Stepper stepper(64, 2); // 不同的步进电机不同,我用的这款是64steps 一圈的。void setup() {Serial.begin(9600); // set up Serial library at 9600 bpsSerial.println("Motor party!");// turn on servoservo1.attach(9); // adafruit提供的shield 上面带的地一个舵机是就是在Arduino PWM口,Pin 9// 第二个舵机的位置,拓展板上是Servo2=》 在Arduino Uno上是Pin 10// turn on motor #2motor.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);}}
如果觉得《Arduino 各种模块篇 motor shield 电机扩展板(舵机 直流电机 步进电机party)》对你有帮助,请点赞、收藏,并留下你的观点哦!