1010from micropython import const
1111from machine import I2C
1212
13- BMP280_I2C_ADDR = const (0x76 )
14-
1513class 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