首页 » 互联网 » 单片机C措辞编程实现对舵机控制_舵机_按键

单片机C措辞编程实现对舵机控制_舵机_按键

admin 2024-12-25 04:55:44 0

扫一扫用手机浏览

文章目录 [+]

51单片机开拓板

MG996R数字舵机

单片机C措辞编程实现对舵机控制_舵机_按键 单片机C措辞编程实现对舵机控制_舵机_按键 互联网

设计思路

MG996R是通过PWM脉冲宽度与占空比实现对旋转角度进行掌握的。
脉冲周期为20ms,输出高电平时间与迁徙改变角度之间关系描述如下:

单片机C措辞编程实现对舵机控制_舵机_按键 单片机C措辞编程实现对舵机控制_舵机_按键 互联网
(图片来自网络侵删)

占空比与舵机旋转角度关系图

在明确占空比与舵机输出轴转角之间关系之后,我们就可以以20ms为周期进行旗子暗记输出,通过掌握每个周期输出高电平与低电平时间,实现舵机按照45度间隔进行旋转,实际小车前轮转向一样平常会在±45度范围内,因此只须要掌握转向角在±45度范围即可实现小车转向。

周期20ms紧张借助51单片机定时器1设置在0.5ms产生中断,在中断处理函数中设置高低电平。
同时通过变量记录中断实行次数,当次数达到40时即为一个周期20ms。

本例测试利用51单片机开拓板,按键K2与K3掌握舵机角度增加与减少,个中K2对应P3.4引脚,K3对应P3.5引脚。

掌握程序编写

本例编程利用keil software工具编写C措辞程序,输出hex格式结果,写入单片机。
个中keil software工具如下:

keil software软件界面

1、头文件

本例所需头文件紧张为reg52.h用于供应52单片机操作干系方法、属性等。
头文件格式如下:

#include<reg52.h>

2、变量定义

紧张定义变量包括按键变量、角度变量、周期计时变量等,变量定义如下:

sbit pwm = P1^0;//用于输入掌握旗子暗记sbit flag= P1^1;//按键相应标识sbit ka = P3^4; //角度增加按键sbit kd= P3^5; //角度减少按键uint deg;//角度标识uint count=0;//20ms周期计数

3、定时器初始化函数

定时器初始化紧张完成定时器初始计数值的设置,担保0.5ms产生中断。
同时也须要完成定时器的开启。
实当代码如下:

void time0_init(){ TMOD=0x01;TH0=0xfe;TL0=0x33;EA=1;ET0=1;TR0=1;}

4、中断函数

中断函数紧张用于处理0.5ms中断时干系操作,紧张指高低电平输出。
实当代码如下:

void time0() interrupt 1{ TH0=0xfe;TL0=0x33;if(count<deg)pwm=1;elsepwm=0;count++;if(count==40)count=0;}

5、按键处理函数

按键处理紧张处理开拓板中K2\K3按键,实现点击按键舵机角度增减掌握。
代码如下:

void keyScan(){if(ka==0)//按键K2{flag=0;delay(30);flag=1;if(ka==0){ deg++;count=0;if(deg==6)deg=5;while(ka==0);}}if(kd==0)//按键K3{flag=0; delay(30);flag=1;if(kd==0){deg--;count=0;if(deg<0)deg=0;while(kd==0);}}}

6、主函数

主函数紧张设置初始变量值及启动计时器、捕捉按键操作等。
实当代码如下:

void main(){flag=1; P1 = 0xff;deg=3;count=0;time0_init();while(1){keyScan();}}程序烧录

编写好舵机掌握程序之后,实行程序天生hex文件,利用单片机烧录软件将其写入单片机中。
烧录软件如下:

烧录软件

完成烧录之后就可以利用单片机K2与K3按键掌握舵机迁徙改变,后期在小车整体开拓中单片机可通过ESP8266 WIFI模块获取做事器端指令,自动掌握舵机迁徙改变。
测试效果如下所示:

视频加载中...

本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。
如果您对以上方面有兴趣或代码缺点、建议与见地,可在评论区回答。
更多智能小车编程干系后期文章将持续发布,欢迎大家关注、评论与阅读!
干系文章链接如下:

如何编程实现电脑与智能小车通信

标签:

相关文章

B760IT,引领未来智能科技的创新引擎

随着科技的飞速发展,我国在智能科技领域取得了举世瞩目的成就。在这其中,B760IT作为一款具有划时代意义的智能产品,无疑成为了引领...

互联网 2024-12-28 阅读0 评论0

CSS3凸起,设计与美学的完美融合

随着互联网技术的飞速发展,网页设计逐渐成为一门融合美学与技术的艺术。在众多设计元素中,CSS3凸起效果以其独特的视觉效果和丰富的表...

互联网 2024-12-28 阅读0 评论0

CSS3缩放,介绍网页设计中的视觉魔法

随着互联网技术的飞速发展,网页设计越来越注重用户体验。在众多前端技术中,CSS3缩放功能无疑为设计师们提供了强大的视觉表现力。本文...

互联网 2024-12-28 阅读0 评论0

CSS3边线之美,探索视觉效果的无限可能

随着互联网技术的飞速发展,网页设计越来越注重视觉效果。CSS3边线作为一种重要的视觉元素,不仅能够丰富页面布局,还能提升用户体验。...

互联网 2024-12-28 阅读0 评论0