Forum: Mikrocontroller und Digitale Elektronik Arduino mehrere Geräte ansteuern


von Patrick (Gast)


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.

von Joe F. (easylife)


Lesenswert?

Guck dir die Zahlen mal im Binärformat an, da fällt dir bestimmt etwas 
auf.
Und dann fragst du nochmal nach, ob mit 0x28 wirklich Gerät 3 und 5 
"angesteuert" werden soll, oder nicht viel eher die Geräte 4 und 6.

von Patrick (Gast)


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.

von Einer K. (Gast)


Lesenswert?

JA!

Und, wo ist dein Problem?

von Sebastian R. (sebastian_r569)


Lesenswert?

Patrick schrieb:
> Wie kann ich dies nun am besten auswerten?

Adressen den Daten zuordnen, Daten geordnet weiterverarbeiten.

Auf schwammige Fragen gibt es leider nur schwammige Antworten, sorry :/

von Sven K. (quotschmacher)


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"

von Algorithmen und Datenstrukturen (Gast)


Lesenswert?

Tabelle, vielleicht?
Hex-Zahl <-> Geräteadresse

von PittyJ (Gast)


Lesenswert?

Bitmaske bzw Bitabfrage?
Binärformat würde helfen. Lernt man das in der Schule nicht mehr?

von Joe F. (easylife)


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.

von leo (Gast)


Lesenswert?

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

Du weisst aber schon, dass I2C-Slaves ohnehin eine 7-Bit Adresse haben? 
Sollte diese ident sein, brauchst du einen I2C-Mux/Switch.

leo

von Einer K. (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.