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

日期:2020-02-23编辑作者:市场观察

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

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

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

  根据以上原理,设计出以下实验电路(图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。

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

  上位机发出的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信号转换为相应电压值的复杂过程。

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

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

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

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

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

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

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

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  受负载变化的影响,即给电机某相线圈加一脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。虽然步进电机已被广泛地应用,但步进电机并不像普通的直流电机、交流电机那样在常规下使用。它必须在双环形脉冲信号、功率驱动电路等组成控制系统下使用。仪表步进电机属于步进电机中体积、功耗较小的类别,可以由单片机或专用芯片的引脚直接驱动,不需外接驱动器,因而在仪表中被用于指针的旋转控制。步进电机的细分技术是一种电子阻尼技术,其主要目的是提高电机的运转精度,实现步进电机步距角的高精度细分。其基本概念为:步进电机通过细分驱动器的驱动,其步距角变小了。如驱动器

  (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, “Unprogrammed”表示熔丝状态为“1”(禁止);“Programmed”表示熔丝状态为“0”(允许)。因此,配置熔丝位的过程实际上是 “配置熔丝位成为未编程状态“1”或成为已编程状态“0””。(2)在使用通过选择打钩“√”方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚“√”表示设置熔丝位状态为“0”还是为“1”。(3)使用CVAVR中的编程下载程序时应特别注意,由于CVAVR编程下载界面初始打开时,大部分熔丝位的初始状态定义为“1”,因此不要使用其编程菜单选项中的

  什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点:1:在相同的系统时钟下AVR运行速度最快;2: 芯片内部的Flsah、EEPROM、SRAM容量较大;3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作;5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强;6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。目前支持

  ,以便以后升级AVR内的软件。JTAG仿真接口设计仿线K的上拉电阻。重要说明:实际应用时,如果你不想使用JTAG仿线K的上拉电阻的影响,可以将JP1-JP4断开。电源设计AVR单片机最常用的是5V与3.3V两种电压。本线路以开关切换两种电压,并且以双色二极管指示(5V时为绿灯,3.3V时为红灯)。二极管D1防止用户插错电源极性。D2可以允许用户将电压倒灌入此电路内,不会损坏1117-ADJ。1117-ADJ的特性为1脚会有50uA的电流输出,1-2脚会有1.25V电压。利用这个特点,可以计算出输出电压:当 SW开关打向左边时,R6上的电流为 1.25/0.33

  AVR的主要特性高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作

  之间怎样进行互联呢?我们看以采用下面的这种方法。来看下电路图上图的PB5 PB6 PB7是单片机的三个I/O口。 可以看他它的第二功能是SPI功能PB5可以看到MOSI M是主 S 是从 意思就是主机输出 从机输入同理PB6 MISO 是主机输入从机输出也就是AVR的SPI正常工作的时候PB6这个引脚它应该是处于一个输入的状态PB5应该是一个输出的状态。我们就将PB5 与PB6之间串上一个10K的电阻然后再将PB6直接接到I/O上,下面我们可以简单的分析一下原理图是怎样正常工作的,首先这个DS1302对它处于写的状态的时候呢,DS1302的I/O口是处于输入的,而PB6呢也是一个输入口始终是一个输入口。

  用VC++开发的基于AVR单片机ATmega16的24路舵机控制器的上位机源码

  非常时期 少出门多学习: 多部TI实用课程奉上, 身体不能在路上就让灵魂在路上

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程

本文由上海市盘式电机有限公司发布于市场观察,转载请注明出处:基于AVR单片机的舵机驱动电路详解

关键词: 发电机烧灯

造成伺服电机异常振动和声音的原因是什么

【解答】机械方面:1)轴承润滑不良,轴承磨损;2) 紧固螺钉松动;3)电机内有杂物。 电磁方面:1)电机过载运...

详细>>