发 帖  
原厂入驻New
COCOFLY 教程 ——疯壳无人机·系列·遥控器开发基础【3】ADC(摇杆控制)
6 天前  190 无人机
分享
本帖最后由 小壳壳 于 2020-3-27 10:10 编辑

图片45.png


ADC(摇杆控制)
一、摇杆1.1摇杆简介
摇杆由于符合人体工学、操作简单,广泛应用于各类的玩具中,例如遥控飞机、遥控小车等。如下图所示为摇杆模块的实物图。
图片46.png
1.2摇杆原理
摇杆的根本无非就是两个电位器,也就是常说的滑动变阻器,一个电位器对应摇杆的上下方向,而另一个电位器则对应左右方向。
摇杆的引脚一端接上电、一端接上地,另外一端就负责采集电压的变化值即可,判断摇杆是往哪个方向拨动。
二、ADC2.1 ADC简介
ADCanalog-to-Digital Converter),模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

那么什么是模拟量、数字量呢?模拟量是指变量在一定范围连续变化的量;
数字量是物理量的一种,它们的变化在时间上是不连续的,总是发生在一系列离散的瞬间。这一类物理量叫做 数字量。如下图所示为数字量与模拟量的对比图。
图片47.png
那么把模拟信号准换成数字信号的过程就称为ADC模数转换。
模数转换器的种类很多,按工作原理的不同,可分成间接ADC和直接ADC。间接ADC是先将输入模拟电压转换成时间或频率,然后再把这些中间量转换成数字量,常用的有双积分型ADC。直接ADC则直接转换成数字量,常用的有并联比较型ADC和逐次逼近型ADC
并联比较型ADC:采用各量级同时并行比较,各位输出码也是同时并行产生,所以转换速度快。并联比较型ADC的缺点是成本高、功耗大。
逐次逼近型ADC:它产生一系列比较电压VR,但它是逐个产生比较电压,逐次与输入电压分别比较,以逐渐逼近的方式进行模数转换的。它比并联比较型ADC的转换速度慢,比双积ADC要快得多,属于中速ADC器件。
双积分型ADC:它先对输入采样电压和基准电压进行两次积分,获得与采样电压平均值成正比的时间间隔,同时用计数器对标准时钟脉冲计数。它的优点是抗干扰能力强,稳定性好;主要缺点是转换速度低
ADC常用的技术指标有:
1采样精度 即分辨率,一般有8位、10位、12位、16位等;
2转换时间 即每次采样所需的时间,表征 ADC 的转换速度,与 ADC 的时钟频率、采样周期、转换周期有关;
3工作电压 需要注意 ADC 的工作电压范围、能否直接测量负电压等;
4ADC类型 如上面所提到的,ADC 有多种类型,不同类型的 ADC 有不同的性能极限
2.2 STM32ADC
STM 32拥有1~3ADC ,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM 32ADC12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A / D转换可以单次、连续、扫描或间断模式执行。
ADC 的结果可以左对齐或右对齐方式存储16位数据寄存器中。(因为在这里ADC12位的,还有四位没有用到,所以存在左/右对齐的方式)
STM32F103系列的ADC外部通道和引脚对应的关系,如下图所示。
通道
ADC1
ADC2
ADC3
通道0
PA0
PA0
PA0
通道1
PA1
PA1
PA1
通道2
PA2
PA2
PA2
通道3
PA3
PA3
PA3
通道4
PA4
PA4
PF6
通道5
PA5
PA5
PF7
通道6
PA6
PA6
PF8
通道7
PA7
PA7
PF9
通道8
PB0
PB0
PF10
通道9
PB1
PB1
通道10
PC0
PC0
PC0
通道11
PC1
PC1
PC1
通道12
PC2
PC2
通道13
PC3
PC3
PC3
通道14
PC4
PC4
通道15
PC5
PC5
通道16
通道17
内部参照电压
2.3 ADC寄存器
STM32ADC相关寄存器较多,这里只讲几个比较重要的寄存器。
1ADC_CR1:模数转换控制寄存器1,如下图所示:
图片48.png
其中RES[1:0]为分辨率设置位,等于00时设置ADC12位,等于01时设置ADC10位,10时设置ADC8位,11时设置ADC6位。
2ADC_CR2:模数转换控制寄存器2,如下图所示:
图片49.png
其中ALIGN为数据对齐位,为0数据右对齐,为1数据左对齐;CONT为连续转换设置位,为0单次转换,为1连续转换;ADONADC转换使能位,关闭ADC转换,为1开启ADC转换。
3ADC_DR:模数转换数据寄存器,规则序列寄存器中的AD转化结果都将被存在这个寄存器中,而注入寄存器的转换结果被存储在ADC_DR中,如下图所示:
图片50.png
其中DATA[15:0]存放转换的数据。
2.4 ADC摇杆控制实验
本节实验的内容是使用遥控手柄上的左摇杆控制遥控手柄上的电源指示灯cocobit编程模式指示灯、连接无人机指示灯以及紧急降落指示灯。
左摇杆往拨电亮电源指示灯、往下拨点亮cocobit编程指示灯、往左拨点亮紧急降落指示灯、往右拨点亮连接无人机指示灯。这里采用了ADC1多路通道规则DMA采集的方式。左摇杆的ADC接线原理图如下图所示。
图片51.png
图片52.png
实验中会用到LED,其配置可以参考遥控器开发基础教程《GPIO》一节。整体的编写代码的思路如下表所示:
代码思路
1
管脚配置
1、定义结构体;
2、使能时钟(ADC+GPIO时钟);
3、填充结构体;
4、装载结构体。
2
ADCDMA配置
1、定义结构体;
2、填充结构体;
3、装载结构体;
4、使能DMA。
3
ADC初始化配置
1、定义结构体;
2、复位ADC;
3、使能内部电压;
4、填充结构体;
5、装载结构体;
6、配置ADC时钟;
7、设置ADC规则转换通道;
8、使能ADC的DMA传输
9、校准ADC;
10、使能软件触发ADC。
4
逻辑处理
1、获取ADC值、处理ADC值。
ADC的初始化代码如下。
图片53.png
图片54.png
图片55.png

ADC处理是在主循环中完成的,其代码如下图所示。
图片56.png
如下图所示,左摇杆往左拨,紧急降落指示灯亮起。
图片57.png



1

3.遥控器开发基础-【3】ADC(摇杆控制).pdf

下载积分: 积分 -1 分

984.94 KB, 下载次数: 0, 下载积分: 积分 -1 分

分享淘帖 显示全部楼层

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发资料
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表