Forum: Mikrocontroller und Digitale Elektronik Atmega: Stecker erkennen und unterscheiden


von Julian W. (julian-w) Benutzerseite


Lesenswert?

Hallo,

für ein aktuelles Projekt muss ich erkennen, ob ein Stecker in einer 
Buchse steckt. Zudem muss ich verschiedene Stecker unterscheiden können, 
möglichst ohne aktive Elemente. Als Controller auf dem Board kommt ein 
Atmega48 zum Einsatz.

Da mir jedoch nur 1 Pin dazu zur Verfügung steht, GND und +5V aber 
mitführe, kam mir die Idee, das ich auf dem freien Pin mittels eines 
Spannungsteilers eine "Rückmelde-Spannung" ausgebe. Das ganze könnte ich 
passiv mit Widerständen im Stecker aufbauen.

Ich müsste mindestens 5 versch. Stecker unterscheiden können + kein 
Stecker eingesteckt.
Die 5 versch. Zustände kann ich ja durch verschieden Spannunge 
realisieren, doch wie mache ich das am besten mit kein Stecker 
eingesteckt?

Ein offener ADC liefert ja keinen festen Wert. Und den ADC auf GND zu 
legen ist auch dämlich da ich dann im Stecker ja keinen Spannungsteiler 
mehr einbauen kann.

Wäre nett wenn ihr da einene Tipp für mich hättet ;)

Viele Grüße
Julian

von mrc (Gast)


Lesenswert?

mach doch einfach einen pulldown in der Größenordnung ein paar MOhm an 
den ADC. Die Spannungsteiler im Stecker entsprechend niederohmiger 
(~faktor 1000), dann gibts da keine Beeinflussung mehr.

von Karl H. (kbuchegg)


Lesenswert?

Julian W. schrieb:

> Die 5 versch. Zustände kann ich ja durch verschieden Spannunge
> realisieren, doch wie mache ich das am besten mit kein Stecker
> eingesteckt?

Du könntest zb. deinen Spannungsteiler '2-teilen'.

Einer der beiden Widerstände sitzt im Gerät und verbindet Eingang mit 
Masse.
Ist kein Stecker eingesteckt, dann arbeitet er als Pulldown.
Kommt ein Stecker dazu, dann hat der lediglich einen Widerstand (der 
nach +5V verschaltet ist) und mit dem fix eingebauten Widerstand einen 
Spannungsteiler bildet.


        Vcc --------------------o   o-----+
                                          |
                                         +-+
                                         | | R1
                                         +-+
                                          |
       zum µC ----------+-------o   o-----+
                        |
                       +-+
                       | | R2
                       +-+
                        |
         GND   ---------+-------o


R1 + R2 ergeben den Spannungsteiler.
R2 alleine ist ein Pulldown, der den Einang auf 0 hält.


Wenn die eingebauten Pullup Widerstände im Tiny über die Serie gesehen 
einigermassen konstante Werte aufweisen, dann kann man auch umdrehen und 
aus dem Pulldown einen Pullup machen.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

mrc schrieb:
> mach doch einfach einen pulldown in der Größenordnung ein paar MOhm an
> den ADC. Die Spannungsteiler im Stecker entsprechend niederohmiger
> (~faktor 1000), dann gibts da keine Beeinflussung mehr.

Das teste ich mal auf einem Steckbrett aus. Das klingt schonmal sehr gut 
;)


Karl Heinz Buchegger schrieb:
> Du könntest zb. deinen Spannungsteiler '2-teilen'.

Das Problem an der Sache ist dann nur das ich sehr eingeschränkt im 
Spannungsbereich bin oder?

Angenommen ich nehme 10kOhm und möchte noch max 10kOhm verbauen (größer 
sollten die Widerstände nicht werden oder? Damit der ADC das noch sauber 
erkennt), dann kann ich ja nur noch 50% der Auflösung nutzen.
Probleme mit der Referenzspannung dürfte ich keine habe da ich mich ja 
jeweils auf VCC beziehe. Aber 5 bit Auflösung um quasi 6 Zustände (kein 
Stecker + 5 versch. Stecker) zu unterscheiden ist mir etwas unsicher da 
noch rauschen, Störungen etc. hinzukommen.

von fonsana (Gast)


Lesenswert?

Julian W. schrieb:
> 5 bit Auflösung um quasi 6 Zustände

Und wieviele verschiedene Zustaende kann man in 5 Bit unterbringen?

Das reicht also locker.

fonsana

von Julian W. (julian-w) Benutzerseite


Lesenswert?

fonsana schrieb:
> Und wieviele verschiedene Zustaende kann man in 5 Bit unterbringen?

32 aber das war eh ein Denkfehler ;)

Mit der Variante von Karl Heinz Buchegger stehen noch 9 Bit zur 
Verfügung.
Ich glaube das dürfte reichen um Widerstands-Toleranzen, Rauschen, ... 
vernachlässigen zu können.

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.