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.
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)
Im Prinzip reichen schon 2 Wiederstande unten, dann hast du 5V, 2.5V und 1.7V
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.
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...)
> 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). ...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.