“Microduino-Shield Stepper/zh”的版本间的差异
502748957@qq.com(讨论 | 贡献) (→规格) |
502748957@qq.com(讨论 | 贡献) (→开发) |
||
第87行: | 第87行: | ||
==开发== | ==开发== | ||
主要应用在平衡车上。Upin27接口可叠加Microduino扩展模块做二次开发。 | 主要应用在平衡车上。Upin27接口可叠加Microduino扩展模块做二次开发。 | ||
+ | *简单示例程序 | ||
+ | 效果是使步进电机正转一个角度,停止500ms继续正转。如需要反转则将注释部分取消并注释掉上面两行 | ||
+ | <source lang="cpp"> | ||
+ | //声明Motor1引脚的驱动管脚D5,A0,使能D4 | ||
+ | #define MOTOR_EN 4 //PORTB,0 | ||
+ | #define MOTOR1_DIR A0 //PORTA,7 | ||
+ | #define MOTOR1_STEP 5 //PORTB,1 | ||
+ | |||
+ | void setup() { | ||
+ | // put your setup code here, to run once: | ||
+ | pinMode(MOTOR_EN, OUTPUT); | ||
+ | pinMode(MOTOR1_DIR, OUTPUT); | ||
+ | pinMode(MOTOR1_STEP, OUTPUT); | ||
+ | |||
+ | digitalWrite(MOTOR_EN, LOW); //使能 | ||
+ | |||
+ | } | ||
+ | void step(boolean dir, int steps) //步进函数,第一个变量是方向,第二个变量是步数即转的角度 | ||
+ | { | ||
+ | digitalWrite(MOTOR1_DIR, dir); | ||
+ | delay(5); | ||
+ | for (int i = 0; i < steps; i++) { | ||
+ | digitalWrite(MOTOR1_STEP, HIGH); | ||
+ | delayMicroseconds(200); | ||
+ | digitalWrite(MOTOR1_STEP, LOW); | ||
+ | delayMicroseconds(200); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | step(1, 1000); //正转 | ||
+ | delay(500); | ||
+ | // step(0,1000); //反转 | ||
+ | // delay(500); | ||
+ | } | ||
+ | |||
+ | </source> | ||
==应用== | ==应用== |
2016年1月20日 (三) 09:03的版本
Language | English |
---|
Microduino-Shield Stepper板子一款带转换器和过流保护的DMOS微步驱动器,用于平衡车,使用时叠加Mocroduino核心模块与需要的功能模块即可。
特色
规格
引脚说明:
文档
[百度盘地址] 提取码:tram
[datasheet.pdf] 提取码:or2r 开发主要应用在平衡车上。Upin27接口可叠加Microduino扩展模块做二次开发。
效果是使步进电机正转一个角度,停止500ms继续正转。如需要反转则将注释部分取消并注释掉上面两行 //声明Motor1引脚的驱动管脚D5,A0,使能D4
#define MOTOR_EN 4 //PORTB,0
#define MOTOR1_DIR A0 //PORTA,7
#define MOTOR1_STEP 5 //PORTB,1
void setup() {
// put your setup code here, to run once:
pinMode(MOTOR_EN, OUTPUT);
pinMode(MOTOR1_DIR, OUTPUT);
pinMode(MOTOR1_STEP, OUTPUT);
digitalWrite(MOTOR_EN, LOW); //使能
}
void step(boolean dir, int steps) //步进函数,第一个变量是方向,第二个变量是步数即转的角度
{
digitalWrite(MOTOR1_DIR, dir);
delay(5);
for (int i = 0; i < steps; i++) {
digitalWrite(MOTOR1_STEP, HIGH);
delayMicroseconds(200);
digitalWrite(MOTOR1_STEP, LOW);
delayMicroseconds(200);
}
}
void loop() {
step(1, 1000); //正转
delay(500);
// step(0,1000); //反转
// delay(500);
}
应用购买历史图库视频 |