Adresseingabe über einen ADC-Pin

Gast #280965
Lesenswert?

Hallo,
ich stehe vor einem kleinen Problem. Ich habe mit einem Attiny45 einen
RGB Controller mit I2C Schnittstelle gebastelt. Um die einzelnen
RGB-Slaves zu unterscheiden muss ich aber jedem eine eigene Adresse
geben, und das am besten ohne jedes mal das Programm zu verändern. Nun
hab ich aber das Problem das ich nur noch einen freien ADC-Port zur
Verfügung habe.

Kennt jemand eine Methode (Hardware + Software) wie ich 3 Bit's mit
Widerständen kodieren kann?

P.S.
So etwas ähnliches hab ich mal in einer C-Control Applikation mit einer
Matrix-Tastatur gesehen, kann mich aber leider nicht mehr an den genauen
Aufbau erinnern.
Gast #280966
Lesenswert?

Einen Wiederstand oben, 5V drauf, dann 3 gleiche unten kvaziparallel
(ganz unten auf GND und die anderen Anschluessen nicht verbinden, da
kommen 3 Bruecken). Damit kannst du sogar 4 bit kodieren (keine Jumper
- 5 V auf ADC, 1 Jumper - 2.5V, 2 Jumper - 1,7V, 3 Jumper - 1,25V)
Gast #280968
Lesenswert?

Und wie sieht's mit Bitkombinationen aus? 101 z.B. oder 100 ? So meinte
ich das eigentlich. Das mit der Parallelschaltung kannte ich schon
(hab's leider vergessen zu sagen). Ich möchte in etwa 9 verschiedene
Adressen am Bus.
Gast #280969
Lesenswert?

Du könntest einen Spannungsteiler so wie Aleksej es vorgeschlagen hat
aufbauen:
1 Widerstand gegen Vcc
Dann kannst du 8 Widerstände an 9 Taster/Schalter legen, und die
Widerstände jeweils so auswählen, dass sie eindeutige Spannungswerte
liefern. (9. Kontakt gegen Masse...).
In ungeschalteten Zustand liegt dann über den Widerstand 5V am ADC-Pin.
Wenn immer nur ein Schalter betätigt wird, hat man 9 ADC-Werte...
Binär (ca. 4 Schalter) könnte man das so realisieren, dass man
Widerstände in Reihe schaltet und sie durch betätigen der Schalter
überbrückt (negative Logik...)
#280970
Lesenswert?

> Ich möchte in etwa 9 verschiedene
> Adressen am Bus.

Wenn du auf 8 oder 16 rasterst, wird die Auswerterrutine einfacher, der
Tiny15 rechnet binär und mag daher Zweierpotenzen besonders gern...

Wenn du mit Wechseljumpern (je 3 Stifte) arbeiten kannst, dann könnte
ein modifiziertes R2R-Netzwerk helfen, oder einfach "gewichtete
Widerstände" (1k, 2k, 4k, 8k).

...
Gast #280971
Lesenswert?

Funktioniert prima mit den gewichteten Widerständen.
Mit ein bisschen Vorarbeit wie das Erstellen einer Wertetabelle für die
verschiedenen Spannungen ist es die beste Lösung.
Danke für die Antworten.

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