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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.