舵机驱动

舵机的驱动是以PWM信号的占空比来控制的,该PWM信号的周期位20ms,宽度在0.5ms——2.5ms之间,驱使舵机转动角在0——180度之间,一些常用角度对应脉宽如下表:

舵机转动角脉宽
00.5 ms
451 ms
901.5 ms
1352 ms
1802.5 ms

在实际应用过程中,肯定会用到其他的一些非特殊角,就是上面表中没有的角度,便会用到脉宽与角度转换公式:脉宽=转动角 / 90 + 0.5。在用单片机驱动舵机时,可以用定时器产生PWM信号,也可用延时函数来实现PWM信号,为了提高精度,定时器是不二选择。由于脉宽是一个小数并非整数,所以定时器初值就设定100us,也就是0.1ms。程序如下:

#include<reg52.h>sbit  servo=P3^0;
unsigned  char count=0,angle=0,pulse_width=0;void InitTimer0(void)
{TMOD = 0x01;//0.1ms  11.0592MHz晶振TH0 = 0xFF;TL0 = 0xA4;EA = 1;ET0 = 1;TR0 = 1;
}void IntTimer0()interrupt 1
{TH0 = 0xFF;TL0 = 0xA4;if(count<pulse_width)servo=1;elseservo=0;count++;      //0.1ms次数加1count=count%200;		//保持周期为20ms,即count加到200时,在模200就等于0,开始下一周期																							                      }void  main()
{angle=90;		//设置舵机转动90度,此值可在0——180之间变动pulse_width=(angle/90+0.5)*10;InitTimer0();while(1);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络流】【Dinic】【Next Array】Dinic模板

注意&#xff1a;有时加边不一定要加反向弧。 Next Array版。 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #include<queue>5 using namespace std;6 #define INF 21474836477 #define MAXN 200118 #define MAXM 6003019 int v[MAXM…

kotlin字符串数组_Kotlin程序读取,遍历,反向和排序字符串数组

kotlin字符串数组Given a string array, we have to read, traverse, reverse and sort its elements. 给定一个字符串数组&#xff0c;我们必须读取&#xff0c;遍历&#xff0c;反转和排序其元素。 Example: 例&#xff1a; Input:arr ["abc", "pqr",…

第 5-3 课:线程池——Executors + 面试题

线程池的创建分为两种方式:ThreadPoolExecutor 和 Executors,上一节学习了 ThreadPoolExecutor 的使用方式,本节重点来看 Executors 是如何创建线程池的。Executors 可以创建以下六种线程池。 FixedThreadPool(n):创建一个数量固定的线程池,超出的任务会在队列中等待空闲的…

液晶显示温度(DS18B20)

DS18B20测温范围-55——125度&#xff0c;在-10——85度之间精度为0.5度&#xff0c;其测温精度还是较高的&#xff0c;DS18B20常见封装为3个引脚&#xff0c;VCC(电源正)&#xff0c;DQ(信号线)&#xff0c;GND(电源负)&#xff0c;如图&#xff1a; DS18B20相关指令&#xf…

英语字根252

英语字根1,agdo,act 做&#xff0c;动2,agrifield 田地&#xff0c;农田(agri也做agro,agr)3,annyear年4,audihear听5,bellwar战争6,brevshort短7,ced,ceed,cessgo行走8,cepttake拿取9,cid,ciscut,kill切&#xff0c;杀10,circring环&#xff0c;圈11,claim,clamcry,shout喊叫1…

第 5-6 课:Java 并发包中的高级同步工具 + 面试题

Java 中的并发包指的是 java.util.concurrent(简称 JUC)包和其子包下的类和接口,它为 Java 的并发提供了各种功能支持,比如: 提供了线程池的创建类 ThreadPoolExecutor、Executors 等;提供了各种锁,如 Lock、ReentrantLock 等;提供了各种线程安全的数据结构,如 Concur…

python日历模块_Python日历模块| setfirstweekday()方法与示例

python日历模块Python calendar.setfirstweekday()方法 (Python calendar.setfirstweekday() Method) setfirstweekday() method is an inbuilt method of the calendar module in Python. It works on simple text calendars and sets the first weekday from when the week s…

51单片机汇编指令

注: Rn与Ri中n0 ~ 7,i0 ~ 1&#xff0c;另外Cy是进位位&#xff0c;同时也是状态位&#xff0c;标志位 数据传送类指令 内部数据传送指令 助记符作用寻址方式机器周期字节数MOV A,Rn将Rn的内容传送给A寄存器11MOV A,directdirect是一个地址单元&#xff0c;将该地址的内容传…

JavaScript:世界上误解最深的语言

JavaScript:The Worlds Most Misunderstood Programming LanguageJavaScript&#xff1a;世界上误解最深的语言Douglas Crockfordwww.crockford.com翻译&#xff1a;袁晓辉&#xff08;http://blog.csdn.net/uoyevoli/&#xff09;JavaScript, aka Mocha, aka LiveScript, aka …

第 5-5 课:线程安全——synchronized 和 ReentrantLock + 面试题

前面我们介绍了很多关于多线程的内容,在多线程中有一个很重要的课题需要我们攻克,那就是线程安全问题。线程安全问题指的是在多线程中,各线程之间因为同时操作所产生的数据污染或其他非预期的程序运行结果。 线程安全 1)非线程安全事例 比如 A 和 B 同时给 C 转账的问题…

MFC中的几个常用类——CFileDialog

2019独角兽企业重金招聘Python工程师标准>>> 1 简介 CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。 可以用 构造函数提供的方式使用CFileDialog&#xff0c;也可以从CFileDi…

数组中的filter方法_数组filter()方法以及JavaScript中的示例

数组中的filter方法JavaScript filter()方法 (JavaScript filter() method) filter() method is used to returns an array with the values which pass the given test (condition). filter()方法用于返回具有通过给定测试(条件)的值的数组。 Syntax: 句法&#xff1a; arra…

Oracle内置角色connect与resource的权限

首先用一个命令赋予user用户connect角色和resource角色&#xff1a; grant connect,resource to user; 运行成功后用户包括的权限: CONNECT角色&#xff1a; --是授予最终用户的典型权利&#xff0c;最基本的 ALTER SESSION --修改会话 CREATE CLUSTER --建立聚簇 CREATE DATAB…

第 5-7 课:Java 中的各种锁和 CAS + 面试题

如果说快速理解多线程有什么捷径的话,那本文介绍的各种锁无疑是其中之一,它不但为我们开发多线程程序提供理论支持,还是面试中经常被问到的核心面试题之一。因此下面就让我们一起深入地学习一下这些锁吧。 乐观锁和悲观锁 悲观锁和乐观锁并不是某个具体的“锁”而是一种并…

Exchange Server2010部署完后的配置:CA、Outlook Anywhere、OWA域名简写

Exchange Server 2010邮件系统安装完成后&#xff0c;必须经过相应的配置后&#xff0c;才能使Exchange Server 2010邮件系统提供基本的访问、邮件收发等基本功能。下面我们逐一看看如何让Exchanger Server跑起来。Exchange Server2010产品授权&#xff1a;我们目前所安装的Exc…

STM32——PID恒温控制

原理 元件 stm32f103核心板、L298N模块(当然用MOS管更好)、led一个、NPN三极管一个、蜂鸣器一个、DHT11一个、LCD1602一个、电阻200欧两个、可调电阻10K一个、加热丝一个 功能描述 用DHT11检测当前环境温湿度&#xff0c;并将数据显示在LCD1602上&#xff0c;在用设定温度与当…

第 6-2 课:SpringMVC 核心 + 面试题

Spring MVC 介绍 Spring MVC(Spring Web MVC)是 Spring Framework 提供的 Web 组件,它的实现基于 MVC 的设计模式:Controller(控制层)、Model(模型层)、View(视图层),提供了前端路由映射、视图解析等功能,让 Java Web 开发变得更加简单,也属于 Java 开发中必须要…

Python | 查找字符串中每个字符的频率

Given a string and we have to find the frequency of each character of the string in Python. 给定一个字符串&#xff0c;我们必须在Python中查找该字符串的每个字符的频率。 Example: 例&#xff1a; Input: "hello"Output:{o: 1, h: 1, e: 1, l: 2}Python c…

Lync2013 升级错误总结8 Lync2013 日志总是提示进程 RtcHost(5724) 收到了一个无效的客户端证书...

错误提示&#xff1a;解决方法&#xff1a;1打开注册表引导到&#xff1a;HKLM\System\CurrentControlSet\Control\SecurityProviders\Schannel2 新建一个DWORD键值&#xff1a;值的名称&#xff1a;EnableSessionTicket3 右键这个值点编辑讲数值数据修改成&#xff1a;24 重新…

简易的遍历文件加密解密

功能描述 将生成的可执行程序放在指定的文件夹内&#xff0c;双击后将该目录下所有文件包括子文件夹内文件全部加密&#xff0c;再次双击运行后将进行解密。 加密解密实现 主要运用了异或与取反操作&#xff0c;异或&#xff1a;两个值不同为1&#xff0c;相同为0。取反就是将该…