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)
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.
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
> 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.
> 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.
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.
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
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
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