import MCP230XX
import MCP342X
import smbus
'''
def pin(relay):
if relay>9:
return 0
if relay<1
return 7
return 8-relay
'''
import RPi.GPIO as GPIO
class unipi:
def __init__(self):
self.MCPRelays=MCP230XX.MCP230XX('MCP23008', 0x20, '16bit')
for i in range(8):
self.MCPRelays.set_mode(i, 'output', 0x68, )
#for ADC, not working yet
#self.MPCADC=MCP342X.MCP342x(smbus.SMBus(1), )
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
self.p = GPIO.PWM(18, 400)
self.relay_state=[False]*9
#print(self.relay_state)
def relay(self, num, value):
pin = 8-num
self.relay_state[num] = value
self.MCPRelays.output(pin, value)
def relay_flip(self, num):
self.relay(num, not self.relay_state[num])
def relay_is_on(self, num):
return self.relay_state[num]
def analogOut(self, level):
dc = level*10
#DEBUG
#print(dc)
self.p.ChangeDutyCycle(dc)