www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Adresseingabe über einen ADC-Pin


Autor: Flo K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Prinzip reichen schon 2 Wiederstande unten, dann hast du 5V, 2.5V und
1.7V

Autor: Flo K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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).

...

Autor: Flo K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.