Arduino mehrere Geräte ansteuern

Gast #6079301
Lesenswert?

Hallo zusammen,

ich benötige eure Hilfe.

Ich möchte mit einem Arduino 8 Geräte unterschiedlich ansteuern. Habe 
eine Hex Zahl welche vorgibt welches Gerät angesteuert werden soll.
Wie kann ich dies nun am besten auswerten?

z.B.

nur Gerät 1 - 001HEX
Gerät 3 und 5 - 028HEX
alle Geräte - 0FFHEX

hoffe auf eure Unterstützung.
Gast #6079381
Lesenswert?

Glaube dass ich mich ein wenig falsch ausgedrückt habe.

Die slaves sind mit Adressen vordefiniert.

Ich sende über i2c eine zeichenfolge welche hinten raus am Slave 
entschlüsselt wird.

Die Zeichenfolge besteht aus:

Device.Event.Function
XX.XXXX.XX.

Die slaves sollen die Funktion nur ausführen wenn der Device Code sich 
dementsprechend aufschlüsselt.
#6079420
Lesenswert?

veilleicht könnte ja
1
if
 dein freund sein. dann machst du noch etwas wildes bit-shifting und gut 
is.

so in die richtung
1
if (zeichenfolge & (0x001 << 6) == (0x001 << 6))
2
{
3
}

kann man natürlich alles nur raten. nimmst du denn c++? arduino läst 
darauf schließen.

und es gibt einen unterschied zwischen "falsch ausgedrückt" und "garnich 
erwähnt"
#6079473
Lesenswert?

Sind die 8 Geräte alles I2C Slaves?
Wenn ja: I2C arbeitet ja schon mit individuellen Device-Adressen für 
jeden Slave. Es ist also nicht nötig, die Adressierung nochmal in den zu 
übermittelnden Daten zu haben.
Ausserdem kann auf dem Bus jeweils immer nur 1 Slave angesprochen 
werden, wenn du alle 8 ansprechen willst, musst du das sequentiell 
machen.
Gast #6079487
Lesenswert?

Joe F. schrieb:
> Ausserdem kann auf dem Bus jeweils immer nur 1 Slave angesprochen
> werden, wenn du alle 8 ansprechen willst, musst du das sequentiell
> machen.

Jain!
Denn es gibt ja noch den General Call, dann sollten sich alle 
angesprochen fühlen.

Z.B. die AVR TWI Einheiten können mit Adressmasken umgehen, decken so 
dann ganze Adressbereiche ab.

Beides ist eher unüblich und wird nicht von allen Libs unterstützt.
Aber machbar, wenn man ernstlich will.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren