Die Funktionsweise von Pull-up / Pull-down Widerständen
Ein Pull-up Widerstand soll den Eingang des Mikrocontrollers auf HIGH ziehen, solange er mit nichts verbunden ist. Aus diesem Grund wird der Eingangspin über den Pull-up Widerstand(ein ganz normaler Widerstand mit einer Größe von mehreren kOhm) mit den 5V Spannung des Arduino verbunden. Dadurch entsteht nur ein kleiner, sehr begrenzter, Stromfluss, der jedoch genügt, damit der Pin auf HIGH steht.
Ein Pull-down Widerstand soll genau das Gegenteil bewirken, also den Pin auf LOW ziehen, solange er mit nichts verbunden ist. Dazu wird der Pin über einen Widerstand(mehrere kOhm groß) mit dem Ground verbunden.
Da bei beiden Varianten ein Widerstand dazwischen geschaltet ist, ist das einkommende Signal stärker, wodurch es den Status des Eingangs bestimmern kann.
Interner Pull-up Widerstand
Praktischerweise haben die verschiedenen Arduino Boards bereits interne Pull-up Widerstände integriert. Diese kann man an allen Pins verwenden, wobei ein paar Dinge beachtet werden müssen. An Pin 0 bis 12 funktionieren sie einwandfrei. An Pin 13 ist ja bekanntlich die LED und deren Widerstand angeschlossen. Diese begrenzen den Stromfluss, wodurch die Wirkung des Pull-up Widerstands zunichte gemacht wird.
Auch an den analog Pins sind die internen Pull-up Widerstände vorhanden, wobei hier durch die Verwendung der Pull-up Widerstände die analogen Werte zerstören würde. Deshalb sollte man die Pull-up Widerstände nur an den analog Pins verwenden, wenn man sie, in diesem Sketch, nur als digitale Inputs verwenden möchte.
Um die Pull-up Widerstände in der Arduino IDE zu aktivieren, schreibt man:
pinMode(Pin, INPUT);
digitalWrite(Pin, HIGH);
Die jeweilige Größe des Pull-up Widerstands variiert von Mikrocontroller zu Mikrocontroller.
Da Pull-up Widerstände um einiges häufiger verwendet werden, besitzen Mikrocontroller nur integrierte Pull-up aber keine Pull-down Widerstände.
Externe Pull-up / Pull-down Widerstände
Sollte man einen Pull-down Widerstand benötigen, oder der verwendete Mikrocontroller keinen internen Pull-up Widerstand haben, muss man externe Pull-up oder Pull-down Widerstände verwenden. Dabei verbindet man immer den Eingangspin über einen großen Widerstand mit den +5V oder dem Ground. In Kombination mit einem Button sähe das so aus:
Danke, war sehr hilfreich. Bin noch Anfänger und war mir nicht so ganz im klaren was pull up bzw. down Widerstände sind.
AntwortenLöschenIch glaub, ich habs jetzt! Mir war das mit der Stabilisierung des Pins nicht wirklich klar (obwohl jetzt eh alles logisch erscheint). Hab seit Tagen dieses Problem gewälzt und kann nach etlichen Erklärungen, Internetseiten, Artikeln usw. die Notwendigkeit und das physikalische Konzept dahinter begreifen und endlich was anfangen damit :-).
AntwortenLöschenVielen Dank für deine klaren Worte!
LG, Roland