用2560+A4988+两相步进电机,写了个测试程序,但电机总是再抖动
本帖最后由 caihongxiaozu 于 2014-7-15 10:46 编辑用2560+A4988+两相步进电机,写了个测试程序,但电机总是再抖动,稍后上代码,数字引脚D3接微动开关(常闭合,分别接D3脚和GUN),代码如下:
int Pin_IN = 3;
int Pin_STEP = A0;
int Pin_DIR = A1;
void setup()
{
pinMode(Pin_IN, INPUT);
pinMode(Pin_STEP, OUTPUT);
pinMode(Pin_DIR, OUTPUT);
}
void loop()
{
digitalWrite(Pin_DIR, true);
int n = digitalRead(Pin_IN);
if(n == HIGH)
{
digitalWrite(Pin_STEP, HIGH);
delayMicroseconds(700);
digitalWrite(Pin_STEP, LOW);
delayMicroseconds(700);
}
} 只有if(n == HIGH)的动作啊……要是下一步是if(n == LOW)呢?程序里面就没有任何动作啊……这样子好像不严密哦…… if(n == HIGH)
{
digitalWrite(Pin_STEP, HIGH);
delayMicroseconds(700);
digitalWrite(Pin_STEP, LOW);
delayMicroseconds(700);
}
else
{
digitalWrite(Pin_STEP, LOW);
} 试试将电机其中一相的两条电线对掉接驳。 我是按照A4988说明文档来接线的,以下代码可以使电机正常运转
int Pin_STEP = A0;
int Pin_DIR = A1;
void setup()
{
pinMode(Pin_STEP, OUTPUT);
pinMode(Pin_DIR, OUTPUT);
}
void loop()
{
digitalWrite(Pin_DIR, true);
digitalWrite(Pin_STEP, HIGH);
delayMicroseconds(700);
digitalWrite(Pin_STEP, LOW);
delayMicroseconds(700);
}
上述代码去掉了数字引脚 3脚的判断操作,电机运转正常,但按之前的写入,电机也会转动,但就是抖的严重,嘚瑟的厉害 哈...... caihongxiaozu 发表于 2014-7-15 14:17 static/image/common/back.gif
我是按照A4988说明文档来接线的,以下代码可以使电机正常运转
你的电机是多少V的 官方介绍:
功能特色:
1、适合驱动8V~35V 2A以下的步进电机; 请问为什么接的模拟口 我也遇到了这个问题
页:
[1]