大家好!我在EEPW论坛的用户名是sun5304。本次DIY活动是制作一台电子测光表,通过前期的订购元器件、测试各个元器件以及搜集资料等步骤,接下来就要准备硬件连接和软件编程阶段。
在前面测试阶段,遇到一些问题。比如测试BH1750时,测试程序如下:
我下载的是官方测试例程,结果总是出错,运行结果如下:
我看到错误提示是说SCL或SDA没有上拉,感觉是在I2C总线上没有接上拉电阻,于是我又在板子的二个相应端子各焊接一个10K电阻至VCC,再运行还是这个错误提示,翻来覆去折腾了二天时间查找错误。最后还是求助老师帮助解决了,由于我购买的是Rev的板子,与老师视频课所给的不一样,所以我下载的U2F固件不对,我又按照老师给的链接重新下载,从头再来一遍。这次就顺利的运行成功了。可以算是一个小插曲,也给我添加了一些收获。
测光表的系统框图如下:
BH1750光传感器通过I2C总线连接到主控板的SDA和SCL端;红蓝按钮连接到主控板的A4、A5模拟端口,并设置为输入端口,下拉状态,红色按钮作为转换ISO感光度,感光度预设为100、200、400、800、1600;蓝色按钮作为转换光圈值,预设为1、1.4、2、2.8、4、5.6、8、11、16、22、32;原主控板上的D1按键,作为确认键。板载的240X135 TFT显示屏已经连接好,使用时只需要下载ST7789驱动即可。
测光表的基本原理是:首先通过按键调整好感光度IOS,再根据你需要的景深调整好光圈值F,这时光传感器采集到现场的Lux值,直接可以转换成曝光值。老师的视频课给出了计算公式如下:
在程序中代入公式,得到需要的曝光值EV、快门速度S,并在显示屏显示出这几个数值,显示效果如下图:
在编程方面,由于我一直在从事硬件方面的工作,对软件编程只能再从头学起。所以这次的测光表制作活动,我参考、借鉴了几位群友的源代码,在此表示感谢!
我最后使用的代码如下:
同时也要感谢EEPW网站组织这样的活动!感谢各位老师的热心帮助!
B站 视频链接如下:
https://www.bilibili.com/video/BV1HD6PYdEce/?spm_id_from=333.337.search-card.all.click
EETV视频链接:https://v.eepw.com.cn/video/play/id/16187
2024年12月2日