Forum: Mikrocontroller und Digitale Elektronik AVR Eingangsbeschaltung - 12V, 0V und offen erkennen


von André W. (sefiroth)


Lesenswert?

Hallo zusammen!

Ich suche einen Eingangsbeschaltung für Atmel Mikrocontroller (wie 
ATmega168), die in der Lage ist sicher mit Spannungssignalen aus dem 
KfZ-Bordnetz umzugehen.

Bevor es Kritik hagelt: Im folgenden nenne ich die KfZ-Bordspannung 
einfach 12V - ich weiß, dass diese zwischen 9 und 15V liegt und mit 
Spannungsspitzen behaftet sein kann. Aber 12V ist der verbreitete Wert 
und einfach kürzer zu schreiben ;-)

Ich habe bereits eine Eingangsbeschaltung, die einen Schalter auf 12V 
(ansonsten Leitung offen) erkennt. Ich habe auch eine 
Eingangsbeschaltung, die einen Schalter auf GND (ansonsten Leitung 
offen) erkennt. Ich hatte nun die Idee, ob es nicht möglich ist mit ein 
paar robusten Bauteilen eine wie auch immer geartete Schaltung 
aufzubauen, die eine offene Leitung als Low Pegel und eine Leitung mit 
entweder 0V oder 12V als High-Pegel ausgibt.

Aber außer einer Operationsverstärkerschaltung ist mir da nichts 
eingefallen... Damit könnte man ja auf die Bordnetz-Leitung mittels 
Pull-Up Widerstand eine Grundspannung auf die Leitung legen und je ein 
Komparator schaut ob die Spannung nach unten gezogen (GND) oder nach 
oben angehoben (12V) wird.

WICHTIG: Das Ganze ist mehr ein Gedankenspiel, ob so etwas überhaupt 
möglich ist. Einen realen Anwendungsfall wüsste ich jetzt nicht 
unbedingt - normalerweise weiß man ja, mit welchen Signalen an der 
eigenen Schaltung zu rechnen ist ;-)

Gruß,
André

von Thomas E. (thomase)


Lesenswert?

Du kannst einem GPIO 2 Zustände erfassen: 0 und 1.

Begingung: Port = Eingang, kein Pullup

Liegen 12V an, die Massnahme, dass deine Eingangsspannung Vcc nicht 
übersteigt, überlasse ich dir, erhälst du 1.

1 == 12V. Abgehakt.

Liegt GND an, erhältst du 0.
Ist der Eingang offen erhältst du auch 0.
Jetzt schaltest du den Pullup ein.
Liegt GND an, bleibt der Eingang 0.
Ist der Eingang offen, erhältst du 1.


mfg.

von Loonix (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Begingung: Port = Eingang, kein Pullup

Erlaube mir die kleine Korrektur:

Bedingung: Port = Eingang, kein externer Pullup

von spess53 (Gast)


Lesenswert?

Hi

>Ist der Eingang offen erhältst du auch 0.

Das ist eine gewagte Annahme.

MfG Spess

von Loonix (Gast)


Lesenswert?

spess53 schrieb:
>>Ist der Eingang offen erhältst du auch 0.
>
> Das ist eine gewagte Annahme.

Stimmt, da fehlen noch weitere kleine Korrekturen:

Interner Pullup eingeschalten:
- Liegt GND an, erhältst du 0.
- Ist der Eingang offen erhältst du 1.

Jetzt schaltest du den Pullup aus:
- Liegt GND an, bleibt der Eingang 0.
- Ist der Eingang offen, floatet der Eingang

Floatende Pins sind immer böse, mal davon abgesehen dass sie 
naturgemäß keinen stabilen Zustand annehmen. Man erhält also keinen 
Vorteil aus dieser Schaltungsvariante. Kannst genausogut raten oder 
einen Zufallsgenerator als Orakel gebrauchen ;)

von Thomas E. (thomase)


Lesenswert?

spess53 schrieb:
> Das ist eine gewagte Annahme.

Was denn sonst?

mfg.

von Thomas E. (thomase)


Lesenswert?

Loonix schrieb:
> Jetzt schaltest du den Pullup aus:
>
> - Liegt GND an, bleibt der Eingang 0.
>
> - Ist der Eingang offen, floatet der Eingang

Ok. Dann hängt man eben noch 100K an Masse.

mfg.

von hp-freund (Gast)


Lesenswert?

Da fällt mir wieder der gute alte A277D im Punktbetrieb ein. Den Eingang 
durch 2 gleiche R auf halbe Spannung legen und die gewünschten 
Ausgangsspannungen (LED-Ausgang) durch Dioden ODER-Schaltung verknüpfen.

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.