adc logic moved to separate script

pull/106/head
RobertGawron 2019-08-04 14:50:19 +01:00
rodzic fc175b8af7
commit 6ca21c39e7
2 zmienionych plików z 27 dodań i 6 usunięć

Wyświetl plik

@ -1,5 +1,6 @@
from serial import Serial
import datetime
import mcp3425
myDeviceId = '/dev/ttyUSB0'
myBaudrate = 9600
@ -10,17 +11,14 @@ logFile = open('data.log', 'w')
logFile.write("Time,Counter\n")
while True:
#dataIn = int(ord(ser.readline().strip()))
dataIn = ser.readline().strip()
msb = dataIn[0]
lsb = dataIn[1]
voltage = ((dataIn[0] & 0xf) << 8) | lsb;
(msb, lsb) = (dataIn[0], dataIn[1])
voltage = mcp3425.convert(msb, lsb, mcp3425.MCP3425_RESOLUTION.R14)
now = datetime.datetime.now()
logFile.write("{0},{1}\n".format(now, dataIn))
logFile.flush()
print(dataIn)
print(voltage)

Wyświetl plik

@ -0,0 +1,23 @@
# based on https://ww1.microchip.com/downloads/en/DeviceDoc/22072b.pdf
# assumed that gain = 1
from enum import Enum
class MCP3425_RESOLUTION(Enum):
R12 = 1
R13 = 2
R14 = 3
def convert(upperByte, lowerByte, resolution):
digitalToAnalog = lambda value, lsb, pga: (value * (lsb / pga))
digitalOutput = (upperByte << 8) | lowerByte;
if resolution == MCP3425_RESOLUTION.R12:
return digitalToAnalog(digitalOutput, (1 * 0.01), 1)
if resolution == MCP3425_RESOLUTION.R13:
return digitalToAnalog(digitalOutput, (250 * 0.00001), 1)
if resolution == MCP3425_RESOLUTION.R14:
return digitalToAnalog(digitalOutput, (62.5 * 0.0001), 1)