如何在中断内使用步进电机
各位朋友帮帮忙,我想通过中断来控制步进电机,但中断内无法使用,怎么办?就如以下格式:void setup()
{
attachInterrupt(3,blink,LOW);
]
void loop()
{
直流电机;
]
void blink()
{
步进电机;
] blink()里修改一个flag的全局变量,然后在loop里判断这个全局变量来决定驱动步进电机还是直流电机 非常感谢,我正在试试,谢谢。 fuwen0202 发表于 2016-11-9 00:49
blink()里修改一个flag的全局变量,然后在loop里判断这个全局变量来决定驱动步进电机还是直流电机
你好,请问下,有没有可能,利用全局变量来控制运行中的电机停止下来,附上我一段程序,用于控制LED可以,控制电机不行,必须的motor1()运行完,void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume(); //重新接收红外
}
if(results.value==0xFFA25D)
{
motorA();
}
void motorA()
{
if(flag==0)//标志,初始为0
{
flag=1;
motorA1();
}else
{
digitalWrite(jdq1,LOW);//继电器控制电机断电
flag=0;
}
}
void motorA1()
{
digitalWrite(jdq1,HIGH);//继电器控制电机通电
motor1();
digitalWrite(jdq1,LOW);//继电器控制电机断电
}
void motor1() //利用方波控制电机速度
{
for(double i=0;i<400;i+=0.1)
{
digitalWrite(motorPin1, HIGH);
delay(1);
digitalWrite(motorPin1, LOW);
delay(1);
}
} 为什么把flag定义放在blink里面,干嘛不放在setup函数的上面去,同时既然能够驱动LED,电机的电压是否足够也需要考虑。
页:
[1]