1.舵机准备
舵机是单片机机械控制入门必学的模块,在一些机器人关节中也是采用舵机作为控制,学习并熟练掌握使用舵机是我们对单片机的进一步认识。
所以我们不能一直局限地使用开发板进行学习,而是扩展一些电子模块来辅助我们更加深入了解单片机。所以大家需要自行购买舵机。
小型的舵机与大型的舵机控制原理几乎大同小异,考虑到经济的合理使用,我们选择小型舵机作为入门学习和简单使用即可。
常见的小型舵机型号为“9g舵机”,外观大体如下
不过笔者觉得这种型号的舵机虽然便宜且大家都普遍使用,但是这种舵机远没有金属舵机好用,所以笔者还是建议大家选择购买与上图体型差不多但价格稍贵一点的金属舵机为好,本教程使用的舵机型号如下图所示
2.舵机控制原理
本教程使用的舵机为9g尺寸,型号为“MG90S”作为示例模块。
这种舵机的作用角度为0~180度,也就是舵机桨可以任意在某个角度卡死不动,由于供电原因我们使用蛮力是很难掰动舵机桨的,只有舵机掉电之后舵机桨才会任意地让我们扭动。
舵机有三根线,除了供电的两根电源线还有一根信号线,因为我们使用的是5V电压功率的舵机,所以其电源线可以直接接到单片机的+5V和GND上,信号线的话就接到单片机的一个IO端口上,这个IO端口通过输出PWM控制舵机桨的角度在任意位置上固定停留。
这个PWM的周期为20ms,高电平的时间在0.5ms~2.5ms之间可以控制舵机桨角度的停留位置。
0.5ms---------0度。
1.0ms---------45度。
1.5ms---------90度。
2.0ms---------135度。
2.5ms---------180度。
我们把舵机的电源线接好,然后信号线连接P1.7,把代码下载进去,舵机桨在上电之后就会旋转到一个固定角度的位置上停留在那不动,我们想扭动舵机桨是比较吃力的。
3.代码
#include #include #include sbit PWMOUT = P1^7; //舵机信号线引脚 void main() { LED_Init();//初始化LED硬件模块 EA = 1; //闭合总中断开关 TIM0_Init(100,9);//定时0.1ms,9是微调使定时精度更高 while(1); } void TIM0_IRQHandler() interrupt 1 { static u8 pwm=0; TH0 = T0RH; //重新加载重载值 TL0 = T0RL; pwm++; if(pwm>=200)pwm=0; //pwm在0~199之间间隔0.1ms变化,周期为20ms if(pwm<10)PWMOUT=1;//高电平在周期为20ms的PWM中持续的时间为1ms,低电平持续的时间就是19ms,舵机桨在45度处的位置停留不动 else PWMOUT=0; } 我们画出波形图 断电之后我们把舵机桨扭到另一个角度位置,然后再上电,观察舵机桨的实验现象好好领悟这个小模块的工作原理。
上一篇:51单片机-呼吸灯
下一篇:51单片机-舵机与按键
推荐阅读最新更新时间:2024-11-12 20:02
推荐帖子
- 制约国内汽车电子发展的因素
- 国内汽车电子这几天发展的很快,不过呢还是以独资和合资为主,在技术上也没有大的突破,个人来谈谈一些观点。第一个因素,我个人觉得是我国的整车制造厂对于汽车电子技术方面积累的基础薄弱,导致无法控制整个开发过程。我们以车身控制来说,整车厂有许多零部件厂商,因此它是技术集中的地方,从它的实际要求去给定每个部件的参数,实施对每个部件的考核,针对整车遇到的情况作出各种不同的控制策略来主导零部件商的设计一般来说,整车厂会给每个零部件厂商以下定义:所以对于国外的整车厂来说,一开始会定义产品SPEC,工程S
- 心仪 汽车电子
- HHB-onnxruntime安装问题
- 按照官方操作指南安装HHB-onnxruntime的时候,报下面的错误。网上搜了一些处理方法,都没有效果。后来以为是系统玩儿崩了,重新烧写了系统,到这个位置还是报同样的错误,有没有遇到相似问题的?怎么处理的呀?HHB-onnxruntime安装问题
- leekuip 玄铁RISC-V活动专区
- 自制arm-linux-gcc编译工具链
- 2月1号开始放假,在家也是闲的慌,又不能静下来学习,就想着把arm-linux-gcc这个工具链搞定,边带着孩子,边开始折腾,搞了3天弄明白了是怎么回事,就开始了真正的制作过程,先上图,看成果,当然配置过程还是很复杂的,网上也有教程,我就不转发了,但是我没有找到一个能彻底编译完成的,我把我制作的分享给大家,就不把具体步骤一一道来了,反正很多人也只是注重会使用,就能进一步学习了,只有我这样闲人才会去折腾这些细小、微不足道的基础工作。需要用到的文件也分享给大家。这个是三星210芯片的
- star_66666 Linux与安卓
- AM3517 MCBSP2 通讯速率不对
- MCBSP2外接ALC5621codecIC,在播放音乐时,不能发声,输出仅变成了高电平。MCBSP2_CLKX1.536M,MCBSP2_FSX48K,以下是相关寄存器配置。MCBSPLP_PCR_REG配置成下降沿发送数据,CLKXPTransmitClockPolarityRW0x00x0:TransmitdatadrivenonrisingedgeofCLKX0x1:Transmitdatadrivenonfallingedge
- 江南 DSP 与 ARM 处理器
- 波形发生器
- 帮忙啊要求:利用51单片机和dac0832设计方波、锯齿波、三角波、梯形波、且波形极性周期可变求代码原理图谢谢波形发生器?/////////??????????????????楼主什么意思?要正确、完整的描述你的问题。
- matter 单片机
- RK3288资料
- RK3288参考原理图资料RK3288资料挺好的资料,有PCB就更好了下载了,谢谢,
- 弦上的舞 综合技术交流
设计资源 培训 开发板 精华推荐
- 适用于 SAM3S 运动探测器相机的无源红外参考设计 (PIRRD)
- NV890100PDR2GEVB:固定频率单片降压开关稳压器评估板
- 使用 Microchip Technology 的 TC33163 的参考设计
- L79L05AB 负压稳压器的典型应用
- LM2596ADJ
- LTC3588EDD-1 电场能量收集器的典型应用电路
- NCL30160GEVB:1 A LED 驱动器降压评估板
- L7818C 具有短路保护的高输出电流的典型应用
- AD8037-EBZ,具有 AD8037 宽带宽、低失真钳位放大器的评估板
- EV-ADF411xSD1Z,用于评估 ADF411x 整数 N 和分数 N PLL 频率合成器的评估板