Moinsen,
nach dem ich nun ein wenig gebastelt und mittlerweile mein LCD und den On/Off-Mechanismus von Kernkrank nachgebaut habe, wollte ich per I2C meine beiden MCP23008 anschließen.
Als mir auffiel, dass ich ja den SCL-Pin belege für den Taster suche ich nun nach einem Workarround.
Natürlich könnte ich zwei Schalter nehmen. Einen der bei Druck und ausgeschaltetem Rasp, SCL auf GND zieht und damit das Teil startet. Und einen zweiten, der mit einem Pull-Up/Down Widerstand auf einem freien Pin liegt und das Herunterfahren-Script auslöst.
Diese Lösung finde ich aber nicht schön. Ich würde gerne einen Taster verwenden. Da aber I2C sicher Probleme damit haben wird, wenn ich dauerhaft Logisch 1 oder bei Pull-Down Logisch 0 auf den SCL haue, versuche ich einfach einen anderen Pin mit ins Boot zu holen.
Ich möchte also beim Drücken des Tasters einen Pin (z.B. 18) auf Logisch 1 oder 0 setzen und gleichzeitig SCL auf GND ziehen. Zwar stört dann das Drücken des Tasters bei eingeschaltetem Rasp kurz I2C weil ich den Pin dann auf GND ziehe, aber ich gehe davon aus, dass ich dann auch herunterfahren möchte und nicht dauerhaft drücke um Spaß zu haben.
Wie kann ich das realisieren? Bei der jetzigen Variante liegen ständig Logisch 1 auf SCL wenn das Raspberry läuft. Es darf aber kein Signal auf SCL liegen. Es soll nur zu GND gezogen werden um das Rasp einzuschalten. Während es läuft wird der Pin nur für I2C verwendet.
Geht das vielleicht mit einem Transistor udn wenn ja wie? Bin für Ideen offen.
EDIT: Gibt es ein Bauteil, dass ich zwischen SCL Pin und Schalter setzen kann, welches nur eine "Verbindung/Fluss" in Richtung GND erlaubt und sobald Strom aus der anderen Richtung diesen "aufhält"? Das würde ja das Problem lösen.
Greetz,
Kanasaru