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

上传人:b****2 文档编号:3178327 上传时间:2022-11-19 格式:PDF 页数:3 大小:810.41KB
下载 相关 举报
AVR单片机对舵机的精确控制.pdf_第1页
第1页 / 共3页
AVR单片机对舵机的精确控制.pdf_第2页
第2页 / 共3页
AVR单片机对舵机的精确控制.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《AVR单片机对舵机的精确控制.pdf》由会员分享,可在线阅读,更多相关《AVR单片机对舵机的精确控制.pdf(3页珍藏版)》请在冰豆网上搜索。

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

单片机制作MCU24本文介绍AVR单片机内部AD及对舵机的精确控制,将一个10k的电位器作为控制器,通过AVR单片机(Atmega16)采集电位器输出的模拟量实现舵机角度的精确调节。

一、Atmega16简介AVR单片机是美国ATMEL公司生产的增强RISC、内载Flash的高性能8位单片机,其中ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。

具有16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。

它执行速度快,有良好的性能价格比,因而得到越来越广泛的应用。

二、舵机简介舵机英文叫Servo,也称伺服电机。

其特点是结构紧凑、易于安装调试、控制简单、大扭力、成本较低等。

舵机的主要性能取决于最大力矩和工作速度(一般是以秒/60度为单位),适用于那些需要角度不断变化并保持的控制系统。

舵机通常采用脉宽调制信号(PWM)控制,既给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。

其控制信号的周期是20ms的脉宽调制(PWM)信号,如图1所示其中脉冲宽度从0.52.5ms,相对应舵盘的位置为0180角,呈线性变化。

作者/赵田AVR单片机对舵机的精确控制图1舵机输出转角与输入信号脉冲宽度的关系三、硬件连接Atmega16最小系统见图2所示,在此我们采用Atmega16的PA0(ADC0)口作为控制器的输入端连接电位器中间一脚,电位器两边引脚分别接电源VCC和GND。

旋转电位器便可输出连续变化的电压,此时通过Atmega16内部10位精度的AD实时采样,将输入的模拟量进行转化,进而调节PWM的输出占空比。

舵机共有三根输入线,分别是电源线VCC、地线GND和控制信号线(见图3)。

在这里我们采用Atmega16的16位定时器/计数器实现PWM信号的精确输出。

输入正脉冲宽度(周期为20ms)0.5ms-90-45459001.0ms1.5ms2.0ms2.5ms伺服电机输出臂位置单片机制作MCU252011.05四、AD采样程序分析在这里采用Atmega16片内2.56V的基准电压,0通道输入连续转换模式。

在默认条件下,逐次逼近电路需要一个从50kHz到200kHz的输入时钟以获得最大精度,ADC模块包括一个预分频器,它可以由任何超过100kHz的CPU时钟来产生可接受的ADC时钟,在此我们选用8M晶振64分频。

ADC通过逐次逼近的方法将输入的模拟电压转换成一个10位的数字量,存放于ADC数据寄存器ADCH及ADCL中,我们只要读取这个数字量并转换成所需整型即可,具体过程由以下程序完成。

图2Atmega16最小系统图3舵机及AD输入12345678910123456789101234567891012345678910123456784039383736353433222324252627282913579246810108642975313231301415161718192021913X2R21KX13k3k3kR3R4R512D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7PB0(T0)PB1(T1)PB2(AIN0)PB3(AIN1)PB4(SS)PB5(MOS1)PB6(MIS0)PB7(SCK)PD0(RXD)PD1(TXD)PD2(INT0)PD3(INT1)PD4(0C1B)PD5(0C1A)PD6(ICP)PD7(TOSC2)RESTX1X2RXDTXDINT0INT1PD4PD5PD6PD7PA0(ADC0)PA1(ADC1)PA2(ADC2)PA3(ADC3)PA4(ADC4)PA5(ADC5)PA6(ADC6)PA7(ADC7)APC0APC1LEDLKSECLKBITLK18820BEEPCSLSBSCLSDATCKTMSTD0TD1PC6PC7PC0(SCL)PC1(SDA)PC2(TCK)PC3(TMS)PC4(TD0)PC5(TDI)PC6(T0SC1)PC7(T0SC2)VCCVCCVCCVCCVCCAREFGNDAVCCVCCU1J1J3J4PAPCJ2PHPDVCCVCCVCCD5D6D7RESETTD1TMSTD0TCKVCCVCCVCCVCCR8RESETRESET22PF22PF8MH2Y110kC1C2C3RESETX1X2JP1JP2RESETRXDTXDINT0INT1PD4PD5PD6PD7J2PD5VCCDJADC0123VCCR110k单片机制作MCU26voidADC_init(void)/AD初始化子函数ADCSRA=0xE4;/ADC使能;ADC开始转换;连续转换;64分频ADCSRA|=(1ADEN)|(1ADSC)|(1ADATE)|(1ADPS2)|(1ADPS1);可采用ADC中断ADMUX=0xC0;/内部2.56V参考电压;输入通道为PD0;输出结果右对齐uintADC_convert(void)/模数转换子函数uinttemp1,temp2;temp1=(uint)ADCL;temp2=(uint)ADCH;/取得模数转换值temp2=(temp28)+temp1;return(temp2);uintConv(uinti)/数据转换子函数longx;uinty;x=(5000*(long)i)/1024;/将变量i转换成需要现实的形式1024份=2的10次方(低8位高两位)y=(uint)x;/x强制转换成整型returny;五、舵机控制程序分析在此部分我们使用相位与频率修正PWM模式(简称相频修正PWM模式)可以产生高精度的、相位与频率都准确的PWM波形。

我们通过AD采样得出的1500连续变化的整数来控制输出周期为20ms,脉宽为0.52.5ms的脉冲,进而控制舵机由-9090角的连续变化。

voidPwm_init(void)DDRA|=(110)adc_val=ADC_convert();dis_val=Conv(adc_val);AD_val=dis_val/10;cnt=0;delay(1000);Pwm_vary();END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1