Forum: Mikrocontroller und Digitale Elektronik Arduino und ID's auslesen - Konzept


von Manuel P. (prototypen_manu)


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

von nase (Gast)


Lesenswert?

Ein serielles Eeprom sollte als ausreichen. Dort wird die Hausnummer 
hinterlegt und gut ist!

von Googler (Gast)


Lesenswert?

Wie viele Bauteile soll es geben? Im Grunde reichen Lötbrücken auf den 
Steckern des Bauteils aus.

von Manuel P. (prototypen_manu)


Lesenswert?

eeprom mittels i2c ist perfekt,danke für den Input.
Grüße

Beitrag #5941725 wurde vom Autor gelöscht.
von Franz M. (elmo64)


Lesenswert?

Welche Bauteile hast du im Sinn?
Solltest du ICs mit digitaler Schnittstelle meinen, ist es 
warscheinlich, dass bereits ab Werk eine ID vorhanden ist.

: Bearbeitet durch User
von Harry L. (mysth)


Lesenswert?

Jeder DS18x20 Temp.-Sensor hat eine einmalige individuelle Seriennummer.

von Jens M. (schuchkleisser)


Lesenswert?

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

Generell jedes Onewire-Bauteil, weil das gleichezeitig die Busadresse 
ist.
Es gibt sogar welche, die genau nur das können: eine Seriennummer haben.

von STK500-Besitzer (Gast)


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.

von Christian M. (Gast)


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

von Jens M. (schuchkleisser)


Lesenswert?

Ein Byte/Word/Int/Seriennummer im EEPROM speichern?!
Oder gleich den Typ ablegen?
Das ist doch so schwer nicht zu verstehen, oder?

von Hff (Gast)


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

von STK500-Besitzer (Gast)


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?

von Christian M. (Gast)


Lesenswert?

STK500-Besitzer schrieb:
> Aber welchen Sinn hat dann ein Bus?

Zum Auslesen des EEPROM?!

Mein erster Gedanke war auch ein einfacher Widerstand, wie

Hff schrieb:
> Die kleinen Module haben Unterschiedliche Widerstände gegen GND
> ADC samplen lassen und gelegentlich den Wert auswerten

Gruss Chregu

von Manuel P. (prototypen_manu)


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

von Jens M. (schuchkleisser)


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?!

von Joachim B. (jar)


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.

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.