写点什么

和 12 岁小同志搞创客开发:遥控舵机

发布于: 2 小时前
和12岁小同志搞创客开发:遥控舵机

机缘巧合在网上认识一位 12 岁小同志,从零开始系统辅导其创客开发思维和技巧。

​​​项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html


之前讲到了设计一款亮度可调节灯,在此基础上,实现旋转电位器控制舵机转动。

本项目使用的舵机是 180°微型舵机,该舵机采用高强度 ABS 透明外壳配以内部高精度尼龙齿轮组,加上精准的控制电路、高档轻量化空心杯电机使该微型舵机的重量只有 9 克,而输出力矩达到了惊人的 1.6kg*cm,可满足基本的项目应用。

1、舵机控制理论

控制舵机转动,本质上也是 PWM(脉冲宽度调制),通过一个固定的频率,给其不同的占空比来控制舵机不同的转角。

舵机的频率一般为频率为 50HZ,也就是一个 20ms 左右的时基脉冲,而脉冲的高电平部分一般为 0.5ms~2.5ms 范围,来控制舵机不同的转角,0.5ms~2.5ms 的 PWM 高电平部分对应控制 180 度舵机的 0~180 度。

以 180 度角度伺服为例,那么对应的控制关系如下所示:

0.5ms-------------0度 1.0ms------------45度 1.5ms------------90度 2.0ms-----------135度 2.5ms-----------180度
复制代码

下图演示占空比从 1ms 变化到 2ms 时,转角的变化:

2、舵机控制实践

设计一款亮度可调节灯中使用旋钮电位器 ADC 采样数值的范围是 0~1023 之间,但是舵机可接收的旋转角度是:0~180 度,故建立转换关系:

所以,旋转电位器 ADC 数值 X 180 = 舵机旋转度数 X 1023, 故,舵机旋转度数 = 旋转电位器 ADC 数值 X 180 / 1023

当旋转电位器 ADC 数值为 0 时,带入公式,舵机旋转度数为 0;当旋转电位器 ADC 数值为 1023 时,舵机旋转度数为 180。

遥控舵机程序设计如下所示:

在实际的开发过程中,发现如果直接使用旋转电位器 ADC 数值 X 180 / 1023,数值会超出变量定义的极限,所以将此步骤分为:旋转电位器 ADC 数值 X 18 / 1023,然后得到的结果再放大 10 倍

效果如下所示:

快来试试吧~

发布于: 2 小时前阅读数: 8
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

【公众号】美男子玩编程

评论

发布
暂无评论
和12岁小同志搞创客开发:遥控舵机