AVR单片机对舵机的精确控制

合集下载

单片机舵机控制程序

单片机舵机控制程序

单片机舵机控制程序论文题目:基于单片机的舵机控制程序设计第一章:引言(介绍背景、意义和目的)舵机是一种用来控制机械运动的装置,广泛应用于各种自动控制系统中。

作为一种常见的终端执行元件,舵机的控制方式对系统的性能和准确性有很大的影响。

因此,设计一种高效、精准的舵机控制程序成为研究的重点。

第二章:相关技术介绍(介绍舵机的原理、分类和常用控制方法)本章将详细介绍舵机的工作原理和分类。

首先介绍舵机的基本构造和工作原理,其中包括电机、减速机、角度传感器和控制电路等。

接着介绍舵机的分类,包括开环控制和闭环控制两种方式。

最后,对常用的舵机控制方法进行详细讲解,包括位置式控制和速度式控制等。

第三章:舵机控制程序设计(详细介绍舵机控制程序的设计方法和步骤)本章将详细介绍舵机控制程序的设计方法和步骤。

首先,介绍如何选择适当的舵机控制芯片和开发环境。

然后,详细讲解舵机控制程序的编写过程,包括初始化舵机、设置舵机参数以及控制舵机运动等。

最后,通过实例说明舵机控制程序设计的实际操作过程。

第四章:实验结果与分析(通过实验验证舵机控制程序的性能和准确性)本章将通过实际实验来验证所设计的舵机控制程序的性能和准确性。

首先介绍实验所需的硬件设备和软件环境。

然后,详细记录实验过程中的实测数据,并进行数据分析和结果展示。

最后,对实验结果进行评价和讨论,说明所设计的舵机控制程序的优点和不足之处,并提出改进和优化的建议。

结论本论文通过对舵机的原理、分类和控制方法的介绍,设计了一种高效、精准的舵机控制程序。

通过实验验证,结果表明所设计的舵机控制程序具有良好的性能和准确性。

然而,舵机控制程序的设计仍然有一些局限性,需要进一步研究和改进。

相信随着技术的进步和舵机控制程序的不断优化,舵机在各种自动控制领域的应用将更加广泛和成熟。

第一章:引言舵机是一种常见的终端执行元件,它广泛应用于各种自动控制系统中,如机器人、无人机、机械臂等。

舵机的控制方式对于系统的性能和准确性有着重要的影响。

基于AVR单片机的多舵机控制精度的研究

基于AVR单片机的多舵机控制精度的研究
大、 线性 度好 、 反应 迅 捷 等 特点 , 适 用 于 那 些需 要 角 度不断 变化并 可 以保 持 的控 制 系统 , 例 如 机器 人 关 节 等 。舵 机 从 2 0 ms 为 周期 , 0 . 5 ms ~ 2 . 5 m s 为 脉 宽 的周 期 脉 冲 方波 作 为 控 制信 号 , 对 应 的转 角是 0~ 1 8 0 。 , 一 般利用 单 片 机 内部 定 时 器 的 中断 来 产 生所 需 的控制 信号 。 本 文 的对象 为 二 自由度 机 械 云 台 , 是 多 关 节机 器人 的一部 分 , A T m e g a l 6 A V R单 片机 为控 制器 产生
J I ANG C h e n — f e i ,L I U Z i — l o n g ,HU S h a o — k a i , Ha n G u a n g — x i a n
( 1 . S c h o o l o f Op t i c a l ・ e l e c t r i c a l a n d C o mp u t e r E n g i n e e i r n g , U n i v e r s i t y o f S h a n g h a i f o r S c i e n c e a n d T e c h n o l o g y , S h a n g h a i 2 0 o o 9 3, C h i n a ; 2 . S  ̄n ha g i B o j i a n E l e c t r o n i c T e c h n o l o y g C o . , L t d . , S h ng a ha i 2 0 1 6 1 2 , C in h a )
Ab s t r a c t :T h i s p a p e r d e s i g n e d a p r o g r a mmi n g a n d c o n t r o l me t h o d mi x e d w i h a t s s e mb l y l a n g u a g e

基于单片机的舵机控制方法探讨

基于单片机的舵机控制方法探讨

基于单片机的舵机控制方法具有简单、精度高、成本低、体积小的特点,并可根据不同的舵机数量加以灵活应用。

在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。

舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转。

当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

图1舵机的控制要求舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。

一般舵机的控制要求如图1所示。

单片机实现舵机转角控制可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂。

对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用。

5mV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精度难以达到舵机的控制精度要求。

也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。

单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。

单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。

单片机红外控制舵机

单片机红外控制舵机

单片机红外控制舵机
单片机红外控制舵机的实现需要以下几个步骤:
1.确定控制信号:首先需要确定舵机的控制信号,通常为PWM信号。

PWM信
号的周期和占空比决定了舵机的转动角度。

2.编写控制程序:根据舵机的控制信号要求,编写单片机程序。

程序中需要包含
对红外遥控信号的解码和PWM信号的生成。

3.接收红外信号:使用单片机的红外接收模块,接收遥控器发出的红外信号。

4.解码红外信号:将接收到的红外信号进行解码,得到对应的控制指令。

5.生成PWM信号:根据解码得到的控制指令,生成相应的PWM信号。

6.输出PWM信号:将生成的PWM信号输出到舵机,控制舵机的转动角度。

需要注意的是,在实际应用中,需要根据具体的单片机和舵机型号,对程序进行适当的修改和调整。

同时,还需要考虑抗干扰和稳定性等方面的问题。

舵机的原理与单片机控制

舵机的原理与单片机控制

舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。

舵机是一种俗称,其实是一种伺服马达。

一、舵机原理:舵机有舵盘,位置反馈电位器,减速齿轮组,直流电机和控制电路组成。

减速齿轮组由直流电机驱动,其输出转轴带动一个具有线性比例特性的位置反馈电位器作为位置检测。

控制电路根据电位器的反馈电压,与外部输入控制脉冲进行比较,产生纠正脉冲,控制并驱动直流电机正转或反转,使减速齿轮输出的位置与期望值相复合。

从而达到精确控制转向角度的目的。

二、舵机的参数转速:由舵机无负载的情况下转过60°角所需时间来衡量,常见舵机的速度一般在0.11/60°~0.21S/60°之间。

扭矩:单位是KG·CM,这是一个扭矩单位。

可以理解为在舵盘上距舵机轴中心水平距离1CM 处,舵机能够带动的物体重量。

电压:小型舵机的工作电压一般为4.8V或6V。

重量:以克为单位,微型9g舵机,中型45g,100g舵机等。

三、舵机的脉冲控制舵机的控制脉冲周期20ms,脉宽从0.5ms-2.5ms,分别对应-90 度到+90 度的位置,以180度角度伺服为例注:这只是一种参考数值,具体的参数,请参见舵机的技术参数。

改变高电平的脉冲宽度就改变了输出角度。

四、舵机的单片机控制舵机的单片机控制:舵机只有3根线,电压,地,脉宽控制信号线,与单片机接口只需要一条线,PB0为单片机定时器输出脚,用单片机的定时器产生20ms的脉冲频率控制舵机,通过改变脉冲的占空比来控制输出角度。

舵机转动时需要消耗比较大的电流,所以舵机的电源最好单独提供,不要和单片机使用同一路电源。

点击参见:AVR单片机定时器输出PWM实例小企鹅diy科学探究学习网更多文章转到/wqb_lmkj/blog文章分类-机器人。

舵机的单片机控制

舵机的单片机控制

舵机的单片机控制第一章:引言舵机是一种常见的机械驱动器件,广泛应用于模型航空、机器人、自动化设备以及家用电器等领域。

其具备精准控制旋转角度的能力,可以根据输入的信号控制输出轴的位置,使其按照预定的角度旋转。

单片机技术作为现代控制系统中重要的组成部分,被广泛应用于舵机控制中,本文将以单片机控制舵机为研究对象,探讨其工作原理和控制方法。

第二章:舵机原理舵机由电机和返回电路组成,输入控制信号后,通过电机驱动轴实现角度调节。

其内部包含了一个减速装置以及一个位置反馈装置(旋转电位器或磁编码器)。

通过控制电机的转速和方向,从而实现舵机输出轴的位置调整。

值得注意的是,舵机的控制信号通常为PWM信号。

第三章:单片机控制舵机3.1 舵机控制信号的生成单片机通过PWM信号控制舵机的角度。

PWM信号可以通过计时器/计数器来生成,并通过定时器的频率和占空比来控制输出信号的特性。

其中,舵机的控制信号通常具有20ms的周期,占空比在0.5ms到2.5ms之间可以实现0°到180°的转动范围。

因此,单片机需要根据需要设定合适的定时器参数。

3.2 单片机舵机控制电路单片机与舵机之间需要一个适配电路,将单片机输出的PWM信号转化为舵机可以接受的信号。

适配电路通常由操作放大器、电阻和电容组成。

其作用是将较低电平的单片机信号放大到舵机所需要的电平范围,以便舵机可以接收到正确的控制信号。

3.3 程序设计程序设计是单片机控制舵机的关键。

根据舵机的控制信号特性,通过适当的算法和参数设置,可以实现精确的舵机控制。

程序设计需要考虑到舵机控制的实时性和精确性,采用中断方式和定时器中断来实现。

第四章:舵机控制实验为验证单片机控制舵机的效果,进行了一系列实验。

实验中通过改变PWM信号的占空比以及角度范围,观测舵机输出的转动情况。

实验结果表明,单片机可以精确控制舵机的转动角度,并具备实时性能。

第五章:结论单片机控制舵机是一种成熟且常见的应用。

单片机控制舵机

单片机控制舵机章节一:引言舵机是一种能够精确控制角度的电动执行元件,广泛应用于机器人、航模模型、自动门窗等领域。

而单片机作为一种嵌入式系统,具有高性能、低功耗和易编程等特点,是控制舵机的理想选择。

本论文将介绍单片机控制舵机的原理、方法和应用。

章节二:舵机原理与工作原理舵机是由一个电机和一个控制电路组成。

电机驱动舵轮旋转,而控制电路则根据输入信号产生相应的输出脉冲,控制电机驱动舵轮转动的位置和角度。

舵机的工作原理可以分为三个阶段:解码脉冲、驱动电机和反馈传感。

在解码脉冲阶段,舵机接收控制信号,将其转化为输出脉冲信号。

在驱动电机阶段,舵机根据输出脉冲信号驱动电机旋转。

在反馈传感阶段,舵机通过内置的位置传感器反馈当前位置信息给控制电路,以实现闭环控制。

章节三:单片机控制舵机的方法单片机控制舵机的方法主要包括PWM控制和定时中断控制。

PWM控制是通过改变脉宽来控制舵机的角度。

单片机通过定时器产生一定频率的PWM信号,占空比表示舵机的角度位置。

定时中断控制是通过定时中断产生一系列的脉冲信号,根据脉冲信号的频率和宽度来控制舵机的位置和角度。

在具体实现中,可以使用脉宽编码来表示舵机的位置信息,可以使用软件算法来驱动舵机旋转,也可以使用硬件模块来实现舵机的控制。

章节四:单片机控制舵机的应用单片机控制舵机的应用十分广泛。

在机器人领域,单片机控制舵机可以控制机器人的头部、手臂和腿部,实现精确的动作控制。

在航模模型中,单片机控制舵机可以控制模型的机翼、尾翼和升降舵,实现精确的飞行控制。

在自动门窗领域,单片机控制舵机可以实现门窗的开启和关闭,实现自动化管理。

综上所述,单片机控制舵机是一种高效、灵活和可靠的控制方法,可以应用于多个领域。

通过合理的算法设计和硬件布局,单片机可以实现精确控制舵机的位置和角度,满足各种实际需求。

未来,随着单片机技术的不断发展,单片机控制舵机的应用将会越来越广泛。

通过单片机控制舵机,可以实现精确的位置和角度控制,提高了机器人、航模模型和自动门窗等设备的灵活性和智能化水平。

单片机控制舵机程序

单片机控制舵机程序第一章:引言单片机作为一种重要的嵌入式系统开发工具,广泛应用于各个领域,舵机作为一种常用的机械驱动装置,也在各种应用中得到广泛的应用。

本论文通过设计单片机控制舵机的程序,旨在探究单片机如何通过编程实现舵机的精确控制。

第二章:舵机的基本原理舵机是一种常见的位置式伺服机构,它可以通过控制信号控制其角度位置,实现精确的运动控制。

它由直流电机、减速机构、位置检测传感器和驱动控制电路组成。

通过单片机控制舵机,可以实现根据需要精确调整舵机的位置和速度。

第三章:单片机控制舵机的设计与实现本章主要介绍如何使用单片机来控制舵机。

首先,需要选择合适的单片机和舵机。

常见的单片机有51系列、AVR、STM32等,而舵机则有舵机舵盘、舵机电机和舵机控制器等。

随后,在硬件设计上,需要连接单片机和舵机,并根据舵机的电气特性设计相应的电路保护措施。

在软件设计上,需要编写单片机的控制程序。

通过控制程序发送特定的PWM(脉宽调制)信号给舵机,从而控制舵机的角度位置和运动速度。

第四章:单片机控制舵机的应用与改进在本章中,将介绍单片机控制舵机的应用与改进。

首先,在机器人领域,单片机控制舵机可以实现机器人的运动与动作控制,从而实现更复杂的功能。

其次,在航模、智能家居等领域,单片机控制舵机也应用广泛,可以实现遥控、智能调节等功能。

最后,对现有的单片机控制舵机的程序进行改进,如优化舵机的运动曲线、增加舵机的控制精度等,可以提升系统的性能。

总结:本论文通过设计单片机控制舵机的程序,探究了单片机通过编程实现舵机的精确控制的原理和方法。

同时,介绍了舵机的基本原理和单片机控制舵机的设计与实现过程,并讨论了单片机控制舵机的应用与改进。

通过本论文的研究,可以帮助读者了解和应用单片机控制舵机的技术,为单片机在舵机控制方面的应用提供参考。

第五章:实验及结果分析在本章中,我们将介绍根据上述设计和实现的单片机控制舵机的程序的实验,并对实验结果进行分析。

单片机舵机角度控制

单片机舵机角度控制章节一:绪论近年来,随着科技的发展和应用领域的不断扩大,单片机成为了现代电子技术领域中不可或缺的一部分。

单片机舵机角度控制作为其中一个重要的应用,广泛应用于机器人、航模等领域。

本文旨在探讨单片机舵机角度控制的原理和实现方法,以及相关的优化方案。

章节二:单片机舵机角度控制的原理2.1 舵机的基本原理舵机是一种用来控制角度的驱动器件,它内部包含电机、减速机构和位置反馈装置。

其工作原理是通过控制电机的旋转方向和速度来调整舵机的输出角度。

2.2 单片机舵机控制的原理单片机作为舵机控制的核心部件,可以通过PWM信号来控制舵机的转动角度。

通过控制PWM信号的占空比,可以控制电机的转速,从而实现对舵机角度的精确控制。

章节三:单片机舵机角度控制的实现方法3.1 硬件设计舵机角度控制的硬件设计包括舵机的连接方式和电源电路的设计。

选择合适的舵机连接方式可以减少电源负载和电源干扰,提高舵机的响应速度和精度。

3.2 软件设计单片机舵机角度控制的软件设计包括舵机控制程序的编写和舵机角度的校正算法。

舵机控制程序主要负责控制PWM信号的产生,并根据需要调整舵机的角度;舵机角度的校正算法则是为了保证舵机能够精确控制到指定的角度。

章节四:单片机舵机角度控制的优化方案4.1 控制算法优化针对舵机在转动过程中的非线性特性和稳定性问题,可以采用PID控制算法进行优化。

PID控制算法通过对误差、偏差和积分项的综合计算,实现对舵机角度控制的精确调整和快速响应。

4.2 硬件优化通过选用高精度的舵机和高性能的电源电路,可以提高舵机的控制精度和响应速度。

另外,合理设计电路板布局和降低信号干扰也是硬件优化的关键。

总结:本文首先介绍了单片机舵机角度控制的原理,包括舵机的基本原理和单片机控制舵机的原理。

然后详细讨论了单片机舵机角度控制的实现方法,包括硬件设计和软件设计。

最后,针对单片机舵机角度控制存在的问题和局限性,提出了优化方案,包括控制算法优化和硬件优化。

基于AVR单片机的电动舵机控制器设计

基于 A VR 单 片 机 的 电 动 舵 机 控 制 器 设 计
李 霞 。 苏 渊 博
( 1 .西 北 工业 大学 机 械 工 程 学 院 , 西安 7 1 0 0 7 2 ; 2 .中航 工 业 国营 东 方 仪 器 厂 )
摘要 : 根 据 无人 机 控 制 系统 需 求 , 设计一款基 于 A V R 单 片机 的 数 字 电 动 舵 机 控 制 器 , 详 细介 绍 了该 电 动 舵 机 控 制 器 的
组成 、 工作原理 、 数字 P I D控制算法 , 实现 了对 舵机 的 伺 服 控 制 , 为 工 程 研 制 数 字化 舵 机 奠 定 了 良好 基 础 。 关 键 词 :电动舵 机 控 制 器 ; P I D; AVR单 片机 中 图 分 类 号 :V2 4 2 文 献 标 识 码 :A
El e c t r i c Po wer St eer i n g Con t r ol l er Ba s ed on AVR M CU
Li Xi a 一。S u Yu a n b o ,
( 1 .Co l l e g e o f Me c h a n i c a l En g i n e e r i n g,No r t h we s t e r n P o l y t e c h n i c a l Un i v e r s i t y, Xi ’ a n 7 1 0 0 7 2 , Ch i n a ; 2 . AVI C S t a t e - Ru n Do n g f a n g I n s t r u me n t Fa c t o r y ) Ab s t r a c t :Ac c o r d i n g t o t h e r e q u i r e me n t s o f UAV ( Un ma n n e d Ae r i a l Ve h i c l e )c o n t r o l s y s t e m ,a d i g i t a l e l e c t r i c p o we r s t e e r i n g c o n t r o l l e r b a s e d o n AVR MCU i s d e s i g n e d .Th e c o mp o s i t i o n,wo r k i n g p r i n c i p l e a n d t h e d i g i t a l P I D c o n t r o l a l g o r i t h m o f e l e c t r i c p o we r s t e e r i n g a r e i n t r o d u c e d i n d e t a i l .Th e r u d d e r s e r v o c o n t r o l i s r e a l i z e d .I t l a y s g o o d f o u n d a t i o n f o r e n g i n e e r i n g d e v e l o p me n t o f d i g i t a l s e r v o .
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、舵机控制程序分析
在此部分我们使用相位与频率修正 PWM 模式(简 称相频修正 PWM 模式)可以产生高精度的、相位与 频率都准确的 PWM 波形。我们通过 AD 采样得出的 1~500 连续变化的整数来控制输出周期为 20ms,脉宽 为 0.5~2.5ms 的脉冲,进而控制舵机由 -90°~90°角的 连续变化。
24 2011. 05
单片机制作
MCU
VCC
J1
U1
J3
1 2 3 4 5
VCC D0
D0
D1
D1
D2
D2
D3
D3
D4
D4
6
D5
D5
7
D6
D6
8
D7
D7
9
101 2PB0(源自0)3 PB1(T1)4 PB2(AIN0)
5 PB3(AIN1)
6 PB4(SS)
7 PB5(MOS1)
END
26 2011. 05
JP2
10
9 TD1
RESET VCC
8 6 4 2
7 5
TMS VCC
3 TD0
1 TCK
图2 Atmega16最小系统
J2
PD5 1
VCC
2
3
DJ
ADC0
VCC R1 10k
图3 舵机及AD输入
四、AD采样程序分析
在这里采用 Atmega16 片内 2.56V 的基准电压,0 通道输入连续转换模式。在默认条件下,逐次逼近电 路需要一个从 50 kHz 到 200 kHz 的输入时钟以获得最 大精度,ADC 模块包括一个预分频器,它可以由任何 超过 100 kHz 的 CPU 时钟来产生可接受的 ADC 时钟, 在此我们选用 8M 晶振 64 分频。ADC 通过逐次逼近的 方法将输入的模拟电压转换成一个 10 位的数字量,存 放于 ADC 数据寄存器 ADCH 及 ADCL 中,我们只要读 取这个数字量并转换成所需整型即可,具体过程由以下 程序完成。
PD
X1
13 X1
X2
12 X2
31 GND 30 AVCC
PC
3k 3k 3k R3 R4 R5
RESET C1
C2 22PF C3 22PF
VCC
R21K R8
10k
X1
Y1 8MH2 X2
RESET
VCC
VCC
JP1
1 3 5 7 9
VCC
2 4 6 8 10
VCC D5 D6 D7 RESET
REST
PC0(SCL) PC1(SDA) PC2(TCK) PC3(TMS) PC4(TD0) PC5(TDI) PC6(T0SC1) PC7(T0SC2)
22 SCL 23 SDA 24 TCK 25 TMS 26 TD0 27 TD1 28 PC6 29 PC7
VCC
32 AREF
PA J4
1 2 3 4 5 6 7 8 9 10
六、主函数
int main(void) { port_init(); // 端口初始化 adc_init(); timer0_init(); Pwm_init(); // 初始化定时器 while(1) { if(cnt>10) { adc_val=ADC_convert(); dis_val=Conv(adc_val); AD_val=dis_val/10; cnt=0; } delay(1000); Pwm_vary(); } }
void Pwm_init(void) { DDRA|=(1<<5); // 将 OC1A 管脚配置为输出 TCCR1A=0x80; // 相频修正 PWM 模式
TCCR1B=0x12; ICR1H=0x60; // 初始频率 ICR1L=0x80; OCR1AH=0x10; // 初始占空比 OCR1AL=0x80; } void Pwm_vary(void) //PWM 变化输出 { Pwm_s= AD_val/2; OCR1AL= Pwm_s; }
单片机制作
MCU
AVR单片机对舵机的精确控制
●●●
作者 / 赵田
本文介绍 AVR 单片机内部 AD 及对舵机的精确控 制,将一个 10k 的电位器作为控制器,通过 AVR 单片 机(Atmega16)采集电位器输出的模拟量实现舵机角 度的精确调节。
一、Atmega16简介
AVR 单片机是美国 ATMEL 公司生产的增强 RISC、 内载 Flash 的高性能 8 位单片机 , 其中 ATmega16 是 基于增强的 AVR RISC 结构的低功耗 8 位 CMOS 微控 制器。具有 16K 字节的系统内可编程 Flash( 具有同时 读写的能力,即 RWW),512 字节 EEPROM,1K 字节 SRAM,32 个通用 I/O 口线,32 个通用工作寄存器, 用于边界扫描的 JTAG 接口,支持片内调试与编程, 三个具有比较模式的灵活的定时器 / 计数器 (T/C), 片内 / 外中断,可编程串行 USART,有起始条件检测器的 通用串行接口,8 路 10 位具有可选差分输入级可编程 增益 (TQFP 封装 ) 的 ADC ,具有片内振荡器的可编程
2011. 05
25
单片机制作
MCU
void ADC_init(void) //AD 初始化子函数 { ADCSRA = 0xE4; //ADC 使能;ADC 开始转换; 连续转换 ;64 分频 ADCSRA |= (1<<ADEN)|(1<<ADSC )|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1); 可 采 用 ADC 中断 ADMUX = 0xC0; // 内部 2.56V 参考电压 ;输 入通道为 PD0 ;输出结果右对齐 } uint ADC_convert(void) // 模数转换子函数 { uint temp1,temp2; temp1=(uint)ADCL; temp2=(uint)ADCH; // 取得模数转换值 temp2=(temp2<<8)+temp1; return(temp2); } uint Conv(uint i) // 数据转换子函数 { long x; uint y; x=(5000*(long)i)/1024; // 将变量 i 转换成需要 现实的形式 1024 份 =2 的 10 次方(低 8 位高两位) y=(uint)x; //x 强制转换成整型 return y; }
看门狗定时器,一个 SPI 串行端口,以及六个可以通 过软件进行选择的省电模式。它执行速度快 , 有良好的 性能价格比 , 因而得到越来越广泛的应用。
二、舵机简介
舵机英文叫 Servo,也称伺服电机。其特点是结构 紧凑、易于安装调试、控制简单、大扭力、成本较低等。 舵机的主要性能取决于最大力矩和工作速度 ( 一般是 以秒 /60 度为单位 ),适用于那些需要角度不断变化并 保持的控制系统。舵机通常采用脉宽调制信号(PWM )控制,既给它提供一定的脉宽,它的输出轴就会保 持在一个相对应的角度上,无论外界转矩怎样改变, 直到给它提供一个另外宽度的脉冲信号,它才会改变 输出角度到新的对应的位置上。其控制信号的周期是 20ms 的脉宽调制(PWM)信号,如图 1 所示其中脉 冲宽度从 0.5~2.5ms,相对应舵盘的位置为 0°~180°角, 呈线性变化。
8 PB6(MIS0)
PB7(SCK)
VCC
PA0(ADC0) PA1(ADC1) PA2(ADC2) PA3(ADC3) PA4(ADC4) PA5(ADC5) PA6(ADC6) PA7(ADC7)
VCC 40 APC0 39 APC1 38 LEDLK
37 SECLK
36 BITLK 35 18820 34 BEEP 33 CSLSB
输入正脉冲宽度(周期为20ms) 0.5ms
伺服电机输出臂位置
~ -90°
1.0ms
~ -45°
1.5ms
~ 0°
2.0ms
~ 45°
2.5ms
~ 90°
图1 舵机输出转角与输入信号脉冲宽度的关系
三、硬件连接
Atmega16 最小系统见图 2 所示,在此我们采用 Atmega16 的 PA0(ADC0)口作为控制器的输入端连 接电位器中间一脚,电位器两边引脚分别接电源 VCC 和 GND。旋转电位器便可输出连续变化的电压,此时 通过 Atmega16 内部 10 位精度的 AD 实时采样,将输 入的模拟量进行转化,进而调节 PWM 的输出占空比。 舵机共有三根输入线,分别是电源线 VCC、地线 GND 和控制信号线(见图 3)。在这里我们采用 Atmega16 的 16 位定时器 / 计数器实现 PWM 信号的精确输出。
1 2 3 4 5 6 7 8 9 10
PH J2
1 2 3 4 5 6 7 8 9 10
RXD TXD INT0 INT1 PD4 PD5 PD6 PD7
VCC RXD
14
TXD 15
INT0 16
INT1 17
PD4 18
PD5 19
PD6 20
PD7 21
RESET 9
PD0(RXD) PD1(TXD) PD2(INT0) PD3(INT1) PD4(0C1B) PD5(0C1A) PD6(ICP) PD7(TOSC2)
相关文档
最新文档