Hallo an allen
Ich habe ein Problem.
Gibt es eine Möglichkeit mehrere Tasterststus vom Slave zum Master zu schicken per i2c.
Der Master fragt und der Slave antwortet mit dem gedrückten Taster oder mit "kein Taster gedrückt".
Grüße Uwe
Erstmal: Nein!
Tipp: Multimaster.
Da das schon schon die zweite Antwort ist, lässt sich also folgern: es gibt mindestens zwei Möglichkeiten
Aber welches Problem @wolf1980 hat, und ob i2c ein sinnvoller Bestandteil der Lösung ist, bleibt erstmal offen.
Es gibt im ganzen www. keine libery über dieses problem.
Ich möchte gerne einen Slave mit einigen Taster per i2c an einen bestehenden Master verbinden.
Der Slave könnte auch über ein Pin dem Master signalisieren daß er Daten abzuholen hat.
Du wiederholst dich, ohne einen Mehrwert an Information zu liefern.
Klartext:
Das I2C bietet keine Möglichkeit, dass der Salve eine Verbindung herstellt.
Das ist eine Aufgabe für den Master.
Ja!
Ist ja auch unmöglich!
Mindestens!
Es ist eine "Extrawurst" nötig.
Aber wir dürfen ja nicht erfahren, wie der Kram zusammenhängt.
Der I2C Standard bietet da von hause aus keine.
Das ist mir schon klar, dass der Master die Verbindung herstellt.
Ja, dann ist doch alles gut!
Und wo ist jetzt das Problem geblieben?
Also gibt es keine Möglichkeit das zu machen. Entweder mit einem Baustein (MCP23017...) oder nur mit einem Taster.
Ein I2C Taster?
Was ist das?
Natürlich kann ein Master einen MCP23017 beliebige Dinge Fragen!
Auch nach Tastern....
Unter anderem, genau dafür, wurden I2c, Master, Slave und sogar Taster erfunden!
Ich frage ich nochmal: Was ist dein Problem?
Ich wollte nur wissen ober es eine Libery für den Arduino Slave gibt, wo man mehrere Taster anschließen kann. Und der dann vom Master abgerufen wird. Ein MCP23017 hat nur eine begrenzte Anzahl an Adressen.
Adressen oder Eingänge?
Wen das zweite dan 2 oder 3 MPC nehmen😊
du kannst die Standard I2C Library nehmen und alle freien Pins für Taster verwenden. Die I2C Library IST die Library die du verwenden kannst.
Warum du aber nicht einfache Portexpander (MCP23017, MCP23008, PCF8574...) verwenden willst versteh ich nicht. Für eine Tastenmatrix würde ich den SX1509 nehmen.
Wie viele Taster möchtest du auslesen?
Moment wären es 5 Stück möchte aber die Möglichkeit haben es zu erweitern.
Tip, Arduino Mega hat über 50 Pins.
Und jetzt erzähl mal warum du glaubst dafür einen anderen Microcontroller zu brauchen? Warum kann das nicht ein Portexpander ICs sein? Und wenn 8 oder 16 Taster nicht reichen - einfach ein zweiter IC? Bei den oben angeführten ICs kannst du mindestens (!) 8 in einen Bus setzen.
Und du ersparst dir ein extra Slave Programm dafür zu schreiben ...
Was für Arduino?
Ja, eine neue Salami Scheibe!
16 Pins, 8 Adressen. macht 128 mögliche Taster an einem Arduino!
Und wozu der 2te Arduino da gut sein soll, ist ein geheimes Geheimnis.
Wenn von 5-6 Tastern max. 1 betätigt wird, hat man das früher (TM) mit einem Analogeingang und 6 Widerständen gemacht.
Für 12 oder 16 Taster gibt es keypads, die mit 7 oder 8 Pins als Matrix gelesen werden.
Für 8 / 16 / 24 / 32 digitale Eingänge gleichzeitig gibt es PISO Schieberegister, die 2 Datenpins brauchen.
Wenn du bereits ein Master-Slave I2C System hast,
und am vorhandenen Slave zusätzlich eine Handvoll Taster erforderlich sind, frag dich, wie häufig der Master diesen Slave adressiert (oder dies könnte) , und ob das reicht.