51单片机-舵机入门

发布者:InspiredDreamer最新更新时间:2021-10-19 来源: eefocus关键字:51单片  机械控制 手机看文章 扫描二维码
随时随地手机看文章

1.舵机准备


舵机是单片机机械控制入门必学的模块,在一些机器人关节中也是采用舵机作为控制,学习并熟练掌握使用舵机是我们对单片机的进一步认识。


所以我们不能一直局限地使用开发板进行学习,而是扩展一些电子模块来辅助我们更加深入了解单片机。所以大家需要自行购买舵机。


小型的舵机与大型的舵机控制原理几乎大同小异,考虑到经济的合理使用,我们选择小型舵机作为入门学习和简单使用即可。


常见的小型舵机型号为“9g舵机”,外观大体如下

9.1.png

不过笔者觉得这种型号的舵机虽然便宜且大家都普遍使用,但是这种舵机远没有金属舵机好用,所以笔者还是建议大家选择购买与上图体型差不多但价格稍贵一点的金属舵机为好,本教程使用的舵机型号如下图所示

9.2.png

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 //详见第六章第8讲

#include    //详见第八章第11讲

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; 

}


我们画出波形图

9.21.png

断电之后我们把舵机桨扭到另一个角度位置,然后再上电,观察舵机桨的实验现象好好领悟这个小模块的工作原理。


关键字:51单片  机械控制 引用地址:51单片机-舵机入门

上一篇:51单片机-呼吸灯
下一篇:51单片机-舵机与按键

推荐阅读最新更新时间:2024-11-12 20:02

51单片机与PIC单片机和AVR单片机的性能对比分析
八位单片机由于内部构造简单,体积小,成本低廉,在一些较简单的控制器中应用很广。即便到了本世纪,在单片机应用中,仍占有相当的份额。由于八位单片机种类繁多,本文仅将常用的几种在性能上作一个简单的比较,供读者在使用时作参考。 1. 51系列 应用最广泛的八位单片机首推Intel的51系列,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势。世界有许多著名的芯片公司都购买了51芯片的核心专利技术,并在其基础上进行性能上的扩充,使得芯片得到进一步的完善,形成了一个庞大的体系,直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。有人推测,51芯片可能最终形成事实上的标准MCU芯片。 51系列优点之一是它从内部的硬件
[单片机]
<font color='red'>51</font><font color='red'>单片</font>机与PIC<font color='red'>单片</font>机和AVR<font color='red'>单片</font>机的性能对比分析
51单片机电机pid控制系统程序
51单片机电机pid控制系统程序 本程序来源网上,小编进行了简单修改,还未验证。 /************************* 应用背景:直流电机的额定功率12V,额定转速3000rpm,光码盘12孔, 晶振为12MHz,定时/计数器T0检测转速,用定时器T1进行定时, P1.0控制直流电机的正反转,用P1.1控制电机的转速. ************************/ #include reg52.h #include intrins.h #define uchar unsigned char uchar timcount,PWMH,SpeedSet,SpeedDet; uchar KP,KI,KD;
[单片机]
基于GSM模块Q2403A和8051单片机实现短消息收发系统的应用方案
基于GSM短消息的业务不需要建立拨号连接,只需把待发的消息加上目的地址发送至短消息中心,再由短消息中心转发到最终目标。GSM 短消息业务以其连接简单、费用低廉、覆盖范围广、实现方便等优点得到了广泛的应用。运用 GSM 短消息实现远程测控的可靠性较高、信号传播距离远、覆盖面积广,并且可以节省建网初期的巨额投资。 本文对基于GSM短消息收发系统的设计与实现作了具体描述,给出了系统的软硬件设计方案,对主要硬件,即GSM模块Q2403A 和8051单片机作了重点介绍。给出了系统的软件设计,包括PC与单片机通信部分和短消息收发部分。最后实现系统监控功能。 系统硬件实现 总体系统结构 该系统硬件主要由8051单片机扩展电路、Q2403
[单片机]
基于GSM模块Q2403A和80<font color='red'>51</font><font color='red'>单片</font>机实现短消息收发系统的应用方案
51单片串口通信波特率与定时器之间的对应关系
这次我所选的课程设计是单片机与电脑之间的通信,网上找了大半天,都没有找到对应的表,自己做了份,彼此共享下~
[单片机]
51单片机循环转移指令DJNZ简介
循环转移 指令 DJNZ Rn,rel DJNZ direct,rel 第一条指令在前面的例程中有详细的分析,这里就不多谈了。第二条指令,只是将Rn改成直接地址,其它一样,也不多说了,给一个例程。 DJNZ 10H,LOOP
[单片机]
基于51单片机的人体红外报警器程序设计
//51单片机简人体红外报警器设计,手动按键控制实现紧急报警、布防、撤防、关闭报警)// #include reg52.h #define uchar unsigned char #define uint unsigned int uchar Mode=1,Mode1=0; uchar t; sbit s1=P1^0; sbit s2=P1^2; sbit s3=P1^1; bit alarm=1,kai=1; sbit LR=P2^0;//红灯报警灯 sbit LY=P2^2;//布防灯 sbit LG=P2^1;//红外信号检测灯 sbit Feng=P1^3;//蜂鸣器报警 sbit HR=P0^
[单片机]
基于AT89S51单片机的定时报警器电路图
设计一个单片机控制的简易定时报警器。要求根据设定的初始值(1-59 秒)进行倒计时,当计时到0 时数码管闪烁“00”(以1Hz 闪烁),按键功能如下:   (1)设定键:在倒计时模式时,按下此键后停止倒计时,进入设置状态;如果已经处于设置状态则此键无效。 (2)增一键:在设置状态时,每按一次递增键,初始值的数字增1。 (3)递一键:在设置状态时,每按一次递减键,初始值的数字减1。 (4)确认键:在设置状态时,按下此键后,单片机按照新的初始值进行倒计时及显示倒计时的数字。如果已经处于计时状态则此键无效。 图 定时报警器电路原理图
[模拟电子]
基于AT89S<font color='red'>51</font><font color='red'>单片</font>机的定时报警器电路图
MCS-51单片机寻址方式有哪些?如何设置寻址方式?
什么是寻址方式? 答:指令给出参与运算的数据方式称为寻址方式。换句话说,寻址方式就是寻找确定参与操作的数的真正地址。 MCS-51单片机共有哪几种寻址方式? 答:在MCS-51系列单片机的指令系统中寻址方式共有7种,如表4-1所示。 表4-1 MCS-51系列单片机指令系统的寻址方式 序号 方式 使用的变量 寻址空间 1 立即寻址   程序存储器 2 直接寻址   内部 RAM 和特殊功能寄存器 3 寄存器寻址 R7-R0 、 A 、 B 、 C DPTR   4   寄存器 间接寻址 @R0 、 @R1 、
[单片机]

推荐帖子

制约国内汽车电子发展的因素
国内汽车电子这几天发展的很快,不过呢还是以独资和合资为主,在技术上也没有大的突破,个人来谈谈一些观点。第一个因素,我个人觉得是我国的整车制造厂对于汽车电子技术方面积累的基础薄弱,导致无法控制整个开发过程。我们以车身控制来说,整车厂有许多零部件厂商,因此它是技术集中的地方,从它的实际要求去给定每个部件的参数,实施对每个部件的考核,针对整车遇到的情况作出各种不同的控制策略来主导零部件商的设计一般来说,整车厂会给每个零部件厂商以下定义:所以对于国外的整车厂来说,一开始会定义产品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就更好了下载了,谢谢,
弦上的舞 综合技术交流
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved