编程基础问题
我现在用Arduino来控制步进电机 ,但是怎么跳出loop循环啊 貌似不能跳出loop吧 .....为什么 要跳出LOOP啊:funk: 是这样的哦 我用这个板子控制一个步进电机驱动器型号是2MD320,我给输出口脉冲但是这个loop一直循环也不知道给了多少个脉冲,本来这个步进电机是1600个脉冲转一转但是由于loop一直在循环脉冲给了多少也不知道导致步进电机一直转也不知道转到什么位置了。 在内层再添加一层循环,比如while(1)然后就可以跳出了,明白不? 以下是我学42步进电机时的例子,你可以参考。用的是4988驱动。效果是正转一圈暂停一下,再反转一圈暂停一下。不停重复。
int x;
void setup()
{
pinMode(6,OUTPUT); // Enable: EN可以使用单片机端口控制,也可以直接连接GND使能
pinMode(5,OUTPUT); // steps:脉冲个数
pinMode(4,OUTPUT); // dir:为方向控制
digitalWrite(6,LOW); // Set Enable low
}
void loop()
{
digitalWrite(4,HIGH); // Set Dir high
for(x = 0; x < 200; x++) // Loop 200 times
{
digitalWrite(5,HIGH); // Output high
delayMicroseconds(800); // Wait 1/2 a ms
digitalWrite(5,LOW); // Output low
delayMicroseconds(800); // Wait 1/2 a ms
}
delay(1000); // pause one second
digitalWrite(4,LOW); // Set Dir low
for(x = 0; x < 200; x++) // Loop 2000 times
{
digitalWrite(5,HIGH); // Output high
delayMicroseconds(800); // Wait 1/2 a ms
digitalWrite(5,LOW); // Output low
delayMicroseconds(800); // Wait 1/2 a ms
}
delay(1000); // pause one second
}
vague1945 发表于 2016-12-26 23:03
在内层再添加一层循环,比如while(1)然后就可以跳出了,明白不?
哦哦,就是一直让程序在这个循环里面被,死循环。 leisd 发表于 2016-12-27 08:30
以下是我学42步进电机时的例子,你可以参考。
用的是4988驱动。效果是正转一圈暂停一下,再反转一圈暂停一 ...
这个程序是不是一直在正转---停止1秒----反转----停止1秒啊。我用的是2MD320驱动器驱动的步进电机声音有点大,不知道您知道什么方法让步进电机工作时候声音小一点么 加润滑油,还有底座要瓷实,哈哈。 可惜我的是直线电机里面的步进电机啊 一直郁闷为何操控步进 电机不用tone函数 jj王立捷 发表于 2016-12-27 21:44
这个程序是不是一直在正转---停止1秒----反转----停止1秒啊。我用的是2MD320驱动器驱动的步进电机声音有 ...
可能是电机不同吧,我没用过别的电机。
你可以改一改“delayMicroseconds(800); // Wait 1/2 a ms"中的数值,太大或是太小也会出现抖动。
我也是菜鸟,帮不了多少。
希望你在最后解决好了后,能在本贴中总结。让我们大家也学习一下。
好的谢谢你的解答,我也是小白一个 以后相互学习共同进步吧 tone是干什么的啊 呵呵不知道哎
页:
[1]