liangquan 发表于 2015-3-3 15:59:39

Arduino控制步进电机,怎么只向一个方向转?

本帖最后由 liangquan 于 2015-3-3 16:14 编辑

#include<Stepper.h>

// 参考文件
/*
        28BYJ-48.pdf

        该参数根据电机每一转的步数来修改
*/
const int stepsPerRevolution = 100;

// 初始化步进电机要使用的Arduino的引脚编号
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup()
{
        // 设置转速,单位r/min
        myStepper.setSpeed(60);

        // 初始化串口
        Serial.begin(9600);
}

void loop()
{
        // 顺时针一次旋转
        Serial.println("clockwise");
        myStepper.step(stepsPerRevolution);
        delay(500);

        // 逆时针一次旋转
        Serial.println("counterclockwise");
        myStepper.step(-stepsPerRevolution);
        delay(500);
}

电路图


但是电机只顺时针时向一个方向旋转,逆时针时也向同一个方向旋转,这可能是什么原因?

还有
const int stepsPerRevolution = 100;
这个100怎样定?



根据这个图中的哪个参数来定?

yusk123 发表于 2015-3-3 19:17:23

:D:D好好学习一下

suoma 发表于 2015-3-3 21:08:21

用电机驱动芯片没?

liangquan 发表于 2015-3-4 08:31:19

suoma 发表于 2015-3-3 21:08 static/image/common/back.gif
用电机驱动芯片没?

用了 ULN2003驱动板

失意的程序 发表于 2015-3-4 08:37:41

这个问题我遇到过,后来发现是驱动板的问题,同样的程序换成L298N就可以,原理都是差不多的

liangquan 发表于 2015-3-4 08:49:35

失意的程序 发表于 2015-3-4 08:37 static/image/common/back.gif
这个问题我遇到过,后来发现是驱动板的问题,同样的程序换成L298N就可以,原理都是差不多的

我解决了,这篇帖子的2楼,说的对,颠倒一下2、3线的顺序就成功了
http://www.geek-workshop.com/forum.php?mod=viewthread&tid=693&highlight=%D3%C3stepper%C0%E0%BF%E2%C7%FD%B6%AF%B2%BD%BD%F8%B5%E7%BB%FA%B5%C4%CE%CA%CC%E2
页: [1]
查看完整版本: Arduino控制步进电机,怎么只向一个方向转?