舵机简介及单片机C51控制方法
舵机的原理与单片机控制(二)2024

舵机的原理与单片机控制(二)引言概述:舵机是一种常见的机电设备,广泛应用于机器人、遥控模型等领域。
本文将进一步介绍舵机的原理及其与单片机的控制方法。
正文内容:一、舵机的原理1. 舵机的结构组成:电机、减速器、控制电路和位置反馈装置。
2. 舵机的工作原理:利用电机的转动驱动控制电路,通过调整控制电路的输出脉冲宽度来实现舵机的转动。
3. 舵机的位置反馈装置:通过位置传感器实时检测舵机的转动角度,并将反馈信号传递给控制电路进行修正。
二、单片机控制舵机的基本原理1. 单片机的控制方式:通过控制IO口产生控制信号,即PWM 信号,来控制舵机的转动。
2. PWM信号的特点:通过调整PWM信号的高低电平持续时间来实现对舵机的控制,通常控制信号的占空比与舵机的转动角度成正比。
3. 单片机编程:使用单片机的编程语言,通过设定PWM信号的占空比来控制舵机的转动角度。
4. 控制舵机的程序设计:通过设置PWM信号的周期和占空比,利用适当的算法控制舵机的速度和位置。
三、舵机的常见问题及解决方法1. 舵机抖动问题:可通过增加控制信号的稳定性和校准舵机的中值来解决。
2. 舵机发热问题:可通过降低PWM信号的频率和增加散热系统来解决。
3. 舵机运转不稳定问题:可通过调整PWM信号的占空比和校正舵机的位置反馈装置来解决。
四、舵机控制的优化方法1. 控制算法优化:利用PID控制算法来提高舵机的精确度和稳定性。
2. 舵机模型参数的优化:通过调整舵机的工作电压和扭矩参数,提高其性能和适应性。
3. 舵机控制系统的设计优化:考虑电源、信号线路、控制器等因素,提高舵机控制的整体效果。
五、舵机控制应用案例1. 机器人舵机控制:通过单片机对舵机进行控制,实现机器人的运动和动作。
2. 遥控模型舵机控制:利用遥控器与接收机之间的通信,控制舵机来实现遥控模型的转动和动作。
总结:本文详细介绍了舵机的工作原理和单片机控制方法,以及舵机常见问题的解决方法和控制优化的途径。
舵机简介及其单片机控制方法

1、概述舵机最早出现在航模运动中。
在航空模型中,飞行机的飞行姿态是通过调节发动机和各个控制舵面来实现的。
举个简单的四通飞机来说,飞机上有以下几个地方需要控制:1.发动机进气量,来控制发动机的拉力(或推力);2.副翼舵面(安装在飞机机翼后缘),用来控制飞机的横滚运动;3.水平尾舵面,用来控制飞机的俯仰角;4.垂直尾舵面,用来控制飞机的偏航角;遥控器有四个通道,分别对应四个舵机,而舵机又通过连杆等传动元件带动舵面的转动,从而改变飞机的运动状态。
舵机因此得名:控制舵面的伺服电机。
不仅在航模飞机中,在其他的模型运动中都可以看到它的应用:船模上用来控制尾舵,车模中用来转向等等。
由此可见,凡是需要操作性动作时都可以用舵机来实现。
2、结构和控制一般来讲,舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈电位计5k、直流电机、控制电路板等。
工作原理:控制电路板接受来自信号线的控制信号(具体信号待会再讲),控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。
舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。
舵机的基本结构是这样,但实现起来有很多种。
例如电机就有有刷和无刷之分,齿轮有塑料和金属之分,输出轴有滑动和滚动之分,壳体有塑料和铝合金之分,速度有快速和慢速之分,体积有大中小三种之分等等,组合不同,价格也千差万别。
例如,其中小舵机一般称作微舵,同种材料的条件下是中型的一倍多,金属齿轮是塑料齿轮的一倍多。
需要根据需要选用不同类型。
舵机的输入线共有三条,红色中间,是电源线,一边黑色的是地线,这辆根线给舵机提供最基本的能源保证,主要是电机的转动消耗。
电源有两种规格,一是4.8V,一是6.0V,分别对应不同的转矩标准,即输出力矩不同,6.0V对应的要大一些,具体看应用条件;另外一根线是控制信号线,Futaba的一般为白色,JR的一般为桔黄色。
舵机的控制方式和工作原理介绍

舵机的控制方式和工作原理介绍舵机是一种常见的电动执行元件,广泛应用于机器人、遥控车辆、模型飞机等领域。
它通过电信号控制来改变输出轴的角度,实现精准的位置控制。
本文将介绍舵机的控制方式和工作原理。
一、舵机的结构和工作原理舵机的基本结构包括电机、减速装置、控制电路以及输出轴和舵盘。
电机驱动输出轴,减速装置减速并转动输出轴,而控制电路则根据输入信号来控制电机的转动或停止。
舵机的主要工作原理是通过PWM(脉宽调制)信号来控制。
PWM信号是一种周期性的方波信号,通过调整占空比即高电平的时间来控制舵机的位置。
通常情况下,舵机所需的控制信号频率为50Hz,即每秒50个周期,而高电平的脉宽则决定了输出轴的角度。
二、舵机的控制方式舵机的控制方式主要有模拟控制和数字控制两种。
1. 模拟控制模拟控制是指通过改变输入信号电压的大小,来控制舵机输出的角度。
传统的舵机多采用模拟控制方式。
在模拟控制中,通常将输入信号电压的范围设置在0V至5V之间,其中2.5V对应于舵机的中立位置(通常为90度)。
通过改变输入信号电压的大小,可以使舵机在90度以内左右摆动。
2. 数字控制数字控制是指通过数字信号(如脉宽调制信号)来控制舵机的位置。
数字控制方式多用于微控制器等数字系统中。
在数字控制中,舵机通过接收来自微控制器的PWM信号来转动到相应位置。
微控制器根据需要生成脉宽在0.5ms至2.5ms之间变化的PWM信号,通过改变脉宽的占空比,舵机可以在0度至180度的范围内进行精确的位置控制。
三、舵机的工作原理舵机的工作原理是利用直流电机的转动来驱动输出轴的运动。
当舵机接收到控制信号后,控制电路将信号转换为电机驱动所需的功率。
电机驱动输出轴旋转至对应的角度,实现精准的位置控制。
在舵机工作过程中,减速装置的作用非常重要。
减速装置可以将电机产生的高速旋转转换为较低速度的输出轴旋转,提供更大的扭矩输出。
这样可以保证舵机的运动平稳且具有较大的力量。
四、舵机的应用领域舵机以其精准的位置控制和力矩输出,广泛应用于各种领域。
舵机的单片机控制

舵机的单片机控制第一章:引言舵机是一种常见的机械驱动器件,广泛应用于模型航空、机器人、自动化设备以及家用电器等领域。
其具备精准控制旋转角度的能力,可以根据输入的信号控制输出轴的位置,使其按照预定的角度旋转。
单片机技术作为现代控制系统中重要的组成部分,被广泛应用于舵机控制中,本文将以单片机控制舵机为研究对象,探讨其工作原理和控制方法。
第二章:舵机原理舵机由电机和返回电路组成,输入控制信号后,通过电机驱动轴实现角度调节。
其内部包含了一个减速装置以及一个位置反馈装置(旋转电位器或磁编码器)。
通过控制电机的转速和方向,从而实现舵机输出轴的位置调整。
值得注意的是,舵机的控制信号通常为PWM信号。
第三章:单片机控制舵机3.1 舵机控制信号的生成单片机通过PWM信号控制舵机的角度。
PWM信号可以通过计时器/计数器来生成,并通过定时器的频率和占空比来控制输出信号的特性。
其中,舵机的控制信号通常具有20ms的周期,占空比在0.5ms到2.5ms之间可以实现0°到180°的转动范围。
因此,单片机需要根据需要设定合适的定时器参数。
3.2 单片机舵机控制电路单片机与舵机之间需要一个适配电路,将单片机输出的PWM信号转化为舵机可以接受的信号。
适配电路通常由操作放大器、电阻和电容组成。
其作用是将较低电平的单片机信号放大到舵机所需要的电平范围,以便舵机可以接收到正确的控制信号。
3.3 程序设计程序设计是单片机控制舵机的关键。
根据舵机的控制信号特性,通过适当的算法和参数设置,可以实现精确的舵机控制。
程序设计需要考虑到舵机控制的实时性和精确性,采用中断方式和定时器中断来实现。
第四章:舵机控制实验为验证单片机控制舵机的效果,进行了一系列实验。
实验中通过改变PWM信号的占空比以及角度范围,观测舵机输出的转动情况。
实验结果表明,单片机可以精确控制舵机的转动角度,并具备实时性能。
第五章:结论单片机控制舵机是一种成熟且常见的应用。
单片机控制舵机程序

单片机控制舵机程序第一章:引言单片机作为一种重要的嵌入式系统开发工具,广泛应用于各个领域,舵机作为一种常用的机械驱动装置,也在各种应用中得到广泛的应用。
本论文通过设计单片机控制舵机的程序,旨在探究单片机如何通过编程实现舵机的精确控制。
第二章:舵机的基本原理舵机是一种常见的位置式伺服机构,它可以通过控制信号控制其角度位置,实现精确的运动控制。
它由直流电机、减速机构、位置检测传感器和驱动控制电路组成。
通过单片机控制舵机,可以实现根据需要精确调整舵机的位置和速度。
第三章:单片机控制舵机的设计与实现本章主要介绍如何使用单片机来控制舵机。
首先,需要选择合适的单片机和舵机。
常见的单片机有51系列、AVR、STM32等,而舵机则有舵机舵盘、舵机电机和舵机控制器等。
随后,在硬件设计上,需要连接单片机和舵机,并根据舵机的电气特性设计相应的电路保护措施。
在软件设计上,需要编写单片机的控制程序。
通过控制程序发送特定的PWM(脉宽调制)信号给舵机,从而控制舵机的角度位置和运动速度。
第四章:单片机控制舵机的应用与改进在本章中,将介绍单片机控制舵机的应用与改进。
首先,在机器人领域,单片机控制舵机可以实现机器人的运动与动作控制,从而实现更复杂的功能。
其次,在航模、智能家居等领域,单片机控制舵机也应用广泛,可以实现遥控、智能调节等功能。
最后,对现有的单片机控制舵机的程序进行改进,如优化舵机的运动曲线、增加舵机的控制精度等,可以提升系统的性能。
总结:本论文通过设计单片机控制舵机的程序,探究了单片机通过编程实现舵机的精确控制的原理和方法。
同时,介绍了舵机的基本原理和单片机控制舵机的设计与实现过程,并讨论了单片机控制舵机的应用与改进。
通过本论文的研究,可以帮助读者了解和应用单片机控制舵机的技术,为单片机在舵机控制方面的应用提供参考。
第五章:实验及结果分析在本章中,我们将介绍根据上述设计和实现的单片机控制舵机的程序的实验,并对实验结果进行分析。
单片机舵机角度控制

单片机舵机角度控制章节一:绪论近年来,随着科技的发展和应用领域的不断扩大,单片机成为了现代电子技术领域中不可或缺的一部分。
单片机舵机角度控制作为其中一个重要的应用,广泛应用于机器人、航模等领域。
本文旨在探讨单片机舵机角度控制的原理和实现方法,以及相关的优化方案。
章节二:单片机舵机角度控制的原理2.1 舵机的基本原理舵机是一种用来控制角度的驱动器件,它内部包含电机、减速机构和位置反馈装置。
其工作原理是通过控制电机的旋转方向和速度来调整舵机的输出角度。
2.2 单片机舵机控制的原理单片机作为舵机控制的核心部件,可以通过PWM信号来控制舵机的转动角度。
通过控制PWM信号的占空比,可以控制电机的转速,从而实现对舵机角度的精确控制。
章节三:单片机舵机角度控制的实现方法3.1 硬件设计舵机角度控制的硬件设计包括舵机的连接方式和电源电路的设计。
选择合适的舵机连接方式可以减少电源负载和电源干扰,提高舵机的响应速度和精度。
3.2 软件设计单片机舵机角度控制的软件设计包括舵机控制程序的编写和舵机角度的校正算法。
舵机控制程序主要负责控制PWM信号的产生,并根据需要调整舵机的角度;舵机角度的校正算法则是为了保证舵机能够精确控制到指定的角度。
章节四:单片机舵机角度控制的优化方案4.1 控制算法优化针对舵机在转动过程中的非线性特性和稳定性问题,可以采用PID控制算法进行优化。
PID控制算法通过对误差、偏差和积分项的综合计算,实现对舵机角度控制的精确调整和快速响应。
4.2 硬件优化通过选用高精度的舵机和高性能的电源电路,可以提高舵机的控制精度和响应速度。
另外,合理设计电路板布局和降低信号干扰也是硬件优化的关键。
总结:本文首先介绍了单片机舵机角度控制的原理,包括舵机的基本原理和单片机控制舵机的原理。
然后详细讨论了单片机舵机角度控制的实现方法,包括硬件设计和软件设计。
最后,针对单片机舵机角度控制存在的问题和局限性,提出了优化方案,包括控制算法优化和硬件优化。
舵机怎么控制

舵机怎么控制舵机的控制是机器人控制中非常重要的一部分。
舵机可以通过向机器人的连接部件施加力矩,从而控制其运动和姿态。
本论文将分为四个章节,分别介绍舵机的工作原理、舵机的控制方式、舵机的应用和未来的趋势。
第一章:舵机的工作原理舵机是一种通过转动轴来控制输出角度的电动装置。
它由电机、减速器和控制电路组成。
当电机转动时,减速器将输出转矩传递给连接部件,使其移动到所需的位置。
舵机的工作原理基于反馈控制系统,其中控制电路通过传感器准确测量当前位置,并根据设定值产生控制信号,使舵机转动到精确的角度。
第二章:舵机的控制方式舵机的控制方式主要有两种:开环和闭环控制。
开环控制是指通过简单的控制信号来直接控制舵机。
这种控制方式简单易行,但可控性较差,难以精确控制舵机的输出角度。
闭环控制是指通过反馈信号来实时调整控制信号,使舵机精确转动到所需的位置。
闭环控制具有较高的控制精度,但也更加复杂,需要使用传感器来获取反馈信号。
第三章:舵机的应用舵机广泛应用于机器人、航空航天、航海、汽车和工业自动化等领域。
在机器人领域,舵机用于控制机器人的关节运动,使其具备更加精确和灵活的动作能力。
在航空航天领域,舵机用于控制飞行器的姿态和稳定性,确保飞行器在空中的平稳飞行。
在航海领域,舵机用于控制船舶的航向,使船舶能够准确地按照预定航线行驶。
在汽车领域,舵机用于控制汽车的转向,使驾驶人能够轻松操作车辆。
在工业自动化领域,舵机用于控制机械臂和其他运动装置的运动,实现精确的运动控制。
第四章:舵机的未来趋势随着技术的发展,舵机的控制将更加精确和智能化。
传感器技术的不断进步将使得舵机能够获得更加准确的反馈信号。
此外,人工智能和机器学习算法的应用也将提高舵机的控制精度和适应性。
未来,舵机有望成为机器人控制系统中更加重要的一部分,为机器人带来更高的运动和操作能力。
总结:舵机是机器人控制中不可或缺的一部分。
本论文从舵机的工作原理、控制方式、应用和未来的趋势等四个方面进行了介绍。
单片机控制舵机教程

单片机控制舵机教程第一章:引言(约200字)引言部分介绍了单片机控制舵机的背景信息和重要性。
指出舵机是一种很重要的电子元件,广泛应用于机器人、航模、自动控制等领域。
随后,说明学习单片机控制舵机的目的和意义,以及本论文的结构和内容安排。
第二章:舵机的基本原理(约300字)第二章详细介绍了舵机的基本原理和工作原理。
首先介绍了舵机的结构组成和特点,包括电机、减速器、反馈电路等。
然后,详细解释了PWM(脉宽调制)信号的生成和作用,以及如何通过改变PWM信号的高电平时间来实现舵机的角度控制。
同时,还介绍了舵机的位置反馈原理和PID控制算法的基本概念,以及如何利用PID算法控制舵机的工作。
第三章:单片机控制舵机的实现方法(约400字)第三章分别介绍了两种常用的单片机控制舵机的实现方法。
首先是基于软件实现的方法,通过编写程序在单片机上控制舵机的转动。
这部分详细介绍了单片机的引脚连接、编写程序的方法和实现舵机角度控制的具体步骤。
然后,介绍了基于硬件的实现方法,通过使用专用的舵机驱动模块实现单片机对舵机的控制。
这部分详细介绍了舵机驱动模块的选用和接线方式,以及如何通过单片机来控制舵机驱动模块的工作。
第四章:实验与应用(约300字)第四章以实验为基础,具体介绍了单片机控制舵机的实验步骤和实验结果。
首先介绍了实验所需的硬件和软件环境,如单片机开发板、舵机驱动模块、编程软件等。
然后详细介绍了实验的具体步骤,包括将舵机与单片机连接、编写程序代码、调试和测试等。
最后展示了实验结果,包括舵机的转动角度和舵机控制的准确性。
结论:在本章节中对论文进行了总结和回顾。
指出了单片机控制舵机的重要性和应用前景,并总结了本论文涵盖的内容和实验结果。
最后,指出了单片机控制舵机研究中的一些不足之处,并对进一步研究和应用提出展望。
(注:此篇文章仅供参考,具体字数和章节内容布置可根据实际需要做适当的调整)第一章:引言(约200字)引言部分介绍了单片机控制舵机的背景信息和重要性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、概述
舵机最早出现在航模运动中。
在航空模型中,飞行机的飞行姿态是通过调节发动机和各个控制舵面来实现的。
举个简单的四通飞机来说,飞机上有以下几个地方需要控制:
1.发动机进气量,来控制发动机的拉力(或推力);
2.副翼舵面(安装在飞机机翼后缘),用来控制飞机的横滚运动;
3.水平尾舵面,用来控制飞机的俯仰角;
4.垂直尾舵面,用来控制飞机的偏航角;
遥控器有四个通道,分别对应四个舵机,而舵机又通过连杆等传动元件带动舵面的转动,从而改变飞机的运动状态。
舵机因此得名:控制舵面的伺服电机。
不仅在航模飞机中,在其他的模型运动中都可以看到它的应用:船模上用来控制尾舵,车模中用来转向等等。
由此可见,凡是需要操作性动作时都可以用舵机来实现。
2、结构和控制
一般来讲,舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈电位计5k、直流电机、控制电路板等。
工作原理:控制电路板接受来自信号线的控制信号(具体信号待会再讲),控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。
舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机的转动方向和速度,从而达到目标停止。
舵机的基本结构是这样,但实现起来有很多种。
例如电机就有有刷和无刷之分,齿轮有塑料和金属之分,输出轴有滑动和滚动之分,壳体有塑料和铝合金之分,速度有快速和慢速之分,体积有大中小三种之分等等,组合不同,价格也千差万别。
例如,其中小舵机一般称作微舵,同种材料的条件下是中型的一倍多,金属齿轮是塑料齿轮的一倍多。
需要根据需要选用不同类型。
舵机的输入线共有三条,红色中间,是电源线,一边黑色的是地线,这辆根线给舵机提供最基本的能源保证,主要是电机的转动消耗。
电源有两种规格,一是4.8V,一是6.0V,分别对应不同的转矩标准,即输出力矩不同,6.0V对应的要大一些,具体看应用条件;另外一根线是控制信号线,Futaba的一般为白色,JR的一般为桔黄色。
另外要注意一点,SANWA的某些型号的舵机引线电源线在边上而不是中间,需要辨认。
但记住红色为电源,黑色为地线,一般不会搞错。
舵机的控制信号为周期是20ms的脉宽调制(PWM)信号,其中脉冲宽度从
0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化。
也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。
舵机内部有一个基准电路,产生周期20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。
由此可见,舵机是一种位置伺服的驱动器,转动范围不能超过180度,适用于那些需要角度不断变化并可以保持的驱动当中。
比方说机器人的关节、飞机的舵面等。
常见的舵机厂家有:日本的Futaba、JR、SANWA等,国产的有北京的新幻想、吉林的振华等。
现举Futaba S3003来介绍相关参数,以供大家设计时选用。
之所
以用3003是因为这个型号是市场上最常见的,也是价格相对较便宜的一种(以下数据摘自Futaba产品手册)。
尺寸(Dimensions):40.4×19.8×36.0 mm
重量(Weight): 37.2 g
工作速度(Operating speed):0.23 sec/60°(4.8V)
0.19 sec/60°(6.0V)
输出力矩(Output torque): 3.2 kg.cm (4.8V)
4.1 kg.cm (6.0V)
由此可见,舵机具有以下一些特点:
>体积紧凑,便于安装;
>输出力矩大,稳定性好;
>控制简单,便于和数字系统接口;
正是因为舵机有很多优点,所以,现在不仅仅应用在航模运动中,已经扩展到各种机电产品中来,在机器人控制中应用也越来越广泛。
3、用单片机来控制
正是舵机的控制信号是一个脉宽调制信号,所以很方便和数字系统进行接口。
只要能产生标准的控制信号的数字设备都可以用来控制舵机,比方PLC、单片机等。
这里介绍利用51系列单片机产生舵机的控制信号来进行控制的方法,编程语言为C51。
之所以介绍这种方法只是因为笔者用2051实现过,本着负责的态度,所以敢在这里写出来。
程序用的是我的四足步行机器人,有删改。
单片机并不是控制舵机的最好的方法,希望在此能起到抛砖引玉的作用。
2051有两个16位的内部计数器,我们就用它来产生周期20 ms的脉冲信号,根据需要,改变输出脉宽。
基本思路如下(请对照下面的程序):
我用的晶振频率为12M,2051一个时钟周期为12个晶振周期,正好是1/1000 ms,计数器每隔1/1000 ms计一次数。
以计数器1为例,先设定脉宽的初始值,程序中初始为1.5ms,在for循环中可以随时通过改变a值来改变,然后设定计数器计数初始值为a,并置输出p12为高位。
当计数结束时,触发计数器溢出中断函数,就是void timer0(void) interrupt 1 using1 ,在子函数中,改变输出p12为反相(此时跳为低位),在用20000(代表20ms周期)减去高位用的时间a,就是本周期中低位的时间,c=20000-a,并设定此时的计数器初值为c,直到定时器再次产生溢出中断,重复上一过程。
# include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint a,b,c,d;
/*a为舵机1的脉冲宽度,b为舵机2的脉冲宽度,单位1/1000 ms */
/*c、d为中间变量*/
/*以下定义输出管脚*/
sbit p12=P1^2;
sbit p13=p1^3;
sbit p37=P3^7;
/*以下两个函数为定时器中断函数*/
/*定时器1,控制舵机1,输出引脚为P12,可自定义*/
void timer0(void) interrupt 1 using 1
{p12=!p12; /*输出取反*/
c=20000-c; /*20000代表20 ms,为一个周期的时间*/
TH0=-(c/256); TL0=-(c%256); /*重新定义计数初值*/
if(c>=500&&c<=2500)c=a;
else c="20000-a"; /*判断脉宽是否在正常范围之内*/
}
/*定时器2,控制舵机2,输出引脚为P13,可自定义*/
void timer1(void) interrupt 3 using 1
{p13=!p13;
d=20000-d;
TH1=-(d/256); TL1=-(d%256);
if(d>=500&&d<=2500)d=b;
else d="20000-b";
}
/*主程序*/
void main(void)
{TMOD=0x11; /*设初值*/
p12=1;
p13=1;
a=1500;
b=1500; /*数值1500即对应1.5ms,为舵机的中间90度的位置*/ c=a;d=b;
TH0=-(a/256); TL0=-(a%256);
TH1=-(b/256); TL1=-(b%256); /*设定定时器初始计数值*/
EA=1;
ET0=1; TR0=1;EX0=1;EX1=1;
ET1=1; TR1=1;
PX0=0;PX1=0;PT1=1;PT0=1;/*设定中断优先级*/
for(;;)
{
/*在这个for循环中,可以根据程序需要
在任何时间改变a、b值来改变脉宽的输
出时间,从而控制舵机*/
}
}
因为在脉冲信号的输出是靠定时器的溢出中断函数来处理,时间很短,因此在精度要求不高的场合可以忽略。
因此如果忽略中断时间,从另一个角度来讲就是主程序和脉冲输出是并行的,因此,只需要在主程序中按你的要求改变a值,例如让a从500变化到2500,就可以让舵机从0度变化到180度。
另外要记住一点,舵机的转动需要时间的,因此,程序中a值的变化不能太快,不然舵机跟不上程序。
根据需要,选择合适的延时,用一个a递增循环,可以让舵机很流畅的转动,而不会产生像步进电机一样的脉动。
这些还需要实践中具体体会。
舵机的速度决定于你给它的信号脉宽的变化速度。
举个例子,t=0试,脉宽为0.5ms,t=1s时,脉宽为1.0ms,那么,舵机就会从0.5ms对应的位置转到1.0ms 对应的位置,那么转动速度如何呢?一般来讲,3003的最大转动速度在4.8V时为0.23s/60度,也就是说,如果你要求的速度比这个快的话,舵机就反应不过来了;如果要求速度比这个慢,可以将脉宽变化值线性到你要求的时间内,做一个循环,一点一点的增加脉宽值,就可以控制舵机的速度了。
当然,具体这一点一点到底是多少,就需要做试验了,不然的话,不合适的话,舵机就会向步进电机一样一跳一跳的转动了,尝试改变这“一点”,使你的舵机运动更平滑。
还有一点很重要,就是舵机在每一次脉宽值改变的时候总会有一个转速由零增加再减速为零的过程,这就是舵机会产生像步进电机一样运动的原因。