# BH1750FVI MTreg change test import smbus import time from decimal import Decimal, ROUND_HALF_UP bus = smbus.SMBus(1) addr = 0x23 def MTreg_set(mt, h_value, l_value): bus.write_byte(addr, h_value) bus.write_byte(addr, l_value) print('') time.sleep(0.5) def sensor_read(mt): luxRead = bus.read_i2c_block_data(addr, 0x10) # lx = int((luxRead[0]*256 + luxRead[1]) / 1.2 * (69 / mt)) lx = ((luxRead[0] << 8) | luxRead[1]) / 1.2 * (69 / mt) print('{:.2f}'.format(lx)) print('Illuminance: ' + str(Decimal(str(lx)).quantize(Decimal('0'), rounding=ROUND_HALF_UP)) + ' lux') time.sleep(0.5) print('' + '\n') bus.write_byte(addr, 0x10) time.sleep(1) # important setting (MIN=0.6) # MTreg=69(default) MTreg_set(69, 0x42, 0x65) sensor_read(69) # MTreg=31(min) MTreg_set(31, 0x40, 0x7f) sensor_read(31) # MTreg=254(max) MTreg_set(254, 0x47, 0x7e) sensor_read(254)