Forum: Mikrocontroller und Digitale Elektronik µC - Digital Input/Output


von Marlena (Gast)


Lesenswert?

Hallo Ihr,

ich bin ein Neuling auf dem Gebiet der Elektronik und der µC. Ich 
versuche die Basics des µC (Atmega, Arduino Board) im Bezug auf die 
Elektronik zu verstehen, um einfache Schaltungen realisieren zu können. 
Ich stehe momentan bei der Anbindung eines Schalters mit Hilfe von 
Pullup-/Pulldown-Widerständen auf dem Schlauch... Ich weiß, dass der 
Atmega des Arduino Boards bereits interne Pullup-/Pulldown-Widerstände 
besitzt, die ich bequem per Software aktivieren könnte und so die 
Schaltung überflüssig macht, aber mir geht es darum, die Schaltung zu 
verstehen :)

Die Funktionsweise eines Pullup-/Pulldown-Widerstands sind mir bereits 
klar (vgl. Spannungsteiler, wobei der Widerstand des Schalters im 
offenen Zustand gegen unendlich und im geschlossenen Zustand gegen 0 
geht.

Ich habe nun gelesen, dass man noch optional einen Schutzwiderstand 
(MOhm-Bereich) in Reihe mit dem Digital Input Pin des µC schalten 
könnte, um einen zu hohen Stromfluss auf den Pin des µC zu verhindern. 
Soweit auch klar. Wenn ich das nun tue, muss steht dann dieser 
Schutzwiderstand nicht parallel zu Pulldown-Widerstand des 
Spannungsteilers? Würde an diesem Widerstand nicht auch eine Spannung 
abfallen, so dass der Pin evtl. den falschen Wert (Spannungspotential) 
hinter dem Schutzwiderstand abgreift? Ich bin nun total verwirrt und 
frage mich auch, wie ich den digitalen Pin in der Schaltung und deren 
Berechnung einbeziehen soll? Kann man einen Input-Pin als GND in einer 
Schaltung und einen Output-Pin als Vcc betrachten? Wie fließt der Pin in 
die Schaltungsberechnung ein? Was für einen (Innen-)Widerstandswert hat 
so ein Pin? Hmm... ich habe schon viel gegoogelt und auch zu 
Spannungsteiler, Pullup-/Pulldown-Widerständen gelesen, aber jetzt bin 
ich immer mehr verwirrt.

Wenn mir jemand weiterhelfen und Licht ins Dubnkel bringen könnte, wäre 
ich euch sehr dankbar.

Vielen Dank!
Marlena

ps.: mit der Programmierung hab ich kein Problem (Informatik-Studentin)

von Marlena (Gast)


Angehängte Dateien:

Lesenswert?

Ähnlich der Schaltung im angehängten Bild.

Vielen Dank,
Marlena

von Karl H. (kbuchegg)


Lesenswert?

Marlena schrieb:

> Die Funktionsweise eines Pullup-/Pulldown-Widerstands sind mir bereits
> klar (vgl. Spannungsteiler, wobei der Widerstand des Schalters im
> offenen Zustand gegen unendlich und im geschlossenen Zustand gegen 0
> geht.

Darum gehts aber nicht in erster Linie.

Es geht darum, dass wenn der Schalter offen ist (und es keinen 
Pullup/Pulldoen gibt), die Leitung einfach in der Luft hängt! Also weder 
indirekt mit Vcc noch indirekt mit GND verbunden ist.

Und so eine Leitung nennt man gemeinhin 'ANtenne'. Und die fängt sich 
jedes rumstreunende elektromagnetische Feld in der Umgebung ein und wenn 
die dahinterliegende Schaltung nur hochohmig genug ist (und ein 
digitaler Eingang ist das im Idealfall), dann pendelt der ausgelesene 
Wert wie ein Wilder zwischen 0 und 1 hin und her, je nachdem ob du in 
der Nähe bist (denn du bist auch eine Antenne), ob der Fernseher 
eingeschaltet ist, ob dein Handy gerade einen Anruf bestätigt etc.

Der Pullup/Pulldown ist als in erster Linie kein Spannungsteiler (obwohl 
das natürlich rechnerisch so stimmt) sondern sorgt dafür, dass es auch 
dann eine indirekte Verbdindung mit entweder GND oder Vcc gibt, wenn der 
Schalter offen ist.

von friedrich (Gast)


Lesenswert?

Hallo Marlena,

Du schreibst:
>Ich habe nun gelesen, dass man noch optional einen Schutzwiderstand
(MOhm-Bereich) in Reihe mit dem Digital Input Pin des µC schalten
könnte, um einen zu hohen Stromfluss auf den Pin des µC zu verhindern.

Solange es sich um normale Taster/Schalter/... und um einen 
Versorgungsspannungsbreich von 5V an. den z.B. auch der Taster 
angeschlossen ist: NEIN, das ist Humbug. Normale Reihenfolge wäre z.B: 
Vcc (Betriebbspannung) - Pullup Widerstand des Tasters - Taster - GND. 
Zwischen Taster und Widerstand gehst Du zum Prozessor. Später kümmern 
wir uns um die  Entprellung (siehe Tutorials).

Im übrigen - wenn wir schon über Ohm und Spannungsteiler reden: der 
Prozessor hat auch einen EIngangswiderstand. Wenn Du dem in Serie eine 
MOhm Widerstand schlten würdest würde ein Teil der Einangsspannung daran 
abfallen und vorbei wäre es mit Deiner Einangsspannung - das hast Du 
richtig erkannt.

Grüße

von friedrich (Gast)


Lesenswert?

Sorry Karl Heinz, überschnitten.

von Jim M. (turboj)


Lesenswert?

> Schutzwiderstand (MOhm-Bereich) in Reihe mit dem Digital Input Pin des µC

Klingt nicht korrekt, da die Leckströme der Pins bei einigen MOhm in 
Reihe dann signifikante Spannungen erzeugen könnten.

> Wie fließt der Pin in die Schaltungsberechnung ein?

Ist ein CMOS Eingang. Der Pullup/down ist normalerweise grob 50kOhm nach 
VCC/GND - ohne ist der Pin "offen" und es fliesst nur o.g. Leckstrom, 
der sollte im Datenblatt stehen (Input leakage current). Geschaltet wird 
über die anliegende Spannung.

von Karl H. (kbuchegg)


Lesenswert?

> Ich habe nun gelesen, dass man noch optional einen
> Schutzwiderstand (MOhm-Bereich) in Reihe mit dem Digital
> Input Pin des µC schalten könnte, um einen zu hohen Stromfluss
> auf den Pin des µC zu verhindern.

Die Input Pins sind in der Regel hochohmig genug, so dass da kein 
exzessiver Stromfluss stattfindet. Mit einem weiteren Angstwiderstand 
würdest du nur einen weiteren Spannungsteiler ins Spiel bringen, das 
hast du völlig richtig erkannt.

> Wie fließt der Pin in die Schaltungsberechnung ein?
Als Eingangspin?

Solange deine daran angehängte Schaltung keinen hochohmigen Ausgang zum 
Pin hin hat, kannst du den Pin mehr oder weniger komplett ignorieren.

von Krapao (Gast)


Lesenswert?

Ein AVR hat nur interne Pull-Up Widerstände. Interne Pull-Down 
Widerstände wären schön, haben die AVRs aber nicht.

Zu den internen Schutzdioden (engl. clamping diodes):

Atmel gibt an:
"It is not recommended that the clamping diodes are conducting more than 
maximum 1 mA"
http://www.atmel.com/Images/doc2508.pdf

Mit einem 1 MOhm Serienwiderstand könntest du nominal bis 1000 V an den 
Pin geben ohne dass die Schutzdioden verrecken... Die Anwendung von 
Atmel oben zur Erkennung des Nulldurchgangs bei einer 
Netzwechselspannung nutzt das aus.

"Normale" Schaltungen wie z.B. deine Tasterschaltung nutzen das bei 
weitem nicht aus, so dass der Serienwiderstand entweder entfällt (GND <= 
Signalspannung <= Vcc) oder wesentlich kleiner gewählt wird z.B. 10 kOhm 
bei Signalspannungen bis 10 V.

von Peter D. (peda)


Lesenswert?

Marlena schrieb:
> Kann man einen Input-Pin als GND in einer
> Schaltung und einen Output-Pin als Vcc betrachten?

Auf keinen Fall.
Ein offener Eingang ist undefiniert (verboten). Er muß immer auf ein 
definiertes Potential gelegt werden oder man darf ihn im Programm auf 
keinen Fall verwenden. Das geht z.B. durch maskieren (AND), man liest 
den Port ein und überschreibt das undefinierte Bit mit 0.

Ein definierter Pegel kann durch Einschalten des internen Pullup 
erreicht werden. Das ist für alle unbenutzten Pins zu empfehlen, da der 
verbotene Bereich eine erhöhte Stromaufnahme bewirkt.

Ein Ausgang hat entweder 0 (GND) oder 1 (VCC), was man eben in ihn 
eingeschrieben hat. Es sein denn, man überlastet ihn, was bei einem 
gewissenhaften Entwickler aber nicht passieren sollte.


Marlena schrieb:
> ps.: mit der Programmierung hab ich kein Problem (Informatik-Studentin)

Dann bist Du aber die Ausnahme. Die meisten Anfänger programmieren 
drauflos, ohne sich erst einen Programmablaufplan zu machen und erzeugen 
so den grausligsten Spaghetticode, den sich keiner ansehen möcht.


Peter

von Marlena (Gast)


Lesenswert?

Hallo Ihr,

erstmal vielen Dank für eure Antworten! Ganz klar ist mir es leider 
immer noch nicht... vielleicht muss ich einfach nochmal darüber 
schlafen...

Zu dem oben angehängten Schaltungsbild von mir: Wie würde die Berechnung 
der Schaltungen (Spannungen an den einzelnen Widerständen und am Pin) 
aussehen?
Der "Schutzwiderstand" R1 sowie der Widerstand R2 befinden sich in einer 
Parallelschaltung, oder? D.h. der Gesamtwiderstand der Parallelschaltung 
bestehend aus R1 und R2 berechnet sich wie folgt: 1/Rges = 1/R1 + 1/R2 
und ist somit kleiner als der R1 und R2. Bei geschlossenem Schalter 
(SW1) wuerde an R1 sowie R2 5V anliegen. Oder etwa nicht? Wie viel 
Potential würde dann noch am PIN also nach R1 anliegen?

Viele Grüße,
Marlena

von friedrich (Gast)


Lesenswert?

Hallo Marlena,

zur Spannungberechnung am Einganspin.

Annahme 1: Schalter gedrückt.
Der Schlter ist niederohmig, also liegt R1 an Vcc (+5V). Damit liegt an 
R2 +5V, den Strom kannst Du Dir selbst errechnen, ist aber für die 
Betrachtung unerheblich. Wenn Strom fließen kann dann von +5V über R1 in 
den Pin hinein nach Masse. Also brauchts Du den Strom der in den Pin als 
Eingang hineinfließen kann aus dem Datenblatt (meist typ oder max Werte, 
I(Input High)). Das werden im Eingangszustand einige wenige uA sein. U = 
I * R. Wenn dann auch noch etwas >5V rauskommt kannst Du erkennen dass 
die ganze Spannung am R1 abfällt.

Annahme 2: Schalter offen
Jetzt liegt der Eingang auf Masse, Zu dem Widerstand R1 ist noch R2 in 
Serie. Das sind nominell 1M + 1k = 1,001M (genau gerechnet müsstetst Du 
jetzt die Toleranzen der Widerstände bertachten, bei 1M und 5% hättest 
Du da schon an Toleranz mehr als die 1k). Wir für die Betrachtung daher 
den 1k vergessen da ere unerheblich ist und in der Größe durch den 1M 
nicht ins Gewicht fällt.
Jetzt suchen wir wieder den Eingangsstrom aus dem Datenblatt (I(input 
Low)) und rechnen asu wieviel Spannung diesmal abfällt - Ich denk dass 
das aber auch einen sehr großen Wert geben wird.

Wenn Du es anders betrachten willst:
Du kannst auch für die beiden Fälle aus R=U/I den 
"Ersatzinnenwiderstand" des Eingangs der beiden Fälle bertachten. Dazu 
nimmst Du z.B. den Eingangsstrom (typ oder max) und U=VCC. Damit kommst 
Du dann auf einen sehr hohen Eingansgwiderstand. Zu dem Schaltest Du 
dann auch noch den 1M in Serie. Was dabei rauskommt ist ein 
Spannungsteiler, den kannst Du Dir selbst überlegen.

Fazit:
In beiden Fällen fällt durch den bereits geringen Querstrom an dem 
enormen Widerstand die gesamte am Eingang zur Verfügung stehende 
Spannung ab, es kommt also am eigentlichen Pin Nichts an. Darum werden 
Eingänge normalerweise nicht mit Widerständen in Serie beschaltet.
Ausnahme: R-C Glieder als Filter, zur Entprellung, oder als 
Eingansgspannungsteiler in Kombination eiens gesamten 
Widerstandsnetzwerkes wenn du eine höhere Eingangsspannung als Vcc hast 
(z.B. 24V) - Aber das sind schon wiedeer andere Kapitel.

Grüße

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.