站内搜索
发作品签到
专业版

#第九届立创电赛#高精度电压测量实验装置

工程标签

2.3k
0
0
0

简介

本电压实验装置能提供四单端或两个差分输入,可用于物理实验、嵌入式开发、电压监测等领域。同时,结合其他测量模块,如DS18B20,还可以开展如温度测量等实验。

简介:本电压实验装置能提供四单端或两个差分输入,可用于物理实验、嵌入式开发、电压监测等领域。同时,结合其他测量模块,如DS18B20,还可以开展如温度测量等实验。
第九届立创电子设计开源大赛

开源协议

GPL 3.0

创建时间:2024-10-04 15:36:06更新时间:2024-11-01 19:46:39

描述

注:* 为必填项

请在报名阶段填写 ↓

 

* 1、项目功能介绍


作为一名检测工程师,为了进行精确的电压测试,我设计了一套高精度的电压实验装置。

本项目基于ESP32C3开发板、ADS1115IDGSR、LCD屏幕等元件,成本不到50元(详见BOM表)。ADS1115是一款具有16位分辨率的高精度模数转换器(ADC),测量的电压理论上能精确到0.00009375V。

本电压实验装置能提供四单端或两个差分输入,可用于物理实验、嵌入式开发、电压监测等领域。同时,结合其他测量模块,如DS18B20,还可以开展如温度测量等实验。

 

*2、项目属性


本项目首次公开,为原创项目。

 

* 3、开源协议


使用GPL3.0开源协议。100%开源,便于中小学生学习和二次开发。

 

请在竞赛阶段填写 ↓

 

*4、硬件部分


1)PCB板

电压实验装置各个模块均使用2.54排针连接,不使用任何贴片元件,方便焊接,以及元件的重复利用。因此,PCB板设计相对比较简单。

原理图:

PCB图:

焊接图:

2)主控芯片

采用ESP32-C3开发板,支持UART、GPIO、SPI、I2C、ADC、PWM等接口。

3)LCD屏幕

0.96寸LCD屏幕,基于SPI协议,用于显示测量结果。

4)ADS1115模块

ADS1115模块是基于ADS1115的4通道高分辨率的模拟到数字转换器。它的分辨率为16位,能提供四单端或两个差分输入。使用I2C协议,根据应用不同,可选择不同的I2C地址。

这是我另一个开源工程设计的ADS1115模块。这个ADS1115模块与某宝上出售的ADS1115模块一样,不同之处是调整了引脚的位置,尺寸更小,只有18mm*18mm。


工程地址:https://oshwhub.com/cnas2023/ads1115-module

 

5)测试线

为了应对不同的测试需求,我们设计了3种测试线:杜邦线、磁吸线、鳄鱼夹线。

杜邦线:

磁吸线:

鳄鱼夹线:

 

6)成果图

 

*5、软件部分


 

1)实验装置程序(基于Micropython)

ESP32C3驱动ADS1115,将模拟信号转换为数字信号,并将电压值显示在LCD屏幕上。

测试代码如下:

import time
from machine import I2C, SPI, Pin
import st7735_spi
from lib.easydisplay import EasyDisplay
from lib.ads1x15 import ADS1115

# 初始化SPI
spi = SPI(1, baudrate=20000000, polarity=0, phase=0, sck=Pin(2), mosi=Pin(3), miso=Pin(10))

# 初始化ST7735显示屏,设置参数如宽度、高度、SPI接口、cs、dc等
dp = st7735_spi.ST7735(width=80, height=160, spi=spi, cs=7, dc=6, res=10, rotate=1, bl=8,
                      invert=False, rgb=True)

# 使用EasyDisplay简化显示操作,设置显示参数如颜色格式、字体文件、是否立即显示等
ed = EasyDisplay(dp, "RGB565", font="/font/text_lite_16px_2312.v3.bmf", show=True, color=0xFFFF,
                clear=False , auto_wrap=True, size=20)

# 初始化ADS1115模块
i2c=I2C(0, sda=Pin(4), scl=Pin(5))
adc = ADS1115(i2c, address=72, gain=0)

while True:
   value = adc.read(rate=0, channel1=0, channel2=None )
   vol = adc.raw_to_v(value)
   # 在LCD屏上显示电压
   print('电压为:%.3fV' %vol, value)
   ed.text('电压:%.3fV' %vol, 0, 0)
   time.sleep(1)

相关驱动详见附件。测试效果:

测试ESP32C3的3.3V引脚(3.0V-3.6V):

测试ESP32C3的5V引脚:

测试3.7V锂电池的电压(3.7V-4.2V):

 

2)准确性验证

我们将电压实验装置与万用表进行比对,以验证电压实验装置的准确性:

测试7号电池的电压(1.0V-1.7V):

测试5号电池的电压(1.0V-1.7V):

测试3.7V锂电池的电压(3.7V-4.2V):

比对数据如下:

经过比对,电压实验装置的测量结果平均比万用表高0.018V,电压实验装置的稳定性和准确性还是能符合实际需求。

 

3)Phyphox手机物理工坊APP

Phyphox 是一款基于手机的物理实验平台应用程序,它可以将手机的传感器,如加速度计、陀螺仪、磁力计等,转化为进行科学实验所需的数据采集器。

Phyphox 支持蓝牙数据传输,可以连接ESP32等芯片,将传感器上的数据传输到phyphox。

Phyphox官方提供了基于ESP32和micropython的BEL库,下载地址:https://gitee.com/py2012/phyphox.git

本实验装置的测量结果除了通过PC终端显示、LCD屏幕显示,还可以通过Phyphox显示在手机上,并形成可视化的图形,便于进行数据分析。

使用Phphox编辑器(https://phyphox.org/editor/)进行图形化的phyphox项目设计,界面如下:

请使用phyphox APP扫描以下二维码,加载电压测量项目:

我们将电压测量实验装置的主代码进行修改如下:

from phyphoxBLE import PhyphoxBLE
import time
from machine import I2C, SPI, Pin
import st7735_spi
from lib.easydisplay import EasyDisplay
from lib.ads1x15 import ADS1115

# 初始化SPI
spi = SPI(1, baudrate=20000000, polarity=0, phase=0, sck=Pin(2), mosi=Pin(3), miso=Pin(10))

# 初始化ST7735显示屏,设置参数如宽度、高度、SPI接口、cs、dc等
dp = st7735_spi.ST7735(width=80, height=160, spi=spi, cs=7, dc=6, res=10, rotate=1, bl=8,
                      invert=False, rgb=True)

# 使用EasyDisplay简化显示操作,设置显示参数如颜色格式、字体文件、是否立即显示等
ed = EasyDisplay(dp, "RGB565", font="/font/text_lite_16px_2312.v3.bmf", show=True, color=0xFFFF,
                clear=False , auto_wrap=True, size=20)

# 初始化ADS1115模块
i2c=I2C(0, sda=Pin(4), scl=Pin(5))
adc = ADS1115(i2c, address=72, gain=0)


def main():
   p = PhyphoxBLE()
   p.start("EPS32C3")  #启动蓝牙

       
   while True:
       value = adc.read(rate=0, channel1=0, channel2=None )
       vol = adc.raw_to_v(value)
       # 在LCD屏上显示电压
       print('电压为:%.3fV' %vol, value)
       ed.text('电压:%.3fV' %vol, 0, 0)
       p.write(vol)                #将电压数据发送到phyphox
       time.sleep(1)
           
if __name__ == "__main__":
   main()

相关驱动详见附件。测试结果如下:

 

 

 

*6、BOM清单


 

*7、大赛LOGO验证


 

* 8、演示您的项目并录制成视频上传


1)电容充放电实验

电容充放电实验是物理学中一个基本的实验。刚好我们有一套电子积木,直接拼一个测试电路出来:

将电压实验装置的正负极分别接在电容的正负极上,将软件部分的代码中value = adc.read(rate=0, channel1=0, channel2=None ),改为value = adc.read(rate=0, channel1=0, channel2=1 ),测量通道0和1之间的电压。

通电测试,先对电容进行充电:

当电压稳定时,电容充满,切换开关,进行放电实验。phyphox生成的电压曲线图如下:

实验情况详见视频。

 

2)超级电容充放电实验

电子积木中的电容最大为220uF,充放电较快。我们使用一个1F的法拉电容(又称为超级电容)进行测试:

由于电容值太大,我们将电阻改为100欧后,充放电仍非常慢。1F的法拉电容充放电实在是慢,我们没有完整充满电再放电。phyphox生成的电压曲线图如下:

 

前往查看更多详情 >

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
phyphoxBLE.7z
2
2
ads1x15.py
1
3
easydisplay.py
0
4
st7735_spi.py
1
5
text_lite_16px_2312.v3.bmf
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航