DMA 2路ADC采集

  • 1、水位传感器和MQ2简介
    • 1.1、水位传感器:
    • 1.2、MQ2
  • 2、使用代码

  自己做小项目的时候需要测量水位和MQ2空气质量,使用的是DMA配合ADC进行采集,虽然我只是2路采集,但是可以在这个基础之上进行修改进行多路采集,水位传感器和MQ2其本质还是ADC模数转换,最后附上我自己的工程文件,有需要自己下载。

1、水位传感器和MQ2简介

1.1、水位传感器:


  Water Sensor水位传感器是一款简单易用、性价比较高的水位/水滴识别检测传感器,其是通过具有一系列的暴露的平行导线线迹测量其水滴/水量大小从而判断水位。轻松完成水量到模拟信号的转换,,达到水位报警的功效。

工作电压:DC3-5V
工作电流:小于20mA
传感器类型:模拟
检测面积:40mm x 16mm
制作工艺:FR4双面喷锡
工作温度:10℃-30℃
工作湿度:10%-90%无凝结
产品重量:3.5g
产品尺寸:62mm x 20mm x 8mm

1.2、MQ2

MQ2在网上的介绍还是比较多的,我就不再多说了,附上一个链接有需要的自己去看看https://blog.csdn.net/qq_41422043/article/details/89138213。
关于MQ2的电压转换请看:https://blog.csdn.net/qq_43313535/article/details/106389539

2、使用代码

初始化MDA,代码里面有详细的注释,

初始化PA0、PA1为模拟输入引脚,

主函数:

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "adc.h"
#include "mq2.h"//ADC实现ADC1通道0-1
extern __IO uint16_t  ADC_ConvertedValue[2];int main(void){ u8 i;float temp1,temp2;  delay_init();           //延时函数初始化    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级uart_init(115200);     //串口初始化为115200LED_Init();                //LED端口初始化LCD_Init();              Adc_Init();             //ADC初始化POINT_COLOR=RED;//设置字体为红色 LCD_ShowString(44,50,200,16,16,"Mini STM32");  LCD_ShowString(44,70,200,16,16,"ADC TEST");   LCD_ShowString(44,90,200,16,16,"QingYeMuRong");LCD_ShowString(44,110,200,16,16,"2020/7/19");    //显示提示信息POINT_COLOR=BLUE;//设置字体为蓝色LCD_ShowString(44,130,200,16,16,"ADC_CH0_VAL:");         LCD_ShowString(44,150,200,16,16,"ADC_CH0_VOL:");    //先在固定位置显示小数点   LCD_ShowString(44,170,200,16,16,"ADC_CH1_VAL:");        LCD_ShowString(44,190,200,16,16,"ADC_CH1_VOL:");    //先在固定位置显示小数点   while(1){temp1 = Get_ADCValue_Water(); //水位获取temp1 = temp1 *40/4096;temp2 = MQ2_GetPPM(); //气体printf("水位:%f mm , 气体:%f ppm\r\n",temp1,temp2);LCD_ShowxNum(140,130,ADC_ConvertedValue[0],4,16,0);//显示ADCC采样后的原始值        i=temp1; LCD_ShowxNum(140,150,i,2,16,0);//显示电压值  temp1-=i;                           //把已经显示的整数部分去掉,留下小数部分,比如3.1111-3=0.1111temp1*=1000;                           //小数部分乘以1000,例如:0.1111就转换为111.1,相当于保留三位小数。LCD_ShowString(156,150,200,16,16,".");LCD_ShowxNum(164,150,temp1,3,16,0X80);//LCD_ShowString(180,150,200,16,16," mm");LCD_ShowxNum(140,170,ADC_ConvertedValue[1],4,16,0);//显示ADCC采样后的原始值        i=temp2; LCD_ShowxNum(140,190,i,4,16,0);//显示ppmtemp2-=i;                           //把已经显示的整数部分去掉,留下小数部分,比如3.1111-3=0.1111temp2*=1000;  //LCD_ShowString(156,190,200,16,16,".");        //小数部分乘以1000,例如:0.1111就转换为111.1,相当于保留三位小数。//LCD_ShowxNum(172,190,temp2,3,16,0X80);//LCD_ShowString(180,190,200,16,16," ppm");LED0=!LED0;delay_ms(1000); }
}   

效果图:

使用的是正点原子的MINI板,但是并不影响代码的移植。
工程文件下载https://download.csdn.net/download/weixin_45488643/12640623。

STM32F103RC 2路ADC 采集显示,水位传感器、MQ2相关推荐

  1. STM32F103VET6单片机16路ADC采集通道,AD值3种处理方式效果对比

            首先来看一下采样电路的原理图,本电路运用了16个10K滑动变阻器对3.3V的系统电压进行分压.10K滑动变阻器有3个引脚,两端的引脚分别接到+3.3V和GND上,通过调节滑动变阻器,其 ...

  2. MSP430学习笔记11-八路ADC采集诺基亚5110液晶显示

    本程序采用的是八路ADC单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需 ...

  3. RT-Thread开发之路(5)— 通过ADC采集MQ2烟雾传感器数据

    通过ADC采集MQ2烟雾传感器数据 一.硬件准备 小熊派+E53_SF1扩展模块,如下所示: 二.开启ADC 打开board.h文件,找到ADC的配置处,按照其提示使用: 首先,打开[RT-Threa ...

  4. 单片机读取多路温度c语言,以51单片机为内核实现了两路温度采集与显示的温度控制器设计...

    1.引言 目前,温度控制器存在的问题是如何缩减成本,减少功耗,温度测量的准确性和多路温度的同时显示.本方案设计的实现基于C51单片机的两路温度控制器,做到成本最低化,精确度高,两路温度的显示和控制,能 ...

  5. STM32F103+ADC采集实时电压+LCD1602A显示

    STM32F103+ADC采集实时电压+LCD1602A显示 前言 代码 前言 刚开始学习STM32,用的是开发板是野火的指南者,这款板子网上资源很多.在学习ADC和LCD部分时,想利用手头仅有的LC ...

  6. Arduino Uno 使用 ADC采集电压在LCD上显示

    Arduino Uno 使用 ADC采集电压显示在LCD上 前言 所需组件 电路图及说明 Arduino使用ADC 代码 前言 在本教程中,我们将在 ARDUINO UNO 中介绍 ADC(模数转换) ...

  7. 合泰HT32单片机使用PDMA和ADC采集多路模拟值并显示在OLED屏上

    合泰单片机HT32F52352使用PDMA+ADC采集多路模拟值并显示在0.96寸OLED屏上. 最近在参加合泰杯的比赛,顺便写点小教程方便大家. 合泰HT32单片机开发环境搭建和配置教程:https ...

  8. STM32F407霸天虎HAL库学习笔记——使用ADC采集MQ135的数据并通过OLED显示

    STM32F407霸天虎HAL库学习笔记--使用ADC采集MQ135的数据并通过OLED显示 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil MQ135.c MQ135.h main函 ...

  9. 基于STC8G8K64U三通道高速ADC采集板

    设计采集板的目标 设计基于STC8G8K64U单片机的高速ADC采样板,可以为普通的电路实验提供快速波形采样的模块. 该模块也可以应用于全国大学生智能车竞赛声音信标组数据采集实验中. 设计采样板的技术 ...

最新文章

  1. 在 Windows XP 中,无法使用 Windows 图片和传真查看器来查看图片
  2. 北大数院校友最新成果登数学四大顶刊,偏微分方程突破,可用于W-GAN,现已回国任教中科大...
  3. 基于Springboot实现茶叶商城系统
  4. 【ABAP增强】基于源代码的增强
  5. 关于QueryRunner数据查询以及常用方法
  6. Python保存dict字典类型数据到Mysql,并自动创建表与列
  7. Linux内核网络协议栈3-创建socket(1)
  8. linux 定时任务 (php)
  9. 设计师必备的资源网站和灵感作品社区分享!
  10. 邪恶的编码魔咒,你中招没?
  11. cen7布署mysql数据库
  12. perl的USE和require
  13. window下python2和python3的共存
  14. win7纯净版64位系统下载
  15. 冰点下载:数据解析错误
  16. iOS-QQ自动聊天机器人
  17. python复数类型的虚部通过什么表示_在python中复数怎么表示
  18. 直播源码部署直播软件系统搭建!
  19. 华为FusionSphere虚拟化解决方案
  20. ImageLoader(UIL)自定义HTTP Header信息

热门文章

  1. ChatGPT教你面试阿里P6测试开发岗
  2. Emacs Stardict
  3. Mockito之使用Answer
  4. mac usb iso linux系统安装教程,Mac上制作linux系统U盘安装盘
  5. 《ZEMAX光学设计超级学习手册》一一2.5 其他
  6. c语言路径搜索,c语言程序(单元路劲及多元路径的搜索)
  7. 安卓Palette原理分析
  8. SIFT特征点提取及描述论文算法详解
  9. WebRTC音视频原理
  10. 在Windows上抓取Android手机的网络流量(另类用法-使用CainAbel + WireShark)