Arduino+ESP32-WROOM-32UE(二)-AD电压转化

这篇具有很好参考价值的文章主要介绍了Arduino+ESP32-WROOM-32UE(二)-AD电压转化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        来填(一)中埋下的坑了。今天我们利用Arduino+ESP32实现最简单的AD转化

        所谓AD,其实就是将模拟量转化为数字量的技术。我们今天用自己设计的分压模块来测试这一转化过程。

目录

一、ESP32中的ADC口

二、Arduino实现ESP32的AD转化

1.代码实现        

2.硬件检测

三、结果验证


一、ESP32中的ADC口

        查询ESP32的datasheet即可知道它的ADC口有哪些。下图1即为手册截图。

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

 图1 ESP32的ADC口分布

        或者我们也可以在网站上进行搜索,例如我就找到了一张很棒的图,总结了ESP32的各个GPIO口的功能,如下图2所示。

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

        图2 GPIO口功能(图片来源网络,网址见参考资料)

        所以,总结为:ESP32有两组ADC口

        ADC1共8个通道:GPIO32 - GPIO39
        ADC2共10个通道:GPIO0、GPIO2、GPIO4、GPIO12 - GPIO15、GOIO25 - GPIO27

        需要注意的是,ADC2与WIFI功能共用口,所以使用WIFI时避免使用ADC2

二、Arduino实现ESP32的AD转化

1.代码实现        

        ESP32在Arduino上实现AD只需一个语句: analogRead();

代码如下:

//ESP32+Arduino 12-bit ADC
//Voltage:0-3.3V
#define ANALOG_PIN_0   4

void setup(){
  Serial.begin(115200);
  pinMode(ANALOG_PIN_0,INPUT);
}

void loop() {
  int analog_value = 0;
  analog_value = analogRead(ANALOG_PIN_0);
  delay(1000);
  Serial.printf("Current Reading on Pin(%d)=%d\n",ANALOG_PIN_0,analog_value);
  delay(3000);
}

        在这里我们采用了GPIO4作为ADC检测口。利用Serial.printf()函数进行结果的输出(在串口监视器中)。

2.硬件检测

        有了AD的代码,还要有相应的硬件作为电压输出对其进行检测。故设计分压模块如下:

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

    图3 分压模块

        这其实就是一个滑动变阻器,将其三个引脚接出。我们利用ESP32的3V3引脚作为输入电压,利用该模块进行分压即可得到检测电压。简单电路图如下:

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

图(a)仿真连接图

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

图(b)自己绘制的连接图

     图4 分压模块连接图

        注意这里一定接地,否则输出错误,一直是0或者4095。

        ESP32的ADC精度为12位,故其检测到的值在0-4095()之间。所以,检测我们的AD结果是否正确,只需对当前引脚输出电压与串口输出值对比。若:

串口输出值/4095 ≈ 电压表测得引脚电压/3.3

则AD结果正确。

三、结果验证

        我们将开发板与硬件连接,运行代码,观察串口监视器输出。结果如下:

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

 图5 连接与测量

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

 图6 引脚电压检测

arduino实现ad转换连接,ESP32,单片机,嵌入式硬件,物联网

 图7 监视器输出

        监视器平均值约为2444,电压表测得结果为2.08V,故:

        二者相对误差为:

        该误差可能由ESP32输出电压不稳定等原因引起,有待改进。

        如果想要使其输出电压值,只需利用上述数学关系进行修改即可。

参考资料:

1. 图2所示GPIO功能引脚:https://www.cnblogs.com/chengwh/p/15424087.html

2. ESP32仿真网址:Wokwi - Online Arduino and ESP32 Simulator文章来源地址https://www.toymoban.com/news/detail-635286.html


        在争取用最简单的语言和排版完成有效的内容,在以后会继续改进。期待大家关注。
        下次更新应该就是 ESP32的WIFI 或蓝牙功能了。

到了这里,关于Arduino+ESP32-WROOM-32UE(二)-AD电压转化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于 Arduino 库实现 ESP32 TCP Server 应用例程

    ESP32 开启 WiFi Station 模式连接路由器 连上路由器后将获取到分配的 IP 地址 基于分配的 IP 地址创建 TCP Server 手机与 ESP32 连接同一路由器 查看 UART0 日志打印,获取 TCP Server 的 IP 地址 使用手机端 TCP 调试 APP 与 ESP32 创建的 TCP Server 建立连接

    2024年02月12日
    浏览(56)
  • Arduino IDE + Esp32 Cam + 实现视频流 + 开发环境部署

    1、开发环境 Arduino ide 版本:2.2.1 esp32工具:2.0.5 示例代码

    2024年02月08日
    浏览(69)
  • Arduino ESP32开发环境搭建入门教程,esp32的arduino开发环境搭建教程,arduino导入eps32开发插件

    从官网下载 Arduino IDE 软件并安装。下载链接:Software | Arduino 网盘链接:链接:https://pan.baidu.com/s/1ZuSbo1BPy8XyyXzfl4KNzg?pwd=f8yd 提取码:f8yd 1、找到Arduino IDE安装目录,打开hardware文件夹。 2、在hardware文件夹中创建一个espressif文件夹。 3、将解压出的文件夹移动到espressif文件夹中,

    2024年02月13日
    浏览(53)
  • 基于 Arduino 库实现 ESP32 使能 WiFi AP + TCP Server 的应用

    ESP32 开启 WiFi AP 模式创建 WiFi 热点 定义 IP 地址 创建 TCP Server 使用手机连接 ESP32 创建的 AP 热点 查看 UART0 日志打印,获取 TCP Server 的 IP 地址 使用手机端 TCP 调试 APP( 网络助手 ) 与 ESP32 创建的 TCP Server 建立连接

    2024年02月12日
    浏览(42)
  • arduino-esp32:基于TFT-eSPI库实现触摸显示屏

    在arduino的IDE上已经搭建好了ESP32环境的话,写写小应用的话还是很简单的,毕竟有这么多优秀的库。 之前用自己买的TFT屏试了一下TFT-eSPI库的驱动效果,显示效果挺好的,但是触摸一直没用上。最近有空了弄了一下。 我的屏幕是2.2寸/2.4/2.8/3.2/3.5/4.0寸TFT触摸彩色SPI串口液晶屏

    2023年04月09日
    浏览(40)
  • Arduino 合宙 ESP32 S3 + OV2640 实现低成本SD存储卡相机(ESP32连接SD模块引脚)

    合宙ESP32 S3 板载16M flash,8m psram和一个FPC相机接口,价格却不到30元,无疑比价格将近50元的第三方ESP32 S3和将近30的ESP32 Cam更具性价比。 但是虽然板载FPC,由于接口冲突,导致相机与psram不能同时开启,作为ESP32 Cam的替代品来看,还缺少了板载SD卡,而且作为一块发布不久的开发

    2024年02月04日
    浏览(48)
  • 【雕爷学编程】Arduino智能家居之ESP32-CAM模块实现WebSocket实时监控

    Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来

    2024年02月04日
    浏览(51)
  • Arduino ESP32

    Arduino官网 1.下载Arduino IDE=SOFTWARE页面下载所需适配的操作系统(Windows, Linux, macOS)等; 其中Windows版本MSI installer是需要安装的。zip的解压即可运行不需要安装。 2.Arduino IDE中添加ESP32开发板软件包数据: Arduino IDE:文件首选项附加开发板管理器网址 中加入Arduino core for esp32的地

    2024年02月15日
    浏览(55)
  • ESP32-Touch(Arduino)

    Touch 传感器是一种外围设备,具有内部振荡器电路,可在固定时间段内测量相应GPIO引脚上的充电/放电频率。 因此,这些触摸传感器也被称为电容式传感器。例如,如果您触摸这些引脚中的任何一个,手指电荷将改变这个周期数, 通过更改连接到触摸传感器的 RC 电路。 Tou

    2024年01月16日
    浏览(35)
  • Arduino ESP32的串口

    在Arduino的核心中有三个串口,分别是Serial,Serial1,和Serial2. 当然ESP32也可以使用软串口。但硬件串口更稳健(我这样理解)。但Serial1这个串口不能使用,因为端口GPIO6 ~ GPIO11都用到了Flash。那如何使用你的Serial1串口哪?可以通过改变串口1的rxPin和txPin的方法,具体如下。 在

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包