10084|1

50

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

疯壳AI开源无人机ADC(摇杆控制) [复制链接]

  • 摇杆

1.1摇杆简介

摇杆由于符合人体工学、操作简单,广泛应用于各类的玩具中,例如遥控飞机、遥控小车等。如下图所示为摇杆模块的实物图。

1.2摇杆原理

摇杆的根本无非就是两个电位器,也就是常说的滑动变阻器,一个电位器对应摇杆的上下方向,而另一个电位器则对应左右方向。

摇杆的引脚一端接上电、一端接上地,另外一端就负责采集电压的变化值即可,判断摇杆是往哪个方向拨动。

二、ADC

2.1 ADC简介

ADC(Analog-to-Digital Converter),模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

那么什么是模拟量、数字量呢?模拟量是指变量在一定范围连续变化的量;

数字量是物理量的一种,它们的变化在时间上是不连续的,总是发生在一系列离散的瞬间。这一类物理量叫做 数字量。如下图所示为数字量与模拟量的对比图。

那么把模拟信号准换成数字信号的过程就称为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 的工作电压范围、能否直接测量负电压等;

(4)ADC类型 :如上面所提到的,ADC 有多种类型,不同类型的 ADC 有不同的性能极限。

2.2 STM32的ADC

STM 32拥有1~3个ADC ,这些ADC可以独立使用,也可以使用双重模式(提高采样率)。STM 32的ADC是12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A / D转换可以单次、连续、扫描或间断模式执行。

ADC 的结果可以左对齐或右对齐方式存储在16位数据寄存器中。(因为在这里ADC是12位的,还有四位没有用到,所以存在左/右对齐的方式)。

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

PC2

通道13

PC3

PC3

PC3

通道14

PC4

PC4

通道15

PC5

PC5

通道16

温度传感器

通道17

内部参照电压

2.3 ADC寄存器

STM32的ADC相关寄存器较多,这里只讲几个比较重要的寄存器。

(1)ADC_CR1:模数转换控制寄存器1,如下图所示:

其中RES[1:0]为分辨率设置位,等于00时设置ADC为12位,等于01时设置ADC为10位,10时设置ADC为8位,11时设置ADC为6位。

(2)ADC_CR2:模数转换控制寄存器2,如下图所示:

其中ALIGN为数据对齐位,为0数据右对齐,为1数据左对齐;CONT为连续转换设置位,为0单次转换,为1连续转换;ADON为ADC转换使能位,关闭ADC转换,为1开启ADC转换。

(3)ADC_DR:模数转换数据寄存器,规则序列寄存器中的AD转化结果都将被存在这个寄存器中,而注入寄存器的转换结果被存储在ADC_DR中,如下图所示:

其中DATA[15:0]中存放转换的数据。

2.4 ADC摇杆控制实验

本节实验的内容是使用遥控手柄上的左摇杆控制遥控手柄上的电源指示灯、cocobit编程模式指示灯、连接无人机指示灯以及紧急降落指示灯。

左摇杆往拨电亮电源指示灯、往下拨点亮cocobit编程指示灯、往左拨点亮紧急降落指示灯、往右拨点亮连接无人机指示灯。这里采用了ADC1多路通道规则DMA采集的方式。左摇杆的ADC接线原理图如下图所示。

实验中会用到LED,其配置可以参考遥控器开发基础教程《GPIO》一节。整体的编写代码的思路如下表所示:

代码思路

1

管脚配置

  1. 定义结构体;
  2. 使能时钟(ADC+GPIO时钟);
  3. 填充结构体;
  4. 装载结构体。

2

ADC的DMA配置

  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的初始化代码如下。

ADC处理是在主循环中完成的,其代码如下图所示。

 

如下图所示,左摇杆往左拨,紧急降落指示灯亮起。

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

984.94 KB, 下载次数: 4

此帖出自创意市集论坛

最新回复

疯壳AI开源无人机      感谢楼主的整个xi整个系列系统性分享   谢谢   详情 回复 发表于 2021-9-12 13:13
点赞 关注
 
 

回复
举报

46

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

疯壳AI开源无人机      感谢楼主的整个xi整个系列系统性分享   谢谢

此帖出自创意市集论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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