Difference between revisions of "MCookie-Motor"

From Microduino Wiki
Jump to: navigation, search
(Features)
Line 11: Line 11:
  
 
==Features==
 
==Features==
*Current & speed limited by internal PWM  
+
*Current & speed limited by internal PWM;
 
*Synchronous  double-channel can reduce power consumption;   
 
*Synchronous  double-channel can reduce power consumption;   
 
*DC motor braking mode;   
 
*DC motor braking mode;   
*Capable of controlling two DC motors;
+
*Capable of controlling two DC motors.
  
 
==Specification==
 
==Specification==

Revision as of 09:44, 24 August 2016

Language: English  • 中文
mCookie-Motor

mCookie-Motor is a DC motor controller with PWM(Pulse Width Modulation). The speed of the motor can be controlled through PWM and mCookie-Motor has to be powered with BM module.



Features

  • Current & speed limited by internal PWM;
  • Synchronous double-channel can reduce power consumption;
  • DC motor braking mode;
  • Capable of controlling two DC motors.

Specification

  • External power supply: BM module
  • Pin Description
mCookie pin Motor chip pin Function
D6 1A Control 1A high level and rotate clockwise
D8 1B Control 1B high level and rotate counter clockwise
D5 2A Control 2A high level and rotate clockwise
D7 2B Control 2A high level and rotate counter clockwise
VMOT BM module Power supply
GND GND Ground

Note: The pins including 5, 6, 7 and 8 cannot be occupied by other sensors while using the Motor or it may cause problems.

Motor-Pinout-1Big.jpg

Document

Development

DC Motor Wire Connection

  • Connect one DC motor to (OUT1A, OUT1B) and the other to (OUT2A, OUT2B);
  • DC motor pin control:
//(D6, D8) controls motor (1A, 1B) 
#define OUT1A 6
#define OUT1B 8
//(D5, D7) controls motor (2A, 2B) 
#define OUT2A 5
#define OUT2B 7

PWM Rate Control

Project

  • Connection and disconnection control
6 8 5 7 1A 1B 2A 2B Function
Low Low Low Low Off Off Off Off Close (Stop habitually)
High Low High Low High Low High Low Rotate clockwise
Low High Low High Low High Low High Rotate counter clockwise
High High High High Low Low Low Low Halt
#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 rate control
//(D6, D8) controls motor (1A, 1B)
#define OUT1A 6
#define OUT1B 8
//(D5, D7) controls motor (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)
    //Loop statement. Along with PWM rate increases, you can change brightness level by controlling fadeValue. 
  {
    analogWrite(OUT1A, fadeValue);  //Write rate level into the motor 
    digitalWrite(OUT1B, LOW);
    analogWrite(OUT2A, fadeValue);
    digitalWrite(OUT2B, LOW);
    delay(100);                       //Delay time of rate. (The unit is ms)
  }
  for (int fadeValue = 255; fadeValue >= 0; fadeValue -= 5)
    // Loop statement. Along with PWM rate decreases, you can change brightness level by controlling fadeValue.
  {
    digitalWrite(OUT1A, LOW);
    analogWrite(OUT1B, fadeValue);  // Write rate level into the motor
    digitalWrite(OUT2A, LOW);
    analogWrite(OUT2B, fadeValue);
    delay(100);                     // Delay time of rate. (The unit is ms)
  }
  delay(1000);
}

Other Projects:

Purchase

History

Pictures

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

Video