ESP32片上模数转换ADC精度简单测试方案及测试数据分享

本文主要是介绍ESP32片上模数转换ADC精度简单测试方案及测试数据分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

了解ESP32测量电压的品质

***ESP32结合Phyphox进行移动实验的技术,渐而形成为一个创作而学术的氛围,至少在国内是这样——大家能够把实验中遇到的问题和灵感互相启发,这确实是相当好的事情——此刻,大家把目光重新转向了实验的最底层保证,ESP32测量电压的准确程度怎么样***

直接使用ESP32来测量电压,这个功能在单片机的术语里,是有专有词的:ADC,模数转换,Analog to Digital Converter。

直接使用ESP32测量引脚上的模拟电压,会有较大的波动,而且不准确,专业领域里会有众多的技术指标来说明。这里不想把它叙述得太玄乎,就说成了观察测量电压的品质,就是准确度和精确度怎么样。

ESP32肯定不会象数字万用表、示波器那样准确,所以对电压的数值要求不高、粗略的测量能应付,但精准的测量,最好不直接用ESP32。

我手上有个稳压电源模块,带数字面板,说明书上说是电压准确度能达到0.5%加1个字,分辨率0.01V。以前用示波器校过,精度0.01V没有问题,其他不敢说。

现在用它来给ESP32供电,由ESP32直接测量,得到图线如下:

在电压接近3V时误差最小。其他范围上,绝对误差最大可达0.2V;在3V以下,绝对误差均值约为0.15V。

我们的ESP32结合Phyphox实验较准确的测量电压,一直使用的是ADS1115,ADS1115是16位ADC芯片,精确度自然是ESP32无法比拟的。

现在使用稳压源和ADS1115测量同一电压情况,得测量结果如下:

可见ADS1115才是好的选择。

如果不使用ADS115就没有办法了么?不是的。

一种方案是使用内部参考电压,我也没有尝试过,很多网站上有教程。我没去看,麻烦。

另一种方案,是折中的修正一下,虽然仍然不准确,但若误差出现在小数点后的第2位即0.01V的位置,对于大多数高中物理的实验,也不错了吧?

ESP32的官方文档介绍了它的ADC不准确,官方是有言在先的。后面再琢磨修正这个事儿。

这篇关于ESP32片上模数转换ADC精度简单测试方案及测试数据分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871840

相关文章

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)