estou utilizando para um projeto um sensor de pressão e temperatura i2c em um raspberry pi zero w, porem o sensor me entrega um valor em binario, que deve ser transformado em decimal e feito algumas contas matematicas para assim pegar o valor final de pressão.
o problema que estou tento é que, realizando essa formula no python 3 recebo sem maiores problemas o valor da temperatura, porem no python 2 o valor vem todo errado
em uma analise mais profunda percebi que o problema esta na forma como o python realiza a conta, aparentemente o python 2 não consegue mostrar um valor "quebrado" como resultado de uma conta, por exemplo, se eu fizer 5 / 2, no python2 o resultado é 2, enquanto no python3 o resultado é 2.5
existe algum meio que fazer com que o python2 calcule igual o python3 ?? (preciso usar o python2)
a parte do meu codigo que pega o valor em binario, converte para decimal e realiza a conta é a seguinte:
pi = pigpio.pi()
h = pi.i2c_open(1, 0x78)
pi.i2c_write_device(h, [0xAC])
time.sleep(0.2)
(b, d) = pi.i2c_read_device(h, 6)
pi.i2c_close(h)
pi.stop()
p1 = bin(d[1])[2:].zfill(8) #BridgeDat1
p2 = bin(d[2])[2:].zfill(8) #BridgeDat2
p3 = bin(d[3])[2:].zfill(8) #BridgeDat3
t1 = bin(d[4])[2:].zfill(8) #TempDat1
t2 = bin(d[5])[2:].zfill(8) #TempDat2
press = p1+p2+p3
dpress = int(press, 2)
Pressure = (((((dpress/12305550)*100)*6)/100)-2.2)*1.042
temp = t1+t2
dtemp = int(temp, 2)
Temperature = (((dtemp/65536)*190)-40)*0.954