“Lesson 41--Microduino Dc Motor Rotation Control”的版本间的差异
(Created page with "{{Language|第四十一课--Microduino 直流电机正反转}} {| style="width: 800px;" |- | ==Objective== This tutorial will teach you use a simple way to achieve the forward...") |
(没有差异)
|
2014年3月21日 (五) 07:58的最新版本
Language | English |
---|
ObjectiveThis tutorial will teach you use a simple way to achieve the forward and backward rotation of a dc motor. Equipment
SchematicNote:This isn't one of the most safe method to control the motor, because each I/O pin only can carry 40mA current. If as a practical application, recommend using H-Bridge motor driver board. Programint motorPin1 = 5; // Motor's one end connects to digital pin 5
int motorPin2 = 6; // The other end connects to digital pin 6
void setup() {
//Initialization, set these two pins as output
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
}
void loop()
{
rotateLeft(150, 500);//Left rotate, speed=150, lasts 500ms
rotateRight(50, 1000);//Right rotate, speed=50, lasts 1000ms
rotateRight(150, 1000);//Right rotate, speed=150, lasts 1000ms
rotateRight(200, 1000);//Right rotate, speed=200, lasts 1000ms
rotateLeft(255, 500);//Left rotate, speed=255, lasts 500ms
rotateRight(10, 1500);//Right rotate, speed=10, lasts 1500ms
}
//Turn left
void rotateLeft(int speedOfRotate, int length){
analogWrite(motorPin1, speedOfRotate); //Use pwm to set the current
digitalWrite(motorPin2, LOW); // Set motorPin2 to LOW
delay(length); //waits
digitalWrite(motorPin1, LOW); // Set motorPin1 to LOW
}
//Trun right
void rotateRight(int speedOfRotate, int length){
analogWrite(motorPin2, speedOfRotate); //Use pwm to set the current
digitalWrite(motorPin1, LOW); // Set motorPin1 to LOW
delay(length); //waits
digitalWrite(motorPin2, LOW); // Set motorPin2 to LOW
}
//Full speed turn left
void rotateLeftFull(int length){
digitalWrite(motorPin1, HIGH); //Set max current
digitalWrite(motorPin2, LOW); // Set motorPin2 to LOW
delay(length); //waits
digitalWrite(motorPin1, LOW); // Set motorPin1 to LOW
}
//Full speed turn right
void rotateRightFull(int length){
digitalWrite(motorPin2, HIGH); //Set max current
digitalWrite(motorPin1, LOW); // Set motorPin1 to LOW
delay(length); //waits
digitalWrite(motorPin2, LOW); // Set motorPin2 to LOW
}
DebugStep 1:Copy the code to IDE and compile it Step 2:Set up circuit, as follows: Step 3:Run program Step 4:Check the rotation of motor ResultMotor will rotate forward and backward with different speed and in circle. Video |