(图片来源网络,侵删)
1.硬件原理我们通过按键控制舵机的旋转,每按一次按键,舵机旋转的度数增加20度,旋转的同时,点亮LED,用于指示舵机的工作状态。舵机的基础知识和工作原理上篇文章已介绍过了。这里直接介绍整个控制系统硬件原理。使用的舵机型号是SG90,能够转动的角度是0-180度,驱动电压是3.5-6V,这个舵机的齿轮是塑料的,工作扭矩是1.6KG/CM。舵机舵机有3根线,电源线连接到Arduino板子的5V接口,信号线连接到IO9,按键接口连接到IO7,并接10k电阻上拉,上拉电阻不能省,否则按键接口电平不稳定,导致舵机不受控制,LED连接IO13。舵机的驱动用PWM信号,是一个周期为20ms,脉宽范围在0.5-2.5ms之间的信号,硬件原理图如下图。原理图2.程序解读算法描述:1. PWM脉冲函数是通过控制20ms周期内高电平的时间和低电平的时间实现。我们只需要改变角度,通过角度转化为脉宽值的公式,得出高电平脉宽时间,低电平脉宽时间=20ms-高电平脉宽时间。整个脉冲产生我们可以用一个函数模拟实现。脉冲电平2. 检测按键的算法,按键需要消除抖动,因为一般按键按下,一瞬间,因为抖动的原因,Arduino管脚可能检测到多次按下。所以要消除抖动,用delay函数延时10ms左右后再次检测按键,就可以消抖了。3. 主程序里面应该不断扫描按键是否按下,若有按键按下则开始用num自加1,计数完成后马上用flag=1的命令舵机开始转动与num值对应的角度数,这里设num每增加1则旋转20度。舵机旋转完毕后,flag命令需要清0,否则舵机会继续转动。代码解读:详细代码解读请看注释。3.实物效果实物连接图如下图,按程序定义的管脚连接到Arduino.实物连接图逻辑分析仪采集到的舵机控制管脚的信号,是一个周期约为20ms的脉冲。脉冲抓取实验效果图,可以看到,每按下一次按键,舵机多旋转20度。欢迎点赞和转发,关注头条号:奔跑的晶体管 可以学到更多的电子知识哦。实验效果图朋友们看懂了吗,欢迎留言参与讨论。想要源代码的朋友请转发,关注后私信“舵机” 获取下载链接
0 评论