Skip to content

Commit f65ae21

Browse files
committed
Update bmp280.py
BMP280: add SDO support
1 parent 116bbf9 commit f65ae21

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

‎sensor/bmp280/bmp280.py‎

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,15 @@
1010
from micropython import const
1111
from machine import I2C
1212

13-
BMP280_I2C_ADDR = const(0x76)
14-
1513
class BMP280():
16-
def __init__(self, i2c):
14+
def __init__(self, i2c, addr = 0x76, SDO = None):
1715
self.i2c = i2c
16+
if SDO == None:
17+
self.addr = addr
18+
elif SDO:
19+
self.addr = 0x77
20+
else:
21+
self.addr = 0x76
1822
self.tb = bytearray(1)
1923
self.rb = bytearray(1)
2024
self.dig_T1 = self.get2Reg(0x88)
@@ -39,24 +43,24 @@ def __init__(self, i2c):
3943
self.P = 0
4044
self.version = '1.0'
4145

42-
def short(self, dat):
46+
def short(self, dat):
4347
if dat > 32767:
4448
return dat - 65536
4549
else:
4650
return dat
4751

4852
# set reg
49-
def setReg(self, reg, dat):
53+
def setReg(self, reg, dat):
5054
self.tb[0] = dat
51-
self.i2c.writeto_mem(BMP280_I2C_ADDR, reg, self.tb)
55+
self.i2c.writeto_mem(self.addr, reg, self.tb)
5256

5357
# get reg
54-
def getReg(self, reg):
55-
self.i2c.readfrom_mem_into(BMP280_I2C_ADDR, reg, self.rb)
58+
def getReg(self, reg):
59+
self.i2c.readfrom_mem_into(self.addr, reg, self.rb)
5660
return self.rb[0]
5761

5862
# get two reg
59-
def get2Reg(self, reg):
63+
def get2Reg(self, reg):
6064
return self.getReg(reg) + self.getReg(reg+1) * 256
6165

6266
def get(self):
@@ -95,7 +99,7 @@ def getPress(self):
9599
return self.P
96100

97101
# Calculating absolute altitude
98-
def getAltitude(self):
102+
def getAltitude(self):
99103
return 44330*(1-(self.getPress()/101325)**(1/5.255))
100104

101105
# sleep mode
@@ -104,5 +108,4 @@ def poweroff(self):
104108

105109
# normal mode
106110
def poweron(self):
107-
self.setReg(0xF4, 0x2F)
108-
111+
self.setReg(0xF4, 0x2F)

0 commit comments

Comments
 (0)