历史上的今天
今天是:2024年08月25日(星期日)
2021年08月25日 | 51单片机-舵机入门
2021-08-25 来源:eefocus
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单片机-舵机与按键
史海拾趣
|
小弟最近在搞一个无线传输的论文,就是用GPRS模块实现无线数据传输。但是不清楚如何操纵GPRS模块才能把数据发送到固定的IP地址。我现在知道的有如下知识:要是实现GPRS模块与Ethernet链接,需要先进行ppp拨号,但是拨号之后就不清楚怎么才把数据发 ...… 查看全部问答> |
|
最近打算在WINCE下开发一个天气预报软件, 资源就用http://www.webxml.com.cn所提供的提前预报资料..我上该网看了下, 那里有教如何使用函数来查询天气情况并且获得返回的字符数组.. 看了看实例代码, 那是VB.NET写的, 就其中一句 Imports cn.com.we ...… 查看全部问答> |
|
在skyeye上面启动uClinux的时候报段错误 [root@localhost uClinux-dist]# skyeye -e linux-2.4.x/linux arch: arm cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0 mach info: name at91, mach_init addr 0x8071ad4 can\'t find device mod ...… 查看全部问答> |
|
linux内核完全剖析 基于0.12内核 赵炯 的 200901的 txt doc pdf 的下载版本地址 谁有就给个链接吧 谢谢了哈 嘿嘿… 查看全部问答> |
|
WinCE下的Display驱动直接由GWES模块管理,它会直接被GWES模块管理和调用。Display驱动实际上也是分层的,其中包括GPE库,该库处理一些默认的绘图,相当于驱动的MDD层。用户只需要开发和硬件相关的PDD层驱动就可以了… 查看全部问答> |




