直流减速电机使用

来自Microduino Wikipedia
Yanglibin@microduino.cc讨论 | 贡献2016年3月24日 (四) 05:58的版本 准备
跳转至: 导航搜索

概述

采用N20直流减速电机,在普通直流电机的基础上,加上配套齿轮减速箱.齿轮减速箱的作用是,提供较低的转速,较大的力矩,提高了直流电机在自动化行业中的使用率。

规格

减速直流机

  • 电器规格
    • 工作电压:5V
  • 技术参数

开发

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Motor/zh 1 直流电机驱动板
mCookie-BM/zh 1 供电
mCookie-BM shield/zh 1 电池管理扩展
  • 其他硬件设备
    • 直流减速电机
    • USB数据连接线 一根

直流电机接线

  • 将一个直流电机接(OUT1A,OUT1B),另外一个直流电机接(OUT2A,OUT2B);
  • 直流电机控制引脚:
//D6,D8控制1A,1B的电机
#define OUT1A 6
#define OUT1B 8
//D5,D7控制2A,2B的电机
#define OUT2A 5
#define OUT2B 7

准备

  • Setup 1:将电机连接到Motor模块如上图所示的接口上。
  • Setup 2:你可以根据应用的需要将配件安装在电机和轴上,并固定在其他材料上。。
  • Setup 3:将激活后的电池盒与BM模块相连。驱动电机时必须要用到BM和BM shiled模块给电机供电,不然电机无法正常工作。
CoreUSB Ble steup2.jpg
pinout
pinout
  • Setup 4:将所有设备连接在一起。通过USB数据线将接入电脑。

实验一:通断控制

6 8 5 7 1A 1B 2A 2B 功能
Low Low Low Low Off Off Off Off 关闭(惯性停下)
High Low High Low High Low High Low 顺时针转
Low High Low High Low High Low High 逆时针转
High High High High Low Low Low Low 急停
  • 打开Arduino IDE,将下列代码复制到IDE中。
#define OUT1A 6
#define OUT1B 8
#define OUT2A 5
#define OUT2B 7

void setup()
{
  pinMode(OUT1A, OUTPUT);
  pinMode(OUT1B, OUTPUT);
  pinMode(OUT2A, OUTPUT);
  pinMode(OUT2B, OUTPUT);
}

void loop()
{
head();
delay(2000);
back();
delay(1000);
stop();
delay(500);
}

void head()
{
  digitalWrite(OUT1A, HIGH);
  digitalWrite(OUT1B, LOW);
  digitalWrite(OUT2A, HIGH);
  digitalWrite(OUT2B, LOW);
}
void back()
{
  digitalWrite(OUT1A, LOW);
  digitalWrite(OUT1B, HIGH);
  digitalWrite(OUT2A, LOW);
  digitalWrite(OUT2B, HIGH);
}
void stop()
{
  digitalWrite(OUT1A, LOW);
  digitalWrite(OUT1B, LOW);
  digitalWrite(OUT2A, LOW);
  digitalWrite(OUT2B, LOW);
}
  • 编译完成后在Arduino IDE的工具(Tools)→端口(Serial Port)里面选择正确的端口号。
Upload.JPG
  • 编译完成后直接下载程序。
    • 下载完毕你可以看到减速电机正转2S,反转1S,停0.5S。

程序调试

  • 通过“digitalWrite(pin, xx);”函数输出高低电平信号来控制电机的转动情况。

实验二:PWM电机调速控制

  • 打开Arduino IDE,将下列代码复制到IDE中。
//D6,D8控制1A,1B的电机
#define OUT1A 6
#define OUT1B 8
//D5,D7控制2A,2B的电机
#define OUT2A 5
#define OUT2B 7

void setup()
{
  pinMode(OUT1A, OUTPUT);
  pinMode(OUT1B, OUTPUT);
  pinMode(OUT2A, OUTPUT);
  pinMode(OUT2B, OUTPUT);
}

void loop()
{
  for (int fadeValue = 0; fadeValue <= 255; fadeValue += 5)
    //循环语句,控制PWM速度增加,控制fadeValue的变化大小可以控制亮度级别
  {
    analogWrite(OUT1A, fadeValue);  //将速度级别写入电机
    digitalWrite(OUT1B, LOW);
    analogWrite(OUT2A, fadeValue);
    digitalWrite(OUT2B, LOW);
    delay(100);                       //速度度级别维持的时间,单位毫秒
  }
  for (int fadeValue = 255; fadeValue >= 0; fadeValue -= 5)
    //循环语句,控制PWM速度减小,控制fadeValue的变化大小可以控制亮度级别
  {
    digitalWrite(OUT1A, LOW);
    analogWrite(OUT1B, fadeValue);  //将速度级别写入电机
    digitalWrite(OUT2A, LOW);
    analogWrite(OUT2B, fadeValue);
    delay(100);                     //速度度级别级别维持的时间,单位毫秒
  }
  delay(1000);
}
  • 编译完成后在Arduino IDE的工具(Tools)→端口(Serial Port)里面选择正确的端口号,然后直接下载程序。
Upload.JPG
  • 下载完毕,打开串口监视器可以看到速度越来越快达到最大,之后越来越慢,依次循环

程序调试

  • 采用“for”函数来控制循环变速
  • 采用“analogWrite(pin, XX);”来控制速度
    • pin:必须是PWM控制引脚,mCookie-CoreUSB的D5,D6,D7,D8都是PWM控制引脚。
    • XX:值的范围为0-255,值越大速度越快。

应用

视频