描述
<div>
<p style="line-height:1.8">注:* 为必填项</p>
<p style="line-height:1.8"><strong><span style="color:#0093e6">请在报名阶段填写 ↓</span></strong></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 1、项目功能介绍</h3>
<hr>
<p>作为一名检测工程师,为了进行精确的电压测试,我设计了一套高精度的电压实验装置。</p>
<p>本项目基于ESP32C3开发板、ADS1115IDGSR、LCD屏幕等元件,成本不到50元(详见BOM表)。ADS1115是一款具有16位分辨率的高精度模数转换器(ADC),测量的电压理论上能精确到0.00009375V。</p>
<p>本电压实验装置能提供四单端或两个差分输入,可用于物理实验、嵌入式开发、电压监测等领域。同时,结合其他测量模块,如DS18B20,还可以开展如温度测量等实验。</p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*2、项目属性</h3>
<hr>
<p style="line-height:1.8">本项目首次公开,为原创项目。</p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 3、开源协议</h3>
<hr>
<p>使用GPL3.0开源协议。100%开源,便于中小学生学习和二次开发。</p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"><strong><span style="color:#0093e6">请在竞赛阶段填写 ↓</span></strong></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*4、硬件部分</h3>
<hr>
<p><strong>1)PCB板</strong></p>
<p>电压实验装置各个模块均使用2.54排针连接,不使用任何贴片元件,方便焊接,以及元件的重复利用。因此,PCB板设计相对比较简单。</p>
<p>原理图:</p>
<p><img src="//image.lceda.cn/pullimage/RGVCg1CSdTUlKzasRPk6puBWmk8PKlYdrwo4zkMy.png" alt="" width="900" height="637"></p>
<p>PCB图:</p>
<p><img src="//image.lceda.cn/pullimage/hjZDtABWaHH56fV2bKgkjTxUjAYxPYe46oqcMh6h.png" alt="" width="500" height="428"></p>
<p>焊接图:</p>
<p><img src="//image.lceda.cn/pullimage/7p24zgJV0l2unjXNqfslI9SpQaOYIUCXJS1oe7BK.jpeg" alt="" width="600" height="506"></p>
<p><strong>2)主控芯片</strong></p>
<p>采用ESP32-C3开发板,支持UART、GPIO、SPI、I2C、ADC、PWM等接口。</p>
<p><img src="//image.lceda.cn/pullimage/Z1nZV89IFFfGIRUGL1sO9c9on2GtIBG9cZUU1KkU.png" alt="" width="600" height="97"></p>
<p><strong>3)LCD屏幕</strong></p>
<p>0.96寸LCD屏幕,基于SPI协议,用于显示测量结果。</p>
<p>4)ADS1115模块</p>
<p>ADS1115模块是基于ADS1115的4通道高分辨率的模拟到数字转换器。它的分辨率为16位,能提供四单端或两个差分输入。使用I2C协议,根据应用不同,可选择不同的I2C地址。</p>
<p>这是我另一个开源工程设计的ADS1115模块。这个ADS1115模块与某宝上出售的ADS1115模块一样,不同之处是调整了引脚的位置,尺寸更小,只有18mm*18mm。</p>
<br>
<p><img src="//image.lceda.cn/pullimage/nBUpMMl0ztEIitp4BGQbqQ7TJmBmrvIqaPcmA9mv.jpeg" alt="" width="200" height="204"></p>
<p>工程地址:<a href="https://oshwhub.com/cnas2023/ads1115-module" target="_blank">https://oshwhub.com/cnas2023/ads1115-module</a></p>
<p> </p>
<p><strong>5)测试线</strong></p>
<p>为了应对不同的测试需求,我们设计了3种测试线:杜邦线、磁吸线、鳄鱼夹线。</p>
<p>杜邦线:</p>
<p><img src="//image.lceda.cn/pullimage/ADWSz3HtM5i1arSnhEaCYaepeIHXv4RJfnuhYEC9.jpeg" alt="" width="300" height="171"></p>
<p>磁吸线:</p>
<p><img src="//image.lceda.cn/pullimage/XHzbcjkYHyG06pK2I5q4kYOdBEDULkl5OHk2irbA.jpeg" alt="" width="300" height="177"></p>
<p>鳄鱼夹线:</p>
<p><img src="//image.lceda.cn/pullimage/5eIWOzKUug66FQVGTAzFXSsX53glRvC199whHLmW.jpeg" alt="" width="300" height="192"></p>
<p> </p>
<p><strong>6)成果图</strong></p>
<p><img src="//image.lceda.cn/pullimage/iH7ksxTYlPEDRShEif4zhM6FqX9T0GHY3OdAVKEw.jpeg" alt="" width="600" height="460"></p>
<p style="line-height:1.8"><img src="//image.lceda.cn/pullimage/hDmSpU4Hs24IDJvH1EPUDWqwTt0THk3mMrl3lrYT.jpeg" alt="" width="700" height="566"></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*5、软件部分</h3>
<hr>
<p> </p>
<p><strong>1)实验装置程序(基于Micropython)</strong></p>
<p>ESP32C3驱动ADS1115,将模拟信号转换为数字信号,并将电压值显示在LCD屏幕上。</p>
<p>测试代码如下:</p>
<pre>import time<br>from machine import I2C, SPI, Pin<br>import st7735_spi<br>from lib.easydisplay import EasyDisplay<br>from lib.ads1x15 import ADS1115<br><br># 初始化SPI<br>spi = SPI(1, baudrate=20000000, polarity=0, phase=0, sck=Pin(2), mosi=Pin(3), miso=Pin(10))<br><br># 初始化ST7735显示屏,设置参数如宽度、高度、SPI接口、cs、dc等<br>dp = st7735_spi.ST7735(width=80, height=160, spi=spi, cs=7, dc=6, res=10, rotate=1, bl=8,<br> invert=False, rgb=True)<br><br># 使用EasyDisplay简化显示操作,设置显示参数如颜色格式、字体文件、是否立即显示等<br>ed = EasyDisplay(dp, "RGB565", font="/font/text_lite_16px_2312.v3.bmf", show=True, color=0xFFFF,<br> clear=False , auto_wrap=True, size=20)<br><br># 初始化ADS1115模块<br>i2c=I2C(0, sda=Pin(4), scl=Pin(5))<br>adc = ADS1115(i2c, address=72, gain=0)<br><br>while True:<br> value = adc.read(rate=0, channel1=0, channel2=None )<br> vol = adc.raw_to_v(value)<br> # 在LCD屏上显示电压<br> print('电压为:%.3fV' %vol, value)<br> ed.text('电压:%.3fV' %vol, 0, 0)<br> time.sleep(1)<br></pre>
<p>相关驱动详见附件。测试效果:</p>
<p>测试ESP32C3的3.3V引脚(3.0V-3.6V):</p>
<p><img src="//image.lceda.cn/pullimage/TRfzIemLCGWhzMKdRxSMErUMB5mBwwgK3TFInxHS.jpeg" alt="" width="600" height="442"></p>
<p>测试ESP32C3的5V引脚:</p>
<p><img src="//image.lceda.cn/pullimage/FTxSAcXa1JYAgloAq9QWL7I2OBdyZEWv7T7U523T.jpeg" alt="" width="600" height="400"></p>
<p>测试3.7V锂电池的电压(3.7V-4.2V):</p>
<p><img src="//image.lceda.cn/pullimage/Hsw0PEFiSikwa5bO5HWvqQ7IqXGgiA0Gj8q432iC.jpeg" alt="" width="600" height="439"></p>
<p> </p>
<p><strong>2)准确性验证</strong></p>
<p>我们将电压实验装置与万用表进行比对,以验证电压实验装置的准确性:</p>
<p>测试7号电池的电压(1.0V-1.7V):</p>
<p><img src="//image.lceda.cn/pullimage/LSYsczuwhDDMfLrCc3R19nTbwXmvjaduqzgM8Z5t.jpeg" alt="" width="800" height="601"></p>
<p>测试5号电池的电压(1.0V-1.7V):</p>
<p><img src="//image.lceda.cn/pullimage/SfxReg2fgnxC1JZ2mdWdm8KxUZ3jzFu5moSV3DBX.jpeg" alt="" width="800" height="601"></p>
<p>测试3.7V锂电池的电压(3.7V-4.2V):</p>
<p><img src="//image.lceda.cn/pullimage/m1PMPpMSjeoSgcetNvISeUPJZfvti2sloYZg5Oka.jpeg" alt="" width="800" height="601"></p>
<p>比对数据如下:</p>
<p><img src="//image.lceda.cn/pullimage/B9kNaxr66Q3yTyUxjB9yKYJPqEMfqA5BI26PMeNa.png" alt="" width="449" height="151"></p>
<p>经过比对,电压实验装置的测量结果平均比万用表高0.018V,电压实验装置的稳定性和准确性还是能符合实际需求。</p>
<p> </p>
<p><strong>3)Phyphox手机物理工坊APP</strong></p>
<p>Phyphox 是一款基于手机的物理实验平台应用程序,它可以将手机的传感器,如加速度计、陀螺仪、磁力计等,转化为进行科学实验所需的数据采集器。</p>
<p><img src="//image.lceda.cn/pullimage/AJjHOzBu3aPstN1qzkIAUYduAIgu58RcHbxTThaJ.jpeg" alt="" width="400" height="747"></p>
<p>Phyphox 支持蓝牙数据传输,可以连接ESP32等芯片,将传感器上的数据传输到phyphox。</p>
<p>Phyphox官方提供了基于ESP32和micropython的BEL库,下载地址:<a href="https://gitee.com/py2012/phyphox.git" target="_blank">https://gitee.com/py2012/phyphox.git</a></p>
<p>本实验装置的测量结果除了通过PC终端显示、LCD屏幕显示,还可以通过Phyphox显示在手机上,并形成可视化的图形,便于进行数据分析。</p>
<p>使用Phphox编辑器(<a href="https://phyphox.org/editor/" target="_blank">https://phyphox.org/editor/</a>)进行图形化的phyphox项目设计,界面如下:</p>
<p><img src="//image.lceda.cn/pullimage/u1KVds7TmGVw72HXzX8jfA3jsVqPmFQzFzFeYjt5.jpeg" alt="" width="400" height="354"></p>
<p>请使用phyphox APP扫描以下二维码,加载电压测量项目:</p>
<p><img src="//image.lceda.cn/pullimage/CmMus0ev3GYY7HZjiuCthhr3G3O9zGEi4XVRFzSU.png" alt="" width="165" height="165"></p>
<p>我们将电压测量实验装置的主代码进行修改如下:</p>
<pre>from phyphoxBLE import PhyphoxBLE<br>import time<br>from machine import I2C, SPI, Pin<br>import st7735_spi<br>from lib.easydisplay import EasyDisplay<br>from lib.ads1x15 import ADS1115<br><br># 初始化SPI<br>spi = SPI(1, baudrate=20000000, polarity=0, phase=0, sck=Pin(2), mosi=Pin(3), miso=Pin(10))<br><br># 初始化ST7735显示屏,设置参数如宽度、高度、SPI接口、cs、dc等<br>dp = st7735_spi.ST7735(width=80, height=160, spi=spi, cs=7, dc=6, res=10, rotate=1, bl=8,<br> invert=False, rgb=True)<br><br># 使用EasyDisplay简化显示操作,设置显示参数如颜色格式、字体文件、是否立即显示等<br>ed = EasyDisplay(dp, "RGB565", font="/font/text_lite_16px_2312.v3.bmf", show=True, color=0xFFFF,<br> clear=False , auto_wrap=True, size=20)<br><br># 初始化ADS1115模块<br>i2c=I2C(0, sda=Pin(4), scl=Pin(5))<br>adc = ADS1115(i2c, address=72, gain=0)<br><br> <br>def main():<br> p = PhyphoxBLE()<br> p.start("EPS32C3") #启动蓝牙<br><br> <br> while True:<br> value = adc.read(rate=0, channel1=0, channel2=None )<br> vol = adc.raw_to_v(value)<br> # 在LCD屏上显示电压<br> print('电压为:%.3fV' %vol, value)<br> ed.text('电压:%.3fV' %vol, 0, 0)<br> p.write(vol) #将电压数据发送到phyphox<br> time.sleep(1)<br> <br>if __name__ == "__main__":<br> main()</pre>
<p>相关驱动详见附件。测试结果如下:</p>
<p><img src="//image.lceda.cn/pullimage/ahDYelHfiZK0XjP1Z3huADqHeKceptuQ5ZJt7DCQ.jpeg" alt="" width="400" height="322"></p>
<p> </p>
<p> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*6、BOM清单</h3>
<hr>
<p style="line-height:1.8"><img src="//image.lceda.cn/pullimage/9CY6PnlsQBIYafHlOlwf8yVXEaRBEEvG7jv8PEOM.png" alt="" width="800" height="176"><img src="//image.lceda.cn/pullimage/wuoEoi5cw6WjkaWFX6dkUjCQ0AmI1OLbinFLPi9y.png" alt="" width="500" height="160"></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*7、大赛LOGO验证</h3>
<hr>
<p style="line-height:1.8"><img src="//image.lceda.cn/pullimage/7p24zgJV0l2unjXNqfslI9SpQaOYIUCXJS1oe7BK.jpeg" alt="" width="600" height="506"></p>
<p style="line-height:1.8"><img src="//image.lceda.cn/pullimage/iH7ksxTYlPEDRShEif4zhM6FqX9T0GHY3OdAVKEw.jpeg" alt="" width="600" height="460"></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 8、演示您的项目并录制成视频上传</h3>
<hr>
<p><strong>1)电容充放电实验</strong></p>
<p>电容充放电实验是物理学中一个基本的实验。刚好我们有一套电子积木,直接拼一个测试电路出来:</p>
<p><img src="//image.lceda.cn/pullimage/zPiZeyhv72xwSROAKC80U791q9cbeR7HIlKyZH3M.jpeg" alt="" width="800" height="414"></p>
<p>将电压实验装置的正负极分别接在电容的正负极上,将软件部分的代码中<code>value = adc.read(rate=0, channel1=0, channel2=None )</code>,改为<code>value = adc.read(rate=0, channel1=0, channel2=1 )</code>,测量通道0和1之间的电压。</p>
<p>通电测试,先对电容进行充电:</p>
<p><img src="//image.lceda.cn/pullimage/Dl40x5tivhbU2CAY6FjJXKEaqxz4IEsgQb4scN5J.jpeg" alt="" width="800" height="476"></p>
<p>当电压稳定时,电容充满,切换开关,进行放电实验。phyphox生成的电压曲线图如下:</p>
<p><img src="//image.lceda.cn/pullimage/4ODPct4cusnOt2RpMNBfES4RT31GHViwZeGKXcM3.jpeg" alt="" width="400" height="747"></p>
<p>实验情况详见视频。</p>
<p> </p>
<h5><span style="font-size:16px">2)超级电容充放电实验</span></h5>
<p>电子积木中的电容最大为<code>220uF</code>,充放电较快。我们使用一个<code>1F</code>的法拉电容(又称为超级电容)进行测试:</p>
<p><img src="//image.lceda.cn/pullimage/8426VzwpBGUrZFs8abhbwrvMmHoyg3UdDpEvvyPK.png" alt="" width="200" height="335"></p>
<p><img src="//image.lceda.cn/pullimage/NXysxUKD7XPyzlG1MoCskm6Qykk7t73EZrSWDWe5.jpeg" alt="" width="800" height="430"></p>
<p>由于电容值太大,我们将电阻改为100欧后,充放电仍非常慢。1F的法拉电容充放电实在是慢,我们没有完整充满电再放电。phyphox生成的电压曲线图如下:</p>
<p><img src="//image.lceda.cn/pullimage/xIG9W3UIZeae3SbCUALm5hnNJdO6slkn102ZMDOw.jpeg" alt="" width="400" height="747"></p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"><span style="font-size:14px"><a href="/posts/de460543d4cf4dacb5f0326612455578" target="_blank">前往查看更多详情 ></a></span></p>
<p style="line-height:1.8"> </p>
</div>
评论(0)