Hallo,
ich benötige am Pi viele Schalter (32). Nach einiger Recherche in Foren bin ich auf den MCP23017 (2x) gekommen, die ich über I2C an den Pi anschließen kann. Dies habe ich entsprechend vieler Vorschläge so gemacht:
VDD -> 3.3V Pi
VSS -> GND Pi
SDA -> SDA Pi
SCL -> SCL Pi
Reset -> 3.3V Pi
Adresse -> GND PI (->0x20) (für den 2. entsprechend andere Adresse (0x21))
INTA (1. MCP) -> GPIO 23 PI
INTA (2. MCP) -> GPIO 24 PI
Den MCP habe ich wie folgt konfiguriert:
Alle Pins -> Input
Alle Pins auf Interrupt
Alle Pins auf Pull-Up
Alle Pins Input invertiert
Den IntA auf Active-High
INTA und INTB -> Mirror
Nun sollte an jedem Pin 3.3V anliegen.
An jeden Pin sollen Schalter angeschlossen werden, die gegen GND geschaltet werden. Dadurch soll der Interrupt ausgelöst werden, der dann mittels des GPIO im Pi detektiert wird. Dieser liest dann das Register aus und reaktiviert dadurch wieder den Interrupt.
Soweit die Theorie.
Bisher werden die MCPs erkannt und können von der Software angesteuert werden (FHEM). Ist ein Schalter montiert, scheint alles zu funktionieren. Aber wenn ich versuche den PIN statt per Schalter mit einem Kabel per Hand kurz auf GND zu legen oder mit einem Multimeter versuche die Spannung am Input-PIN zu messen, dann geht der MCP in einen undefinierten Zustand und wird heiß!!
Initialisiere ich die Chips neu, dann tut es wieder.
Hat jemand einen Tipp, warum das System so empfindlich reagiert?
Oder gibt es eine bessere Methode am MCP einen Schalterdruck zu registrieren?
Vielen Dank für eure Hilfe!!
PiUserN