kopia lustrzana https://github.com/RobertGawron/IonizationChamber
adc logic moved to separate script
rodzic
fc175b8af7
commit
6ca21c39e7
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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)
|
Ładowanie…
Reference in New Issue