Initial commit
This commit is contained in:
75
python/plug-check_external-pulldown.py
Normal file
75
python/plug-check_external-pulldown.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import smbus
|
||||
import time
|
||||
import json
|
||||
|
||||
# Adressen der beiden MCP23017 Chips
|
||||
MP = 0x20 # Ausgang rechte Hälfte
|
||||
|
||||
|
||||
# Register-Adressen für den MCP23017
|
||||
IODIRA = 0x00 # Eingang / Ausgang A
|
||||
IODIRB = 0x01 # Eingang / Ausgang B
|
||||
GPIOA = 0x12 # GPIO A
|
||||
GPIOB = 0x13 # GPIO B
|
||||
|
||||
# Initialisiere den I2C Bus
|
||||
bus = smbus.SMBus(1)
|
||||
|
||||
|
||||
def default():
|
||||
# Schleife für alle Registeradressen (0x00 bis 0x15)
|
||||
for register in range(0x00, 0x16):
|
||||
bus.write_byte_data(MP, register, 0x00)
|
||||
|
||||
# Konfiguriere alle Pins auf Chip 1 als Ausgang (A und B)
|
||||
def configure_chip1_as_output():
|
||||
bus.write_byte_data(MP, IODIRA, 0x00) # Setze alle Pins von A als Ausgang
|
||||
bus.write_byte_data(MP, IODIRB, 0x00) # Setze alle Pins von B als Ausgang
|
||||
|
||||
|
||||
|
||||
# Hauptprogramm
|
||||
def main():
|
||||
default()
|
||||
time.sleep(0.5)
|
||||
configure_chip1_as_output()
|
||||
|
||||
# Teste alle Pins auf Chip 1 (A0-A7, B0-B7)
|
||||
for pin in range(32): # 0 bis 31
|
||||
#print(f"Setze Pin {pin} auf HIGH auf Chip 1")
|
||||
|
||||
|
||||
bus.write_byte_data(MP, GPIOA, 0x00)
|
||||
|
||||
|
||||
if pin < 16:
|
||||
# Setze den gewählten Pin auf HIGH
|
||||
if pin < 8: # Pins A0-
|
||||
|
||||
bus.write_byte_data(MP, IODIRA, ~(1 << pin))
|
||||
|
||||
bus.write_byte_data(MP, GPIOA, 1 << pin)
|
||||
|
||||
|
||||
print("====================" + str(pin) + "==========================")
|
||||
|
||||
time.sleep(0.2) # Kurze Pause, damit die Änderung sichtbar wird
|
||||
|
||||
wert = bus.read_byte_data(MP, GPIOA)
|
||||
|
||||
|
||||
|
||||
for j in range(8): # Lese 4*8=32 Pins
|
||||
bitmaske = 1 << j # Erstelle eine Maske: 1, 2, 4, 8, 16, ...
|
||||
|
||||
wert_bitweise = bool(wert & bitmaske) # Isoliere das entsprechende Bit
|
||||
|
||||
|
||||
if wert_bitweise == True:
|
||||
print("Gefunden: " + str(j))
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user