基于AVR单片机的舵机驱动电路详解

发布者:三青最新更新时间:2020-01-31 来源: elecfans关键字:AVR单片机  舵机  驱动电路 手机看文章 扫描二维码
随时随地手机看文章

  舵机( servo motor),又名伺服电机,主要是由外壳、电路板、马达、减速齿轮和电位器构成。舵机主要适用于那些需要角度不断变化并可以保持的控制系统,比如人形机器人的手臂和腿,车模和航模的方向控制。目前,市面上的成熟的舵机工业产品都来自日本、韩国和我国台湾地区。本文基于舵机工作的基本原理,选用Atmega8L单片机作为舵机电路板控制芯片,对舵机控制进行了一系列实验,并取得了很好的实验效果。

  舵机工作原理

  控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

  舵机驱动电路原理图_基于AVR单片机的舵机驱动电路详解

  基于AVR单片机的舵机驱动电路原理图

  1、舵机驱动电路板接受上位机PWM信号对电机控制

  舵机的转角范围通常是0到180度,舵机的转角通常由脉宽来控制,一般舵机都会有三根输入线(电源正,地,信号线), PWM信号由信号线输入,上位机产生周期为20ms左右的方波作为输入信号,方波的占空比决定舵机转的角度。如图1所示:

  舵机驱动电路原理图_基于AVR单片机的舵机驱动电路详解

  根据以上原理,设计出以下实验电路(图2)。 通过A tmega8L单片机和电机专用驱动芯片L298N的连接实现了舵机工作的基本原理。


  AVR单片机是Atmel公司8位RISC结构的单片机。具有系统内可编程存储器Flash电擦写可编程存储器EEPROM 随机访问存储器RAM 模数A/D转换器、大量I/0口、 16/8位定时器、 RS-232通讯接口UART,两线串行接口TWI以及其他很多功能的单片集成电路。本文采用的是AVR系列常用型号的产品ATMega8L系统时钟频率使用外部晶振7.3728Mhz,工作电压5V。

  舵机驱动电路原理图_基于AVR单片机的舵机驱动电路详解

  L298是双H型桥高电压大电流集成电路,可用来驱动继电器、线圈、直流电动机和步进电动机等。原理图如图3所示,Vss接逻辑控制的电源。Vs为电机驱动电源。 IN1-IN4输入引脚为标准TTL逻辑电平信号,ENAENB引脚则为使能控制端。本来是通过IN1--IN4输入用来控制H型桥的开与关即实现电机的正反转。ENA、ENB使能控制端,用来输入PWM信号实现电机调速。本文使用了L298N的一组H型桥,ENA使能控制端一直导通,输入IN1,IN2PWM信号来控制电机速度和转向。

  舵机驱动电路原理图_基于AVR单片机的舵机驱动电路详解

  上位机发出的PWM信号通过Atmega8L的一个I/0口读入,为了读取PWM信号的高电平时间,采用计数方式,使用Atmega8L的T0计数,T0是一个8位定时器,定时器分频为8分频,TCCR0=0x02。若读入PD0的PWM信号是高电平,T0开始计时,T0的计数值TCNTO从0计数到255,产生计数溢出中断,在中断服务程序里设置一个累加器COUNT,每次进入中断服务程序COUNT加1。当PD0口读入的PWM信号是低电平时,T 0停止计时,计算出整个PWM高电平时间是:INPUTPWM= (COUNTX 255+TCNT0) /921. 6 (ms)。若PD0口读入的PWM高电平时间低于1ms,在程序中处理INPUTPWM=lms,若高于2ms,则INPUTPWM= =2ms。


  在实验过程中,为了避免第一次计时未能从PWM信号的高电平始端计时,忽略PWM信号第一次高电平的时间,从PD0口读到的第二个高电平开始计时。


  读电位器电压,通过A/D转换读取当前电位器的电压值( ADC), Atmega8L提供最高分辨率为10位的A/D转换精度,即转换后的电压值从0到1023基于这一考虑,PDO读入的PWM信号转换为电压值target=(INPUTPWM-1)*1023,采用这一设计,有利于减少P WM信号转换为相应电压值的复杂过程。

  舵机驱动电路原理图_基于AVR单片机的舵机驱动电路详解

  用Atmega8L的Tl定时器产生两路16位pwm信号,其占空比决定控制电机的转速,占空比越大,电流持续时间越长,舵机转动越快,反之则越慢。为了与A/D转换的最大值1023相匹配,减少计算复杂度,T1定时器采用8号相位与频率修正PWM模式,让计数最大值ICR1=1023,其比较值0CR1=( ADC-target)。为了控制电机的转向,若(ADC- -  target)。随着电机的转动,采集的电位器的电压值不断与目标值接近,OCR1的值变小,占空比也变小,舵机转速也持续变慢,理论上,当ADC与target相等, 占空比为0,电机到达目标位置,停止转动。电机的控制流程图如图4所示。


  3、PID调节

  理论上当电机达到目标位置时,电机将停止转动,此时没有电流流过电机,但是舵机是一个需要保持角度的系统,并且保持力越大越好,即舵机的扭矩(torque)越大越好。具体而言,当电机到达目标位置时,电机停止转动,但是此时只要稍微有外力转动电机,电机将流过一个与外力相逆的电流来保持角度,这电流就是堵转电流。因此,一方面要求电机到达目标位置电流越来越小,这样容易停止,另一方面要求在偏离目标位置的微小区域电机又要有很大的堵转电流,使用PID(ProportionalIntegralDifferential)调节就可以很好的解决这一矛盾。


  PID可以很好地控制电机很快地到达目标位置而不产生抖动。对于舵机而言,上面提到的定时器T1的比较值0CR1就简单的给定为当前的电机位置和目标位置的差值,引入PID控制后,这一项乘以一个系数kp,作为OCR1的比例项;上一周期的电机位置和这一周期的电机位置的差值乘以系数kd,作为OCR1的微分项,这一项的作用主要是如果电机两次位置的差值很大的话,可以加快电机的转速;每一周期电机位置和目标位置的差值的平均值乘以系数ki作为OCR1的积分项,这一项的作用是使电机阻尼来减少电机抖动。把这三项加起来作为OCRl的值,作为T1定时器的比较值。公式如下:

  OCRl=kpX(ADC-target)+kiX((ADC-target)/n)+HkdX(adcvalpre-ADC)

  其中,ADC为采集到的当前电位器的值,target为目标位置转换后的电压值,沩周期次数,adcvalpre为上一周期的电压值,kp,ki,kd为选定的参数,选择合适的参数可以保证电机又快又稳的到达月标位置。


  4、舵机驱动板以TWI方式与上位机通讯对舵机的控制

  TWI(Two-wireSerialInterface)作为Atmega8L的一个通讯接口,提供最快400khz的数据传输率。IWI协议允许系统设计者只用两根双向传输线就可以将128个不同的设备互连到一起。这两根线一是时钟SCL,-是数据SDA。使用TWI方式通讯主要是可以精确的传输舵机要到达的指定位置以及方便地调节kp,ki,kd系数。本文采用两片Atmega8L单片机进行TWI通讯,PC机端采用RS-232与其中一片单片机通讯,模型如图5所示:

  舵机驱动电路原理图_基于AVR单片机的舵机驱动电路详解

  PC机端是一个用VC6写的串口通讯程序和单片机a通讯,单片机a主要是处理RS--232传输的数据并重新装包以TWI方式发送给舵机控制电路板。这样在实验过程中可以很方便的通过PC机端的串口通讯程序发送目标位置,kp,ki,kd等参数,容易调试。


  本文选用FutabaS3003舵机的机械部件,用图4的舵机控制电路,很好的控制电机到达目标位置,而且产生了较大的扭矩。作为一个实验产品,达到了预期的效果,下一步寻求更好的调节算法,更稳定地控制电机,产生更大的扭矩。

关键字:AVR单片机  舵机  驱动电路 引用地址:基于AVR单片机的舵机驱动电路详解

上一篇:avr单片机使用注意点汇总
下一篇:关于低频数字式相位仪的设计方案

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

三相步进电机驱动电路
三相步进电机的三相六拍工作方式,正转的绕组通电顺序:A、AB、B、BC、C、CA、A,反转的通电顺序:A、AC、C、CB、B、BA、B、A。 由于步进电机转子有一定的惯性以及所带负载的惯性,故步进电机的工作过程中不能及时的启动和停止,在启动时应慢慢的加速到预定速度,在停止前应逐渐减速到停止,否则,将产生失步现象。 步进电机的控制问题可总结为两点: 1、产生工作方式需要的时序脉冲; 2、控制步进电机的速度,使它始终遵循加速、匀速、减速的规律工作。 系统: 接口:
[单片机]
三相步进电机<font color='red'>驱动电路</font>
基于AVR单片机和FPGA实现DDS的数字式移相信号发生器设计方案
1 前 言 移相信号发生器属于信号源的一个重要组成部分,但传统的模拟移相有许多不足,如移相输出波形易受输入波形的影响,移相角度与负载的大小和性质有关,移相精度不高,分辨率较低等。而且,传统的模拟移相不能实现任意波形的移相,这主要是因为传统的模拟移相由移相电路的幅相特性所决定,对于方波、三角波、锯齿波等非正弦信号各次谐波的相移、幅值衰减不一致,从而导致输出波形发生畸变。目前利用DDS技术产生信号源的方法得到了广泛的应用,但是专用DDS芯片由于采用特定的集成工艺,内部数字信号抖动很小,不可以输出高质量的模拟信号。随着现代电子技术的发展,特别是随单片机和可编程技术的发展而兴起的数字移相技术却很好地解决了这一问题。在众多的单片机之
[单片机]
AVR单片机(学习ing)—(十)、ATMEGA16的同步串行接口SPI—02
1)那就是在之前的介绍中说过,在说一遍~~ 主机和从机的两个移位寄存器可以被认为是一个公开的16位环形移位寄存器,当数据从主机移向从机时,同时从机饿数据也向相反的放向移向主机。这就意味着在一个以为周期内,主机和从机的数据进行了交换。(不过这个例子里没有用到这个,下个会用到~~呵呵~~),早知道对谁都好~~ 2)配置为SPI主机时,SPI接口不自动控制SS引脚,必须由用户软件来处理。还有配置为从机时,只要SS引脚为高,SPI接口将一直保持睡眠状态,并保持MISO为三态。(这个章节的第一篇文章有详细的介绍~~自己可以看看~~) 3)SPI系统的发送方向只有一个缓冲器,而接收方向有两个缓冲器。也就是说,在发送时一定要等到移位过程全部结束
[单片机]
<font color='red'>AVR单片机</font>(学习ing)—(十)、ATMEGA16的同步串行接口SPI—02
avr单片机eeprom初始化配置说明
ATmega16 包含 512 字节的 EEPROM 数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。 EEPROM 的寿命至少为 100,000 次擦除周期。 EEPROM 的访问 由地址寄存器、数据寄存器和控制寄存器决定。 /* EEPROM 数据存储器 EEPROM 地址寄存器(EEARH 和 EEARL) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 Res: 保留
[单片机]
AVR单片机ATmega16之初识PWM模式
书本上开篇关于这部分的描述是这样讲的:相对于一般的8位单片机而言,AVR不仅配备了更多的定时/计数器接口,而且还是增强型的例如通过定时/计数器与比较匹配寄存器相互配合,生成占空比可调的方波信号,即脉冲宽度调制输出的PWM信号,用于D/A转换,电机无极调速控制、变频控制等(这样一段书上的导语其实已经很好地概括了PWM的产生原理,和用途),下面说说具体的实现方式吧(都是以T/C0定时器为例来实现的)。按照我自己的粗略总结大致分为三大类(下面会逐条详细解释):1.CTC模式产生(50%占空比的方波信号) 2.快速PWM模式 3.相位可调PWM模式 (因为是初学如有不对,还望朋友们指正!!!) 先来看看这东西对应的输出引脚吧: (根据
[单片机]
<font color='red'>AVR单片机</font>ATmega16之初识PWM模式
【维科杯】钧舵机器人参评“维科杯·OFweek 2023中国机器人行业年度核心零部件创新产品奖”
维科杯· OFweek 2023中国 机器人 行业年度评选(简称OFweek Robot Awards 2023),是由中国高科技行业门户OFweek维科网及旗下权威的机器人专业媒体-OFweek维科网·机器人共同举办。该评选是中国机器人行业内的一大品牌盛会,亦是高科技行业具有专业性、影响力的评选之一。 此次活动旨在为机器人行业的产品、技术和企业搭建品牌传播展示平台,并借助OFweek平台资源及影响力,向行业用户和市场推介创新产品与方案,鼓励更多企业投入技术创新;同时为行业输送更多创新产品、前沿技术,一同畅想机器人行业的未来。 维科杯· OFweek 2023中国机器人行业年度评选“OFweek Robot Awards 2023
[机器人]
任务2:PCB投板方法
本系列教程以AVR单片机为对象,介绍单片机的快速开发方法。 参考教材:《单片机技术及应用项目教程》 栾秋平 电子工业出版社 2019.6 第1版 本文介绍PCB投板方法,投板网站仅作参考。 一、下载投板软件 网址:https://www.sz-jlc.com/portal/appDownloadsWithConfig.html?init=android。 二、安装步骤 三、PCB投板步骤 1、启动“下单助手”,注册后进入。 2、选择“在线下单”。 3、将PCB打包成压缩文件 4、点击“上传pcb文件”,上传打包的压缩文件。 5、等待其分析完毕 6、确认上传文件无误后,输入线
[单片机]
任务2:PCB投板方法
基于单片机的光电二极管阵列驱动电路设计
引言 传统的紫外光谱检测系统采用单通道光电倍增管作为光电接收器件,由波长扫描机构实现波长扫描,完成整个波长范围内的光电检测。这种光电检测系统,体积庞大、测量速度慢,只能做单波长检测。光电二极管阵列属于多通道检测器件,因其具有体积小、单片集成信号读出电路、光谱响应宽等特点,可广泛应用于各类多通道光谱检测系统,目前大多数光电二极管阵列多采用现场可编程逻辑器件控制光电二极管时序电路的产生,会造成资源上的浪费。本文采用一片单片机80C52就能够完成包括光电二极管时序的产生、ADC采样及数据传输处理整个过程,解决了采用现场可编程器件资源浪费的问题,节省了成本。 本文所采用的光电二极管阵列是日本滨松公司生产的S3923-256Q,S3923
[电源管理]
基于单片机的光电二极管阵列<font color='red'>驱动电路</font>设计
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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