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

}

我们画出波形图

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

数字舵机c语言编程,舵机入门相关推荐

  1. 怎么运行c语言程序,如何使用C语言进行编程操作,教程在这里,C语言编程快速入门...

    原标题:如何使用C语言进行编程操作,教程在这里,C语言编程快速入门 C语言编程初级学习 编程语言有很多种,我们今天就介绍一种很瘦大家喜欢的C语言.该语言在大学中也是一门较为重要的学科,更是计算机学科里 ...

  2. 成都c语言程序设计,成都c语言编程学习入门

    导语概要 成都c语言编程学习入门 ?小编推荐成都童程童美,成都童程童美是知名品牌,名师执教.通俗易懂.深受广大学员所欢迎.下面是小编整理的 成都c语言编程学习入门的一些资料,仅供参考. 学少儿编程的费 ...

  3. 基于DSP的数字振荡器C语言编程,基于DSP的数字振荡器的设计与实现.pdf

    1 基于 DSP 的数字振荡器的设计与实现 基于 DSP 的数字振荡器的设计与实现 黄福莹 陈华 徐金隆 广西大学计算机与电子信息学院 南宁 530004 摘要 摘要 本文阐述了一种基于 DSP 芯片 ...

  4. c语言程序设计 猜数字,猜数字游戏c语言编程,c语言编程 编一个猜数字游戏

    c语言编程 编一个猜数字游戏 #include #include #include #include void main()/*主函数*/ { int a,b,times=0,i,j,guess=0, ...

  5. c语言从入门到精通 当当,51单片机C语言编程从入门到精通

    本书立足于单片机的各类型应用技术,采用大量实例和程序逐行解说的方式,详细介绍51单片机和C语言编程开发与应用技术. 内容特点: 1 立足于单片机工程应用:由浅入深,结合丰富的开发实例,介绍51单片机C ...

  6. 牛客网C语言编程初学者入门训练135题

    文章目录 1.实践出真知 2.我是大V 3.有容乃大 4.小飞机 5.反向输出四位数 6.大小写转换 7.缩短二进制 8.十六进制转十进制 9.printf的返回值 10.成绩输入输出 11.学生基本 ...

  7. c语言编程从入门到精通+pdf下载,编程大讲坛 C语言核心开发技术从入门到精通 陈强 pdf扫描版...

    编程大讲坛 C语言核心开发技术从入门到精通由浅入深地讲解了c语言开发技术,以遵循科学合理的学习计划为主线,通过典型实例来讲解其具体使用.全书内容分为20课,其中第1-8课依次讲解了c语言概述.c语言算 ...

  8. Go语言编程从入门到精通,流程控制之switch、for、defer

    Go (或Golang )是Google 在2007 年开发的一种开源编程语言,出自Robert Griesemer .Rob Pike 和Ken Thompson 之手.2009 年11 月10 日 ...

  9. c语言基础循环程序设计,C语言编程新手入门基础——循环详解!

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  10. c语言经典编程案例猜数字,用c语言编程猜数字

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //NumberRiddle.c //这个程序还没有做完,用户输入检测部分没有做,不继续了.2009-12-22 //猜数字游戏 //游戏规则: //电脑 ...

最新文章

  1. Android之Apache接口
  2. 开发人员应该对IIS理论层的知识了解的多一些~第四讲 HttpModule中的几大事件
  3. 两种重要的图——Snapshot diagram UML diagram
  4. 【转】三分钟了解Fiori背后的设计理念
  5. mysql from unixtime_mysql 错误总结 和FROM_UNIXTIME用法
  6. multi mysql_mysqld_multi 的使用方法
  7. JVM虚拟机选项:Xms Xmx PermSize MaxPermSize区别
  8. Project FreeEIM 2.0:重现失落的飞鸽传书
  9. java mysql 配置_Java连接MySQL数据库详细分析
  10. 大数据学习笔记10:MR案例——词频统计
  11. java 蓝桥杯历届试题 回文数字(题解)
  12. 点击菜单选项,右侧主体区新增子界面(Tab)的实现
  13. 使用JWT来实现单点登录功能
  14. WinPhone 开发(2)-----应用程序栏ApplicationBar
  15. SpringCloud从入门到精通——微服务注册中心
  16. 【2021最新版】Java基础面试题总结(70道题含答案解析)
  17. VS2010 Express中文版ISO下载地址
  18. 奉子成婚,永远不可能成为潮流
  19. HTML项目立项,作为承建方,其项目立项的第一步工作是()。A.编制立项申请书B.项目论证C.项目 - 信管网...
  20. win7 修改html文件图标,如何更改文件图标,教您Win7如何更改图标

热门文章

  1. autocad ios 虚线_教大家AutoCAD2020怎么画虚线的方法
  2. mysql中single是什么意思_single是什么意思
  3. LabVIEW编程规范
  4. 项目使用mybatis-plus采用mysql/clickhouse多数据库配置,报错Invalid bound statement (not found)
  5. 进阶EXCEL:开发工具的组合框
  6. EXCEL表格将两列数据进行排列组合
  7. 链家网东莞二手房数据分析
  8. php中求解二元一次方程,PHP实现二元一次方程式的求解
  9. poi生成excel并让excel的列有筛选功能
  10. excel合并两列内容_【238期】EXCEL扩展思维,一题多解,玩转数据两列合并,你都会?...