找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

stc15单片机控制舵机 如何做到分辨率1度

查看数: 7502 | 评论数: 14 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-4-7 14:46

正文摘要:

要求舵机运行分辨率为1度(意思应该是舵机转动180次为180度吧),跟踪精度±2度 这是我部分控制双舵机的程序: void Timer0() interrupt 1 {         TL0=0xd2;    &n ...

回复

ID:621707 发表于 2020-4-15 15:20
之一知足 发表于 2020-4-14 19:27
舵机频率固定的50HZ
中断服务函数//50us
{

将400的值改为1800才能达到分辨率1度,但是这款晶振为11.0592mhz的单片机的定时器不能设置为20ms中断1800次,所以感觉无解
ID:342451 发表于 2020-4-14 19:27
舵机频率固定的50HZ
中断服务函数//50us
{
    t++;
    if(t<pwm)io=1;
    if(t>=pwm)io=0;
    if(t==400)t=0;//400*50us=20ms 50hz
}
单片机能力所限吧,400这个值越大,细分度越高,控制精度越高
ID:342451 发表于 2020-4-14 19:21
舵机50HZ的频率下,将PWM分的更细一点,应该是可以满足要求的
中断服务函数//50us
{

}
ID:621707 发表于 2020-4-14 16:19
疯子本人 发表于 2020-4-14 09:54
TIM1_PWM_Init(9999,143);//不分频。PWM频率=72000/(899+1)=80Khz
        TIM_SetCompare2(TIM3,749+ ...

感谢你的回答,stm32我正准备学习中,但现在我做任务的要求是用晶振频率为11.0592mhz的STC15F2K60S2单片机编写,我再想想其他办法
ID:405033 发表于 2020-4-14 09:54
1948594382 发表于 2020-4-12 14:17
为什么要纠结于舵机啊,不行就换一个行的不就好了吗?问题是代码写不写得出来,我能写出分辨率为3.6的程 ...

        TIM1_PWM_Init(9999,143);//不分频。PWM频率=72000/(899+1)=80Khz
        TIM_SetCompare2(TIM3,749+mosss*5);//实现一度旋转
其实不是纠不纠结的问题,我只是想告诉你,有些人会嫌换舵机成本的问题(时间成本、精力成本的问题),所以不会优先考虑换舵机,而是考虑改程序;当然换舵机可以实现也是一种可行的方法,我当时用STM32写的舵机一度是可实现的,甚至是0.5°,所以我是说可实现的,但是你换舵机也是好方法。
无效楼层,该帖已经被删除
ID:621707 发表于 2020-4-12 14:17
疯子本人 发表于 2020-4-10 16:21
RDS3115双轴数字舵机,是一款为机器人专门设计的数字舵机,扭矩15kg@6V(实际扭力),运行噪音低、平稳且 ...

为什么要纠结于舵机啊,不行就换一个行的不就好了吗?问题是代码写不写得出来,我能写出分辨率为3.6的程序,看网上写的程序控制分辨率都比我的大
ID:405033 发表于 2020-4-10 16:21
1948594382 发表于 2020-4-10 10:22
真的写的出来吗,我改用小数控制也失败了,0度到180度对应的是舵机脉宽范围:500-2500us,平均分180份后 ...


RDS3115双轴数字舵机,是一款为机器人专门设计的数字舵机,扭矩15kg@6V(实际扭力17kg@7.2v),运行噪音低、平稳且线性度高,可控角度范围180度,断电可360度旋转,特别适合机器人的各关节活动。 使用说明: 该款数字舵机内部伺服控制板采用单片机MCU控制,这是相对于传统的模拟舵机的主要区别,但是控制方式是相同的,都是PWM脉宽型调节角度,周期20ms,占空比0.5ms~2.5ms的脉宽电平对应舵机0度~180度角度范围,且成线性关系。 与模拟舵机的最大区别是带位置锁定功能,给一次PWM脉宽,舵机输出角度可锁定,直到下次给不同的角度脉宽或者断电才可以改变角度(模拟舵机则不具有该功能, 模拟舵机要锁定位置需要不停的提供pwm信号). 另外控制精度高、线性度好,与控制协议严格一致,输出角度准确且响应速度快是数字舵机品质好的重要原因。通常舵机控制器采用500~2500数值对应舵机控制输出角度的占空比0.5ms~2.5ms的范围,这样该款数字舵机的控制精度理论值可达到0.09度,而实际由于舵机齿轮组间的间隙存在,该款舵机的最小控制精度能达到0.9度以下,相对于上位机软件滑竿控制量的最小调节单元值为10,舵机才有明显的转动反应。 舵机严禁过载, 堵转会有烧舵机电路板跟马达的的风险! 舵机RDS3115(含金属支架齿轮) 扭力15KG 转角270度 通用规范 温度范围:- 20°C~60° 工作温度范围:- 10°C~50° 工作电压:6V ~ 8.4V 。
这个是我在网上找的管与你这个型号的舵机的描述,这样来看的话,他是可以实现的。
ID:621707 发表于 2020-4-10 10:22
疯子本人 发表于 2020-4-8 09:51
你去找店家要资料呀,而且我看了下这舵机是数字舵机,精度可以达到0.9°,所以实现一次一度应该没问题的

真的写的出来吗,我改用小数控制也失败了,0度到180度对应的是舵机脉宽范围:500-2500us,平均分180份后是1.11111111。。。。
ID:405033 发表于 2020-4-8 09:51
1948594382 发表于 2020-4-7 19:34
型号RDS3115mg,就是在网上也找不到资料。。。

你去找店家要资料呀,而且我看了下这舵机是数字舵机,精度可以达到0.9°,所以实现一次一度应该没问题的
ID:275826 发表于 2020-4-8 07:54
RDS3115双轴数字舵机,是一款为机器人专门设计的数字舵机,扭矩15kg@6V(实际扭力17kg@7.2v),运行噪音低、平稳且线性度高,可控角度范围180度,断电可360度旋转,特别适合机器人的各关节活动。 使用说明: 该款数字舵机内部伺服控制板采用单片机MCU控制,这是相对于传统的模拟舵机的主要区别,但是控制方式是相同的,都是PWM脉宽型调节角度,周期20ms,占空比0.5ms~2.5ms的脉宽电平对应舵机0度~180度角度范围,且成线性关系。 与模拟舵机的最大区别是带位置锁定功能,给一次PWM脉宽,舵机输出角度可锁定,直到下次给不同的角度脉宽或者断电才可以改变角度(模拟舵机则不具有该功能, 模拟舵机要锁定位置需要不停的提供pwm信号). 另外控制精度高、线性度好,与控制协议严格一致,输出角度准确且响应速度快是数字舵机品质好的重要原因。通常舵机控制器采用500~2500数值对应舵机控制输出角度的占空比0.5ms~2.5ms的范围,这样该款数字舵机的控制精度理论值可达到0.09度,而实际由于舵机齿轮组间的间隙存在,该款舵机的最小控制精度能达到0.9度以下,相对于上位机软件滑竿控制量的最小调节单元值为10,舵机才有明显的转动反应。 舵机严禁过载, 堵转会有烧舵机电路板跟马达的的风险! 舵机RDS3115(含金属支架齿轮) 扭力15KG 转角270度 通用规范 温度范围:- 20°C~60° 工作温度范围:- 10°C~50° 工作电压:6V ~ 8.4V
ID:622351 发表于 2020-4-7 22:30
https://forum.arduino.cc/index.php?topic=315211.0

一份arduino的资料,仅供参考
ID:621707 发表于 2020-4-7 19:34
疯子本人 发表于 2020-4-7 16:53
首先你得知道你的舵机的分辨率。。。有些舵机例如SG90是不能精确到1°的,只能到一点多°,你可以去看看, ...

型号RDS3115mg,就是在网上也找不到资料。。。
ID:405033 发表于 2020-4-7 16:53
首先你得知道你的舵机的分辨率。。。有些舵机例如SG90是不能精确到1°的,只能到一点多°,你可以去看看,串口舵机比PWM舵机一般精确度高,有一些4096的pwm舵机例外,所以你首先得看看舵机能不能1°,再来考虑程序。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表