MCookie-Motor/zh

来自Microduino Wikipedia
Zhangfengfeng讨论 | 贡献2017年5月31日 (三) 10:01的版本 项目
跳转至: 导航搜索
Language English
mCookie-Motor

mCookie-Motor是一款直流电机(马达)控制器,具有脉宽调制,可通过PWM控制电机速度。必须使用BM模块供电。



特色

  • 内部PWM电流限制控制,可控制速度;
  • 同步整流,可降低功耗;
  • 直流电动机制动模式;
  • 可同时驱动两个直流电机

规格

  • 外部供电:BM模块供电。
  • 引脚说明
mCookie引脚 Motor芯片引脚 功能
D6 1A 控制1A高电平,顺时针转
D8 1B 控制1B高电平,逆时针转
D5 2A 控制2A高电平,顺时针转
D7 2B 控制2B高电平,逆时针转
VMOT BM模块 供电
GND GND 共地
  • 注意:
    • 使用Motor模块驱动电机5,6,7,8这几个引脚不能被其他传感器占用,否则会出现问题。
    • Motor模块必须通过mCookie-BM/zh模块进行供电,不能直接通过CoreUSB连接电脑供电否则可能导致应用无法工作
Motor-Pinout-1Big.jpg


开发

直流电机接线

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

通断控制

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 急停
#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);
}

PWM调速控制

//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);
}

项目

电机驱动
直流减速电机使用

图库

MCookie-Motor-t1.jpg
MCookie-Motor-b1.jpg