zoukankan      html  css  js  c++  java
  • Arduino 各种模块篇 motor shield 电机扩展板(舵机、直流电机、步进电机party)

    根据adafruit提供的代码。

    利用ladyada提供的motor shield

     近距离全照:

    2237983028_b0b7144507_b.jpg

    将9g舵机接在

    srv1处,(褐色为负极,红色正极,橙色信号线用来接受PWM指令)

    将直流电机接在M2处,(正负极可以先不考虑,因为是直流电机)

    步进电机自己占据了M3,M4.

    步进电机的排线

    IMGP0641_调整大小.JPG

    详细属性地址:

    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

    Snap2.jpg

    组装拼成:

    外接9v 1A 电源。

    2011-9-5 23:06 上传
    下载附件 (81.36 KB)

    然后,三种电机开了个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);
     }
    }
  • 相关阅读:
    「网络流 24 题」魔术球
    「网络流 24 题」圆桌聚餐
    「网络流 24 题」最小路径覆盖
    「网络流 24 题」太空飞行计划
    「网络流 24 题」搭配飞行员
    「网络流 24 题」负载平衡
    「网络流 24 题」数字梯形
    餐巾计划问题
    让Double类型完整显示,不用科学计数法显示E
    kotlin新工程
  • 原文地址:https://www.cnblogs.com/spaceship9/p/3013298.html
Copyright © 2011-2022 走看看