Arduino und ID's auslesen - Konzept

OP #5941675
Lesenswert?

Hallo zusammen,
ich bin auf der Suche nach einer mgl. Idee für mein Konzept.
Ich habe einen Arduino und ich möchte an diesen unterschiedliche 
elektronische Bauteile anschliessen. Nun soll folgendes passieren:
Ich schliesse an den Arduino das Bauteil A an, der Arduino soll nun eine 
gewisse Logik am Bauteil abfragen und diese Logik soll dem Arduino 
mitteilen: Ich bin Bauteil A. Nehme ich nun dieses Bauteil A weg und 
ersetze es durch Bauteil B, dann soll das Prozedere von vorne starten.
Ich hoffe das ist verständlich.

Im Grunde ist dies ja eine Art Bussystem, die Schwierigkeit besteht nun 
darin dieses Konzept mit möglichst wenig Mikrocontrollern zu 
realisieren. Gerne erläutere ich noch mehr.
Im Grunde möchte ich nur einen Mikrocontroller haben und jweils eine Art 
"digitaler Baustein" der mit seinem eigenen Bauteil verbunden ist, ergo 
der Arduino fragt den "digitalen Baustein" -->"wer bist du"; er 
antwortet und der Arduino weiss, was für ein Bauteil das ist. Gibt es 
ein solches ?
Grüße
Beitrag #5941725 wurde von einem Moderator gelöscht.
Gast #5942018
Lesenswert?

Manuel P. schrieb:
> eeprom mittels i2c ist perfekt,danke für den Input.
> Grüße

Das Konzept möchte ich gerne verstehen.
EEPROM an I2C haben einen begrenzten Adressraum.

Wie soll der Spaß adressiert werden?
Wenn man ein I2C-EEPROM als ID-Baustein verwendet, sollte die Adresse 
unter der man die ID ausliest doch immer dieselbe sein.
Das widerspricht aber der Arbeitsweise des I2C-Bus.
Man müsste also jedem Sensor einen Controller zur Kommunikation 
voranstellen, der sich um die Adressierung der dahinter liegenden 
Bausteine kümmert.

Dann kann der auch gleich zur Identifikation herangezogen werden.
Gast #5942023
Lesenswert?

STK500-Besitzer schrieb:
> Wenn man ein I2C-EEPROM als ID-Baustein verwendet, sollte die Adresse
> unter der man die ID ausliest doch immer dieselbe sein.

Kann auch, denn:

Manuel P. schrieb:
> Ich bin Bauteil A. Nehme ich nun dieses Bauteil A weg und ersetze es
> durch Bauteil B, dann soll das Prozedere von vorne starten.

Nur das Auslesen müsste dauernd geschehen, und das Blockieren des Buses 
bei keinem angeschlossenen Bauteil abgefangen werden!

Gruss Chregu
Gast #5942030
Lesenswert?

Zusätzlich eine Leitung mit legen die an einen ADC geklemmt ist
Am master noch einen pullup dran ...

Die kleinen Module haben Unterschiedliche Widerstände gegen GND

ADC samplen lassen und gelegentlich den Wert auswerten

Wert = vcc/ref dann kein Gerät angeschlossen
Wert x - Gerät A
Wert y - Gerät B
Gast #5942032
Lesenswert?

Christian M. schrieb:
> Manuel P. schrieb:
>> Ich bin Bauteil A. Nehme ich nun dieses Bauteil A weg und ersetze es
>> durch Bauteil B, dann soll das Prozedere von vorne starten.
>
> Nur das Auslesen müsste dauernd geschehen, und das Blockieren des Buses
> bei keinem angeschlossenen Bauteil abgefangen werden!

Hatte ich überlesen.
Aber welchen Sinn hat dann ein Bus?
OP #5942686
Lesenswert?

Hallo zusammen,
danke vorab für die rege Teilnahme und sehr nützlichen Hinweise.
Nun bekomme ich über den I2C raus, welche Bauteil verbaut sind, soweit 
so gut, nun möchte ich aber zusätzlich wissen, in welcher Reihenfolge 
diese verbaut sind....
am Beispiel 1.)
arduino ist mittels i2c mit bauteil A(slave1) dann Bauteil B(slave2) und 
speichert dann in einem Array ab id[0=bauteilA; id[1]=BauteilB,usw
Wenn ich ein Bauteil hineinbringe z.Bsp. BauteilT, kann ich durch den 
i2c ja rausbekommen - aha, nun ist BauteilT verbaut, aber wie bekomme 
ich heraus, wo es verbaut ist...
Grüße und schönen Restsamstag
#5942749
Lesenswert?

So langsam wird offensichtlich, das du hier an einem XY-Problem (siehe 
https://en.wikipedia.org/wiki/XY_problem) laborierst.
Erzähl mal lieber, was du da vorhast.

Eigentlich macht man so einen Bus mit Durchschaltfunktion, d.h. nur ein 
Gerät ist sichtbar und im Discoverymode, und schaltet dann nach der 
Erkennung den Bus "eins weiter".
So kann man auch noch die Reihenfolge der Kette erfassen.
Hättest du man vorher davon erzählt... Scheisendreck Salamitaktik, ne?!
#5942757
Lesenswert?

Harry L. schrieb:
> Jeder DS18x20 Temp.-Sensor hat eine einmalige individuelle Seriennummer.

ebend,
fiel mir sofort ein, alle meine Sensoren hängen an 72m, jeder Sensor hat 
eine mir vorher vor dem verbauen bekannte Seriennummer, und wo ich 
Sensor blau Nr.28471100 markiert auf den 72m verbaue weiss ich doch und 
wenn der sich nicht mehr meldet weiss ich auch wo ich hin muss.

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