Alles anzeigenich glaub ich hatte mir damals ne eigene lib geschrieben.. oder eine liberweiterung .. irgendsowas wars.
mittlerweile gibt es da was schickes von adafruit
Code: OriginalCode von der Adafruit seite Alles anzeigen# Use busnum = 0 for older Raspberry Pi's (256MB) mcp = Adafruit_MCP230XX(busnum = 0, address = 0x20, num_gpios = 16) # Use busnum = 1 for new Raspberry Pi's (512MB with mounting holes) # mcp = Adafruit_MCP230XX(busnum = 1, address = 0x20, num_gpios = 16) # Set pins 0, 1 and 2 to output (you can set pins 0..15 this way) mcp.config(0, OUTPUT) mcp.config(1, OUTPUT) mcp.config(2, OUTPUT) # Set pin 3 to input with the pullup resistor enabled mcp.pullup(3, 1) # Read pin 3 and display the results print "%d: %x" % (3, mcp.input(3) >> 3) # Python speed test on output 0 toggling at max speed while (True): mcp.output(0, 1) # Pin 0 High mcp.output(0, 0) # Pin 1 Low
so in etwa könnte das bei dir dann aussehen
Python Alles anzeigenfrom Adafruit import Adafruit_MCP230XX #import bitte korrigieren import time addresses_MCP23017=[] addresses_MCP23017.append("0x20") #adresse vom ersten mcp chip (unique) addresses_MCP23017.append("1X40") #adresse vom zweiten mcp chip (unique) ..... MCP_Chip=[] zaehler=0 try: while addresses_MCP23017[zaehler] != None: MCP_Chip.append("Adafruit_MCP230XX(busnum = 1, address = addresses_MCP23017[zaehler], num_gpios = 16)") zaehler=zaehler+1 except: break mcp1=MCP_Chip[0] mcp2=MCP_Chip[1] ..... #pinconfig des mcp mcp1.config(0, OUTPUT) ## das unter der linie wird in deinem Code einfach mit den bisherigen Pinangaben ersetzt ##___________________________________________________________________________________ mcp.output(0, 1) # Pin 0 High time.sleep(2) mcp.output(0, 0) # Pin 1 Low
und genau hier hänge ich jetzt fest. In Normalfall spreche ich Sensoren, die direkt am I2C an mit den pins. Hier ein hc-sr04 direkt an gpio pin 2 und 3.
Code
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
TRIG = 3
ECHO = 2
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
An gpio pin2 und 3 hängt jetzt der MCP23017 und antwortet auf 0x20. An gpioa0 und gpiob0 hängt jetzt der hc-sr04. Das muss ich jetzt irgendwie konvertieren so das ich den python skripten sagen kann benutze statt gpio pin2 und 3 die adresse 0x20 pin gpioa0 und gpiob0. Da hörts bei mir grad auf mit python.