切换到宽版
  • 505阅读
  • 5回复

[C51]双路舵机简单控制 [复制链接]

上一主题 下一主题
离线zeze10000
 

发帖
2742
M币
10792
专家
31
粉丝
66
近日看到坛友在写舵机控制程序,本人也有两个小舵机,兴趣来了也写一个玩玩。

网上查了下资料,舵机由20ms宽度的方波控制,高电平的宽度决定舵机的旋转角度。大概的对应关系是1ms对应0度,1.5ms对应90度,2ms对应180度。

初步确定方案是使用游戏摇杆作为控制输入,两个方向分别控制两个舵机。

先是硬件准备



单片机是stc12c2052ad
双轴摇杆,两个便宜的舵机

控制思路很简单,先由单片机通过ADC采集摇杆输入信号。
输入数值经过简单换算后控制单片机产生PWM控制舵机。
由于这款单片机的PWM精度只有256级,而且舵机响应范围很小,所以控制的精度并不理想,不过对于测试舵机还是够用的。

首先要先产生20ms宽度的脉冲波,也就是脉冲频率为50HZ。
这里就需要使用定时器0作为PWM的时钟源。
简单换算大概需要87us产生一次时钟信号。

先用示波器采集pwm信号

测量脉冲宽度大概为20ms无误

调节脉冲占空比,使舵机分别处于0°,90°,180°位置


0°位置波形


90°位置波形


180°位置波形

高电平宽度越宽,舵机角度越大。
由于舵机质量较差,得出的脉冲宽度不是很标准,将就看吧。

贴上程序,写的比较潦草
最后再附上程序文件和测试视频。
视频不会弄,直接上传百度网盘了,供有需要的人使用。

链接:[url]https://pan.baidu.com/s/14aPoJ5tNP7FIk16A5hQhPg
提取码:9llk

THE END!
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共6条打赏M币+111专家+2
数码家园 M币 +9 謝謝分享 06-12
jsycwnw 专家 +1 優秀文章!可惜学不会了 06-11
jsycwnw M币 +13 優秀文章!可惜学不会了 06-11
南湘小隐 M币 +13 優秀文章 06-11
發騷友 专家 +1 以資鼓勵 06-11
發騷友 M币 +76 以資鼓勵 06-11
离线五行八卦

发帖
803
M币
3807
专家
1
粉丝
12
只看该作者 1楼 发表于: 06-11
业余选手表示看不懂
离线chw321401

发帖
759
M币
463
专家
3
粉丝
59
只看该作者 2楼 发表于: 06-11
好奇过来学习  谢谢分享
离线zzj8021

发帖
2035
M币
2635
专家
5
粉丝
45
只看该作者 3楼 发表于: 06-11
很想玩,可是文化低学不会,好像可以做个机械手玩

内容来自Android手机客户端

离线jsycwnw

发帖
9749
M币
17513
专家
352
粉丝
268
只看该作者 4楼 发表于: 06-11
優秀文章!可惜学不会了
离线彭鹏
发帖
248
M币
17
专家
3
粉丝
8
只看该作者 5楼 发表于: 06-12
最单纯的舵机控制前来围观
快速回复
限80 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个