
작동 전압 5V ~ 6V
import datetime
import Adafruit_MCP3008
class MG811Result:
STD_AIR_LOW = 31
STD_AIR_HIGH = 35
ONE_BREADTH_AIR_LOW = 15
ONE_BREADTH_AIR_HIGH = 18
__dout = 0
def __init__(self, dout):
self.__dout = dout
def raw(self):
return self.__dout
def compared_to_air(self):
if self.__dout > self.STD_AIR_HIGH:
return 'low'
elif self.__dout < self.STD_AIR_LOW:
return 'high'
else:
return 'normal'
class MG811:
__clk = 0
__dout_miso = 0
__din_mosi = 0
__chipselect_shutdown = 0
__adc = None
__in_analog_ch = None
__start_time = None
__calibration_time = None
def __init__(self, dout, din=7, ch_sh=5, clk=11,
in_analog_ch=0, calibration_time=60):
self.__dout_miso = dout
self.__din_mosi = din
self.__chipselect_shutdown = ch_sh
self.__clk = clk
self.__adc = Adafruit_MCP3008.MCP3008(
clk=clk,
cs=ch_sh,
miso=dout,
mosi=din
)
self.__in_analog_ch = in_analog_ch
self.__start_time = datetime.datetime.now()
self.__calibration_time = datetime.timedelta(seconds=calibration_time)
def read(self):
now = datetime.datetime.now()
return MG811Result(self.__adc.read_adc(self.__in_analog_ch))