ImageVerifierCode 换一换
格式:PDF , 页数:3 ,大小:810.41KB ,
资源ID:3178327      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3178327.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AVR单片机对舵机的精确控制.pdf)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、单片机制作MCU24本文介绍 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 个通用工作寄存器

2、,用于边界扫描的 JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行 USART,有起始条件检测器的通用串行接口,8 路 10 位具有可选差分输入级可编程增益(TQFP 封装)的 ADC,具有片内振荡器的可编程看门狗定时器,一个 SPI 串行端口,以及六个可以通过软件进行选择的省电模式。它执行速度快,有良好的性能价格比,因而得到越来越广泛的应用。二、舵机简介舵机英文叫 Servo,也称伺服电机。其特点是结构紧凑、易于安装调试、控制简单、大扭力、成本较低等。舵机的主要性能取决于最大力矩和工作速度(一般是以秒/60 度为单位),适用于那些

3、需要角度不断变化并保持的控制系统。舵机通常采用脉宽调制信号(PWM)控制,既给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。其控制信号的周期是20ms 的脉宽调制(PWM)信号,如图 1 所示其中脉冲宽度从 0.52.5ms,相对应舵盘的位置为 0 180 角,呈线性变化。作者/赵田AVR单片机对舵机的精确控制图1 舵机输出转角与输入信号脉冲宽度的关系三、硬件连接Atmega16 最小系统见图 2 所示,在此我们采用Atmega16 的 PA0(ADC0)口作为控制器的输入端连接电位器中

4、间一脚,电位器两边引脚分别接电源 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

5、的基准电压,0通道输入连续转换模式。在默认条件下,逐次逼近电路需要一个从 50 kHz 到 200 kHz 的输入时钟以获得最大精度,ADC 模块包括一个预分频器,它可以由任何超过 100 kHz 的 CPU 时钟来产生可接受的 ADC 时钟,在此我们选用 8M 晶振 64 分频。ADC 通过逐次逼近的方法将输入的模拟电压转换成一个 10 位的数字量,存放于 ADC 数据寄存器 ADCH 及 ADCL 中,我们只要读取这个数字量并转换成所需整型即可,具体过程由以下程序完成。图2 Atmega16最小系统 图3 舵机及AD输入12345678910123456789101234567891012

6、345678910123456784039383736353433222324252627282913579246810108642975313231301415161718192021913X2R21KX13k3k3kR3R4R512D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7PB0(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)RESTX1X2RXDTXDI

7、NT0INT1PD4PD5PD6PD7PA0(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)VCCVCCVCCVCCVCCAREFGNDAVCCVCCU1J1J3J4PAPCJ2PHPDVCCVCCVCCD5D6D7RESETTD1TMSTD0TCKV

8、CCVCCVCCVCCR8RESETRESET22PF22PF8MH2Y110kC1C2C3RESETX1X2JP1JP2RESETRXDTXDINT0INT1PD4PD5PD6PD7J2PD5VCCDJADC0123VCCR110k单片机制作MCU26 void ADC_init(void)/AD 初始化子函数 ADCSRA=0 xE4;/ADC 使能;ADC 开始转换;连续转换;64 分频 ADCSRA|=(1ADEN)|(1ADSC)|(1ADATE)|(1ADPS2)|(1ADPS1);可采用 ADC中断 ADMUX=0 xC0;/内部 2.56V 参考电压;输入通道为 PD0;输出结

9、果右对齐 uint ADC_convert(void)/模数转换子函数 uint temp1,temp2;temp1=(uint)ADCL;temp2=(uint)ADCH;/取得模数转换值 temp2=(temp28)+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;五、舵机控制程序分析在此部分我们使用相位与频率修正 PWM 模式(简称相频修正 PWM 模式)可以产生高精度的、相位与频率都准确的 PWM 波形。我们通过 AD 采样得出的1500 连续变化的整数来控制输出周期为 20ms,脉宽为 0.52.5ms 的脉冲,进而控制舵机由-90 90 角的连续变化。void Pwm_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

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

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