Modul zur Nutzung der Raspberry Pi GPIO

Hallo
Bei mir will es nicht klappen. Habe einen MCP23017 nach diesen Schaltplanhttp://www.elektronx.de/tutorials/porterweiterung-mit-mcp23017-und-i2c/mcp23017-sch/ an meinen Raspi angeschlossen, aber die LED will nicht leuchten.
Ich habe alles so installiert wie im ersten Beitrag beschrieben (denke ich zumindest), wenn ich die Instanz, Gateway und Schnittstelle anschaue, sieht eigentlich alles iO aus, die I2C-Tools zeigen mir auch an, dass auf Adresse 0x21 ein Gerät gefunden wurde. Ich such jetzt schon seit ein paar Stunden finde aber den Fehler nicht. Kann mir da einer vielleicht helfen, wäre sehr dankbar.
Zum besseren Verständnis habe ich mal noch ein paar Bilder angehängt.

IPSGPIO4.png

…kann so auf dem ersten Blick keinen Fehler sehen, der MCP wird vom Modul erkannt, Adresse und Bus sehen richtig eingestellt aus…

Hast Du denn eine Spannung am Ausgang?

Joachim

Nee, nichts messbar, habe auch schon andere Ausgänge benutzt und anderen MCP, hat aber alles nichts geholfen.

Hab jetzt mal den Ausgang per i2cset -y 1 0x21 0x14 0x01 gesetzt, da geht die LED an!

Mit den folgenden Script

<?

SetValueBoolean(37962, true);  // GPIO_GPA0 einschalten

$GPIO_Test = GetValueBoolean(37962);
echo $GPIO_Test;
?>

bzw. wenn ich den Ausgang direkt im Objektbaum setzte, passiert nichts.

…zwei Fragen dazu:

  1. Hast Du den Reset-Pin wie im Schaltplan belegt?
  2. Wie setzt Du einen Ausgang im IPS?

Joachim

  1. Reset-Pin liegt auf + (VDD)
  2. siehe vorhergehenden Beitrag

…so kann das nichts werden…

Schau Dir mal bitte den richtigen den Syntax unter „Befehl testen“ an.

Status-Variablen können im Objektbaum nie geschaltet werden…[emoji6]

Jetzt funktioniert es, danke.

Eine letzte Frage für heute hätte ich zu der Einstellung in der Instanz
IPSGPIO5.png
Was ist mit 5 sek ->Minimum genau gemeint, und warum „Optional“?

…weil nur die GPIO gepollt werden, die als Eingang konfiguriert sind - was ja bei Dir offenbar nicht der Fall ist…

Joachim

Es wird in meinem Projekt auch Eingänge geben, deshalb die Frage.

…dann pollst Du entweder regelmäßig oder Du benutzt die Interrupt-Leitung…

Joachim

Ok, werde ich dieser Tage mal ausprobieren.
Danke für die Hilfe und vor allen danke für dieses geniale Modul!

Hallo
Hab jetzt mal versucht die Eingänge des MCP23017 per Interrupt statt pollen auszulesen. Aber so richtig steige ich nicht dahinter.
In der Instanz habe ich alle Eingänge von Port A und B bei „Interrupt“ auf Auslösung gesetzt. Lieg ich richtig, dass ich jetzt die beiden Ausgänge INTA und INTB des MCP23017 mit jeweils einen GPIO-Eingang des RasperryPI verbinden muss und
bei Pegeländerung an diesen Eingängen starte ich dann zum Bsp ein Script?

Nein, wenn der GPIO im Konfigurationsmenü richtig eingestellt ist, ändert sich sofort die Stausvaraible. Wenn Du magst kannst Du dann auf den Statuswechsel der Statusvaraiablen ein Skript starten.

Joachim

Für GPB0 habe ich folgende Einstellungen gemacht:
-GPB0 auf Eingang
-Eingang nicht negieren
-Auslösung
-kein Pullup

Ein funktionierendes Script starte ich dann mit „Variablenänderung der Variable GPB0“.
Aber das Script startet nicht.

…verändert sich denn die Variable?

Nein, aber keine Ahnung warum

…wird die Statusänderung am Eingang als Interrupt erfasst („Letzte Meldung INT“)?

Wie hast Du den Eingang beschaltet? Als OpenDrain? Bitte die Beschaltung als Eingang bitte nochmal prüfen…

Joachim

Hallo
Sorry, konnte erst jetzt weiter machen. Folgender Stand:

  • Bei „Letzte Meldung INT“ steht „Nie“

Der Eingang ist wie folgt beschalten:

…bin mir jetzt unsicher ob nicht die 3.3V und GND bei Dir verdreht sind…
Suche mal in Google nach „MCP23017 as Input“ unter Bilder sollten da einige Treffer sein (bekomme es jetzt hier nicht reinkopiert)…

Joachim