树莓派4 PCF8591 光敏电阻传感器 求教

lang 10cm2020-12-271844 次点击
请问一下 光敏电阻传感器采集的模拟值怎么通过PCF8591输出的光阻值(0-255)转换为具体的光照强度,单位是lux。
收藏 ♥ 感谢
Spoony 小组长 2020-12-27 
看手册 https://wenku.baidu.com/view/034c78f69e3143323968933b.html
然后普通的光敏电阻只有一个输出的电压范围,你需要查一下这个光敏电阻的输出是不是线性的,以及测量的量程。
如果有这两个数值才好计算出流明单位。

建议的话直接购买这种传感器
https://detail.tmall.com/item.htm?id=617762209627
lang 10cm 2020-12-30 
你好 我用了你推荐的传感器 也遇到一点小问题
它能够测出来,但是过了一会儿就报错了 这是什么问题呢?
光照強度: 61.67lx
光照強度: 61.67lx
光照強度: 61.67lx
光照強度: 61.67lx
光照強度: 61.67lx
光照強度: 61.67lx
Traceback (most recent call last):
File "/home/pi/CLBDEMO/code/illuminance.py", line 45, in <module>
print(getIlluminance())
File "/home/pi/CLBDEMO/code/illuminance.py", line 34, in getIlluminance
res=bus.read_word_data(__DEV_ADDR,0)
OSError: [Errno 121] Remote I/O error


源代码:
import smbus
import time

#BH1750地址
__DEV_ADDR=0x23

#控制字
__CMD_PWR_OFF=0x00 #關機
__CMD_PWR_ON=0x01 #開機
__CMD_RESET=0x07 #重置
__CMD_CHRES=0x10 #持續高分辨率檢測
__CMD_CHRES2=0x11 #持續高分辨率模式2檢測
__CMD_CLHRES=0x13 #持續低分辨率檢測
__CMD_THRES=0x20 #一次高分辨率
__CMD_THRES2=0x21 #一次高分辨率模式2
__CMD_TLRES=0x23 #一次分辨率
__CMD_SEN100H=0x42 #靈敏度100%,高位
__CMD_SEN100L=0X65 #靈敏度100%,低位
__CMD_SEN50H=0x44 #50%
__CMD_SEN50L=0x6A #50%
__CMD_SEN200H=0x41 #200%
__CMD_SEN200L=0x73 #200%

bus=smbus.SMBus(1)
bus.write_byte(__DEV_ADDR,__CMD_PWR_ON)
bus.write_byte(__DEV_ADDR,__CMD_RESET)
bus.write_byte(__DEV_ADDR,__CMD_SEN100H)
bus.write_byte(__DEV_ADDR,__CMD_SEN100L)
bus.write_byte(__DEV_ADDR,__CMD_PWR_OFF)
def getIlluminance():
bus.write_byte(__DEV_ADDR,__CMD_PWR_ON)
bus.write_byte(__DEV_ADDR,__CMD_THRES2)
time.sleep(0.2)
res=bus.read_word_data(__DEV_ADDR,0)
#read_word_data
res=((res>>8)&0xff)|(res<<8)&0xff00
res=round(res/(2*1.2),2)
result="光照強度: "+str(res)+"lx"
return result


if __name__ == '__main__':
while True:
try:
print(getIlluminance())

except KeyboardInterrupt:
pass
Spoony 小组长 2020-12-30 
重启程序试试呢
lang 10cm 2020-12-31 
重启还是这样,,每次都是只能输出一会 然后就报错了
Spoony 小组长 2020-12-31 
@lang 猜测是读取太频繁了导致 IO 出错?在多次读取动作中间加个延迟,比如设置等待3秒看看。
lang 10cm 2021-01-02 
你好,还是不行,始终有问题,,,想请教一下你们这边的代码可以实现吗?
Spoony 小组长 2021-01-02 
@lang 没有用过这个,暂时没有代码能直接用。

登录注册 后可回复。




› 相关内容关注微信公众号