def __init__(self, address=0x20, num_gpios=16, columnCount=4): self.mcp2 = Adafruit_MCP230XX(address, num_gpios) # Constants self.INPUT = 0 self.OUTPUT = 1 self.HIGH = 1 self.LOW = 0 if columnCount is 3: self.KEYPAD = [ [1,2,3], [4,5,6], [7,8,9], ["*",0,"#"] ] self.ROW = [6,5,4,3] self.COLUMN = [2,1,0] elif columnCount is 4: self.KEYPAD = [ [1,2,3,"A"], [4,5,6,"B"], [7,8,9,"C"], ["*",0,"#","D"] ] self.ROW = [15,14,13,12] self.COLUMN = [11,10,9,8] else: return
def generateCube(filename): fp = open(filename, "r") cubeData = json.load(fp) fp.close() if not "expanders" in cubeData: raise Exception("missing expander definition") expanders = {} for expander in cubeData["expanders"]: expanders[expander["id"]] = \ Adafruit_MCP230XX(busnum = expander["bus"], address = expander["address"], num_gpios = expander["gpio"]) if not "cube" in cubeData: raise Exception("missing cube data") cube = LEDCube() if not "levels" in cubeData["cube"]: raise Exception("levels data missing for cube") for level in cubeData["cube"]["levels"]: cube.addLevel(expanders[level["expander"]], level["pin"]) if not "columns" in cubeData["cube"]: raise Exception("column data missing for cube") for col in cubeData["cube"]["columns"]: cube.addCol(expanders[col["expander"]], col["pin"]) return cube
def __init__(self, busnum=0, pin_rs=15, pin_e=13, pins_db=[12, 11, 10, 9], pin_rw=14): self.pin_rs = pin_rs self.pin_e = pin_e self.pin_rw = pin_rw self.pins_db = pins_db self.mcp = Adafruit_MCP230XX(busnum=busnum, address=0x20, num_gpios=16) self.mcp.config(self.pin_e, self.OUTPUT) self.mcp.config(self.pin_rs, self.OUTPUT) self.mcp.config(self.pin_rw, self.OUTPUT) self.mcp.output(self.pin_rw, 0) self.mcp.output(self.pin_e, 0) for pin in self.pins_db: self.mcp.config(pin, self.OUTPUT) self.write4bits(0x33) # initialization self.write4bits(0x32) # initialization self.write4bits(0x28) # 2 line 5x7 matrix self.write4bits(0x0C) # turn cursor off 0x0E to enable cursor self.write4bits(0x06) # shift cursor right self.displaycontrol = self.LCD_DISPLAYON | self.LCD_CURSOROFF | self.LCD_BLINKOFF self.displayfunction = self.LCD_4BITMODE | self.LCD_1LINE | self.LCD_5x8DOTS self.displayfunction |= self.LCD_2LINE """ Initialize to default text direction (for romance languages) """ self.displaymode = self.LCD_ENTRYLEFT | self.LCD_ENTRYSHIFTDECREMENT self.write4bits(self.LCD_ENTRYMODESET | self.displaymode) # set the entry mode # turn on backlights! self.mcp.config(6, self.mcp.OUTPUT) self.mcp.config(7, self.mcp.OUTPUT) self.mcp.config(8, self.mcp.OUTPUT) self.mcp.output(6, 0) # red self.mcp.output(7, 0) # green self.mcp.output(8, 0) # blue # turn on pullups self.mcp.pullup(self.SELECT, True) self.mcp.pullup(self.LEFT, True) self.mcp.pullup(self.RIGHT, True) self.mcp.pullup(self.UP, True) self.mcp.pullup(self.DOWN, True) self.mcp.config(self.SELECT, self.mcp.INPUT) self.mcp.config(self.LEFT, self.mcp.INPUT) self.mcp.config(self.RIGHT, self.mcp.INPUT) self.mcp.config(self.DOWN, self.mcp.INPUT) self.mcp.config(self.UP, self.mcp.INPUT)
def setup_soundboard_bus(): soundboard = Adafruit_MCP230XX(address=SOUNDBOARD_ADDR, num_gpios=16) soundboard.pullup(0, ENABLE) soundboard.pullup(1, ENABLE) soundboard.pullup(2, ENABLE) soundboard.pullup(3, ENABLE) soundboard.pullup(4, ENABLE) soundboard.pullup(5, ENABLE) soundboard.pullup(6, ENABLE) soundboard.pullup(7, ENABLE) soundboard.pullup(8, ENABLE) soundboard.pullup(9, ENABLE) soundboard.pullup(10, ENABLE) soundboard.pullup(11, ENABLE) soundboard.pullup(12, ENABLE) soundboard.pullup(13, ENABLE) soundboard.pullup(14, ENABLE) soundboard.pullup(15, ENABLE) return soundboard
def initGPIO(self): if (self.__Mode == "GPIO"): GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(self.__GPIOup, GPIO.OUT) GPIO.setup(self.__GPIOdown, GPIO.OUT) GPIO.output(self.__GPIOup, GPIO.HIGH) GPIO.output(self.__GPIOdown, GPIO.HIGH) elif (self.__Mode == "MCP230xx"): self.__mcp = Adafruit_MCP230XX(busnum=1, address=0x20, num_gpios=16) self.__mcp.config(self.__GPIOup, self.__mcp.OUTPUT) self.__mcp.config(self.__GPIOdown, self.__mcp.OUTPUT) self.__mcp.output(self.__GPIOup, 1) self.__mcp.output(self.__GPIOdown, 1) self.__stop_event = threading.Event() self.__ShutterThread = threading.Thread(target=self.Act) self.__ShutterThread.daemon = True self.__ShutterThread.start()
def __init__(self, address=0x21, num_gpios=8, columnCount=3): self.mcp2 = Adafruit_MCP230XX(address, num_gpios) # Constants self.INPUT = 0 self.OUTPUT = 1 self.HIGH = 1 self.LOW = 0 if columnCount is 3: # CONSTANTS self.KEYPAD = [[1, 2, 3], [4, 5, 6], [7, 8, 9], ["*", 0, "#"]] self.ROW = [6, 5, 4, 3] self.COLUMN = [2, 1, 0] elif columnCount is 4: self.KEYPAD = [[1, 2, 3, "A"], [4, 5, 6, "B"], [7, 8, 9, "C"], ["*", 0, "#", "D"]] self.ROW = [7, 6, 5, 4] self.COLUMN = [3, 2, 1, 0] else: return
def __init__(self, pin_rs=0, pin_e=1, pins_db=[2, 3, 4, 5], GPIO=None): # Emulate the old behavior of using RPi.GPIO if we haven't been given # an explicit GPIO interface to use if not GPIO: #import RPi.GPIO as GPIO GPIO = Adafruit_MCP230XX(busnum=1, address=0x21, num_gpios=16) self.GPIO = GPIO self.pin_rs = pin_rs self.pin_e = pin_e self.pins_db = pins_db GPIO.config(self.pin_e, GPIO.OUTPUT) GPIO.config(self.pin_rs, GPIO.OUTPUT) #self.GPIO.setmode(GPIO.BCM) #self.GPIO.setup(self.pin_e, GPIO.OUT) #self.GPIO.setup(self.pin_rs, GPIO.OUT) for pin in self.pins_db: #self.GPIO.setup(pin, GPIO.OUTPUT) self.GPIO.config(pin, GPIO.OUTPUT) self.write4bits(0x33) # initialization self.write4bits(0x32) # initialization self.write4bits(0x28) # 2 line 5x7 matrix self.write4bits(0x0C) # turn cursor off 0x0E to enable cursor self.write4bits(0x06) # shift cursor right self.displaycontrol = self.LCD_DISPLAYON | self.LCD_CURSOROFF | self.LCD_BLINKOFF self.displayfunction = self.LCD_4BITMODE | self.LCD_1LINE | self.LCD_5x8DOTS self.displayfunction |= self.LCD_2LINE """ Initialize to default text direction (for romance languages) """ self.displaymode = self.LCD_ENTRYLEFT | self.LCD_ENTRYSHIFTDECREMENT self.write4bits(self.LCD_ENTRYMODESET | self.displaymode) # set the entry mode self.clear()
# Improved by Tom Paulus, @tompaulus from time import sleep from Adafruit_I2C import Adafruit_I2C from Adafruit_MCP230xx import Adafruit_MCP230XX import smbus # =========================================================================== # CharLCDPlate # =========================================================================== # This class is meant to be used with the 16x2 LCD # displays available from Adafruit # change busnum = 0 to bbusnum = 1 if you have a rev 2 Pi! mcp = Adafruit_MCP230XX(busnum=0, address=0x20, num_gpios=16) class Adafruit_CharLCD: OUTPUT = 0 INPUT = 1 # LED colors RED = 0x01 GREEN = 0x02 BLUE = 0x04 YELLOW = 0x03 TEAL = 0x06 VIOLET = 0x05 ON = 0x07 OFF = 0x0
#!/usr/bin/env python2 import smbus from time import sleep from Adafruit_MCP230xx import Adafruit_MCP230XX import picamera counter = 0 slice_of_pi = Adafruit_MCP230XX(0x20, 8) def setup(): slice_of_pi.config(0, Adafruit_MCP230XX.OUTPUT) slice_of_pi.config(7, Adafruit_MCP230XX.INPUT) slice_of_pi.output(0, 1) def take_video(): global counter counter += 1 with picamera.PiCamera() as camera: camera.start_recording('pic_' + str(counter) + '.jpg') camera.start_preview() while triggered: triggered = read_sensor() camera.stop_preview() camera.stop_recording() def read_sensor(): return slice_of_pi.input(7)
#!/usr/bin/env python3 from Adafruit_MCP230xx import Adafruit_MCP230XX red_led = 0 # Single Red LED red = 1 # Parts of an RGB LED green = 2 blue = 3 button = 4 # Button input mcp = Adafruit_MCP230XX(address = 0x20, num_gpios = 16) # MCP23017 bit_led = 1 bit0 = 0; bit1 = 0; bit2 = 0; # Set pins 0-3 to output mcp.config(red_led, mcp.OUTPUT) mcp.config(red, mcp.OUTPUT) mcp.config(green, mcp.OUTPUT) mcp.config(blue, mcp.OUTPUT) # Set pin 4 to input with the pullup resistor enabled mcp.config(button, mcp.INPUT) mcp.pullup(button, 1) mcp.output(red_led, 1) mcp.output(red, 1)
) #>>>>PUT IN THE URL OF GIT REPO HERE<<<<< import time #import system time import os #add os library import picamera #import the python camera controls import smbus #allows gpio on mcp23008 to communicate on i2c import RPi.GPIO as GPIO #turn on gpio from Adafruit_I2C import Adafruit_I2C #import Adafruit_I2C module from Adafruit_MCP230xx import Adafruit_MCP230XX #import Adafruit_MCP230XX module ######################### ## C H I P S E T U P ## #### M C P 2 3 0 0 8 #### ######################### mcp = Adafruit_MCP230XX( busnum=1, address=0x20, num_gpios=8) #define the i2c address and number of gpio ######################### ## G P I O S E T U P ## ####### B O A R D ####### ######################### ## G P I O F O R P I ## GPIO.setwarnings( False) ## disables messages about GPIO pins already being in use GPIO.setmode(GPIO.BOARD) ## indicates which pin numbering configuration to use GPIO.setup( 37, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) #set pin to watch for the shutter button GPIO.setup(35, GPIO.OUT) #set pin to send signal for image capture
def __init__(self, busnum, address, num_gpios): self.chip = Adafruit_MCP230XX(busnum, address, num_gpios)
def setup_control_bus(): control = Adafruit_MCP230XX(address=CONTROL_ADDR, num_gpios=16) control.pullup(0, ENABLE) control.pullup(1, ENABLE) return control
#!/usr/bin/python from Adafruit_MCP230xx import Adafruit_MCP230XX expander1 = Adafruit_MCP230XX(busnum=1, address=0x20, num_gpios=16) expander2 = Adafruit_MCP230XX(busnum=1, address=0x21, num_gpios=16) expander1.config(0, 0) expander1.config(1, 0) expander1.config(2, 0) expander1.config(3, 0) expander1.config(4, 0) expander1.config(5, 0) expander1.config(6, 0) expander1.config(7, 0) expander1.config(8, 0) expander1.config(9, 0) expander1.config(10, 0) expander1.config(11, 0) expander1.config(12, 0) expander1.config(13, 0) expander1.config(14, 0) expander1.config(15, 0) expander2.config(0, 0) expander2.config(1, 0) expander2.config(2, 0) expander2.config(3, 0) expander2.config(4, 0) expander2.config(5, 0) expander2.config(6, 0) expander2.config(7, 0)
#!/usr/bin/env python #-*- coding: utf-8 -*- #If this code works, it was written by Seunghyun Lee(www.bluebaynetworks.co.kr). #If not, I don't know who wrote it #다운로드 받은 Adafruit_MCP230xx.py 파일에서 Adafruit_MCP230XX를 임포트한다. from Adafruit_MCP230xx import Adafruit_MCP230XX from time import sleep #MCP23008을 초기화 한다. mcp23008 = Adafruit_MCP230XX(0x20, 8) for j in range(0, 4): mcp23008.config(j, mcp23008.OUTPUT) for j in range(4, 8): mcp23008.config(j, mcp23008.INPUT) i = 0 try: while (True): i += 1 for j in range(0, 4): mcp23008.output(j, (i % 2)) print "GPIO:", j, " WRITE:", (i % 2) sleep(0.005) for j in range(4, 8): ret = mcp23008.input(j) ret = ret >> j print "GPIO:", j, " READ:", ret