大家好,今天小编关注到一个比较有意思的话题,就是关于STM32延时delay不准的问题,于是小编就整理了2个相关介绍STM32延时delay不准的解答,让我们一起看看吧。
高速脉冲输出控制步进电机,怎样控制其旋转方向(正反转)?
假设你是用共阴极的接法接驱动器且步进电机处于全步每脉冲1.8度
int i,pin_read,flag=1;
pin_read=
analogRead
(5); //读取按钮的信号if(pin_read>200 &&flag==1){ //按钮收到信号
for(i=0;i<200;i++){
digitalWrite(
direction
,HIGH); //给方向引脚一个高电平,设置方向正转digitalWrite(led,HIGH); //给一个引脚高电平
delay(10);
digitalWrite(led,LOW); //给一个引脚低电平
delay(10);
} //向步进电机发送两百个脉冲,以一个脉冲1.8度大约360度
flag=0; //标志位置0表示正转完成
}
if(flag==0){ //反转收到正转完成信号
for( i=0;i<200;i++){
digitalWrite(
direction
,LOW); //给方向引脚一个高电平,设置方向反转digitalWrite(led,HIGH); //给一个引脚高电平
delay(10);
digitalWrite(led,LOW); //给一个引脚低电平
delay(10);
} //向步进电机发送两百个脉冲,以一个脉冲1.8度大约360度
flag=1; 反转完成置1
}
嘛这只是个简单的思路,没怎么用过arduino所以可能有哪些不规范的地方,如果真想玩步进电机控制和不想多花钱的话个人建议最好用stc15或者stm32 c8t6
附加句这个程序是基于你买了步进电机驱动器的情况;假设你买了l298n那种的h桥的驱动器得写上步进电机的拍数还得写上pwm,毕竟正常的h桥不会给你加恒流斩波
stm32蜂鸣器怎么设置延迟?
举例说明,你定义 一个IO连接蜂鸣器。比如,sbit fmq=P1^0; 再来个500US延时函数。 void beep() //所以会产生1KHZ频率声音 { fmq=0; delay500us(); fmq=1; delay500us(); }
到此,以上就是小编对于STM32延时delay不准的问题就介绍到这了,希望介绍关于STM32延时delay不准的2点解答对大家有用。