作者shadowjohn (某人睡醒就发文)
看板Electronics
标题Re: [问题] 步进马达的一点小问题
时间Mon Mar 30 00:58:03 2015
※ 引述《sanbis (方正无法达成,那麽有没H)》之铭言:
: ※ [本文转录自 Printer3D 看板 #1L5_kRsI ]
: 作者: sanbis (方正无法达成,那麽有没H) 看板: Printer3D
: 标题: [问题] 步进马达的一点小问题
: 时间: Sun Mar 29 21:18:16 2015
: 步进马达都是双向?
: 还是有分单向?
: 最近在测试步进马达驱动晶片 ULN 2003 ,
: 下面是测试的程式~
: 但是应该正向转後再反向转回原位,
: 结果却是不断正向转个不停?
: #include <Stepper.h>
: #define STEPS 200
: Stepper stepper(STEPS, 11, 10, 9, 8);
: void setup()
: {
: stepper.setSpeed(140);
: }
: void loop()
: {
: stepper.step(100);//正半圈
: delay(1000);
: stepper.step(-100);//反半圈
: delay(1000);
: }
我之前在用也觉得很怪,怎转都同向
int val;
Stepper stepperC(STEPS,8,9,10,11);
Stepper stepperU(STEPS,11,9,8,10);
int dir=1;
// 定义变量用来存储历史读数
int previous = 0;
//int val;
int laserpin=3;
//int moto=3;
void setup()
{
Serial.begin(9600);
pinMode(laserpin,OUTPUT);
stepperC.setSpeed(3600);
stepperU.setSpeed(3600);
}
後来乾脆设二种,就可以作到正反向了~_~
https://www.youtube.com/watch?v=L9x5Cu6YbEw
只是转起来觉得好像不是很准,角度不一样多
不知道哪边写错
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.110.45.216
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1427648287.A.DD7.html
1F:→ shadowjohn: 只好调整数字来让顺逆一样多吧 03/30 01:06
2F:推 kingstong: 步进马达你要看制造厂商和使用材料,步进马达的精度不一 04/21 02:40
3F:→ kingstong: 定准,应该说不一定是你要的结果,所以你要在程式手动调 04/21 02:42
4F:→ kingstong: 参数来符合你自己的需要. 04/21 02:43
程式码补完
#include <Stepper.h>
// 这里设置步进电机旋转一圈是多少步
#define STEPS 5
// attached to 设置步进电机的步数和引脚
int val;
Stepper stepperC(STEPS,8,9,10,11);
Stepper stepperU(STEPS,11,9,8,10);
int dir=1;
// 定义变量用来存储历史读数
int previous = 0;
//int val;
int laserpin=3;
//int moto=3;
void setup()
{
Serial.begin(9600);
pinMode(laserpin,OUTPUT);
stepperC.setSpeed(3600);
stepperU.setSpeed(3600);
}
void loop()
{
val=Serial.read();
if(val=='A')
{
Serial.write("ON");
digitalWrite(laserpin,HIGH);// 移动步数为当前读数减去历史读数
}
if(val=='B')
{
digitalWrite(laserpin,LOW);// 移动步数为当前读数减去历史读数
}
if(val=='C')
{
stepperC.step(100);// 移动步数为当前读数减去历史读数
}
if(val=='D')
{
stepperU.step(-100);// 移动步数为当前读数减去历史读数
}
//delay(1000);
}
※ 编辑: shadowjohn (140.134.48.249), 06/02/2015 15:15:29