“第四十一课--Microduino 直流电机正反转/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(Created page with "{{Language|Lesson_41--Microduino_Dc_Motor_Rotation_Control}} {| style="width: 800px;" |- | ==目的== 本教程将教大家用一种简单的方法使一个直流电机正转...")
 
程序
 
(未显示2个用户的2个中间版本)
第7行: 第7行:
  
 
==设备==
 
==设备==
*'''[[Microduino-Core]]'''
+
*'''[[Microduino-Core/zh]]'''
*'''[[Microduino-FT232R]]'''
+
*'''[[Microduino-USBTTL/zh]]'''
 
*其他硬件设备
 
*其他硬件设备
 
**面包板跳线  一盒   
 
**面包板跳线  一盒   
第14行: 第14行:
 
**直流电机        一个
 
**直流电机        一个
 
**USB数据连接线  一根
 
**USB数据连接线  一根
 
 
 
  
 
==原理图==
 
==原理图==
第24行: 第21行:
  
 
==程序==
 
==程序==
<source lang="cpp">
+
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced/MicroduinoDCMotorRevers MicroduinoDCMotorRevers]
 
 
int motorPin1 =  5;    // 一条线连接 digital pin 5
 
int motorPin2 =  6;    // 另一条线连接 digital pin 6
 
 
 
 
 
void setup()  {               
 
  // 初始化,设置两个引脚为输出
 
  pinMode(motorPin1, OUTPUT);
 
  pinMode(motorPin2, OUTPUT); 
 
}
 
 
 
 
 
void loop()                   
 
{
 
  rotateLeft(150, 500);//左转速率150,持续500ms
 
  rotateRight(50, 1000);//右转速率50,持续1000ms
 
  rotateRight(150, 1000);//右转速率150,持续1000ms
 
  rotateRight(200, 1000);//右转速率200,持续1000ms
 
  rotateLeft(255, 500);//左转速率255,持续500ms
 
  rotateRight(10, 1500);//右转速率10,持续1500ms
 
}
 
 
 
//向左转
 
void rotateLeft(int speedOfRotate, int length){
 
  analogWrite(motorPin1, speedOfRotate); //用pwm设置电流大小
 
  digitalWrite(motorPin2, LOW);    // 设置 Pin motorPin2为LOW
 
  delay(length); //waits
 
  digitalWrite(motorPin1, LOW);    // 设置 Pin motorPin1为LOW
 
}
 
//向右转
 
void rotateRight(int speedOfRotate, int length){
 
  analogWrite(motorPin2, speedOfRotate); //用pwm设置电流大小
 
  digitalWrite(motorPin1, LOW);    // 设置 Pin motorPin1为LOW
 
  delay(length); //waits
 
  digitalWrite(motorPin2, LOW);    // 设置 Pin motorPin2为LOW
 
}
 
 
 
//全力向左转
 
void rotateLeftFull(int length){
 
  digitalWrite(motorPin1, HIGH); //设置最大电流
 
  digitalWrite(motorPin2, LOW);    // 设置 Pin motorPin2为LOW
 
  delay(length); //waits
 
  digitalWrite(motorPin1, LOW);    // 设置 Pin motorPin1为LOW
 
}
 
//全力向右转
 
void rotateRightFull(int length){
 
  digitalWrite(motorPin2, HIGH); //设置最大电流
 
  digitalWrite(motorPin1, LOW);    // 设置 Pin motorPin1为LOW
 
  delay(length); //waits
 
  digitalWrite(motorPin2, LOW);    // 设置 Pin motorPin2为LOW
 
}
 
 
 
 
 
 
 
</source>
 
  
 
==调试==
 
==调试==

2014年10月29日 (三) 05:07的最新版本

Language English

目的

本教程将教大家用一种简单的方法使一个直流电机正转与反转

设备

原理图

第四十一课-Microduino直流电机正反转原理图.jpg

注意:这不是一种最安全控制电机的方法,因为每个I/O pin只能承受40mA的电流。如果作为实际应用的话,还是建议大家使用类似于H-Bridge的电机驱动板

程序

MicroduinoDCMotorRevers

调试

步骤一:把代码复制到IDE中,编译

步骤二:电路连接如下图:

第四十一课-Microduino直流电机正反转连接图.jpg

步骤三:运行代码

步骤四:查看电机转动情况

结果

电机会以不同的速率正转,反转,一直循环下去

视频

http://v.youku.com/v_show/id_XNjgyNDgzNzM2.html