Neuigkeiten    Das Projekt    Technik    RoboSpatium    Unterstützung    Stichwortverzeichnis    Download    Reaktionen    Spiele    Gadgets    Kontakt   




<<< Demultiplexer         Digitaler Zollstock >>>

Schalter einlesen

Ein Video zum Einlesen von Schaltern gibt's noch nicht

Hinterlasst einen Kommentar, wenn ihr Ideen habt, was in diesem Video gezeigt werden sollte (außer den schon in diesem Kapitel erwähnten Themen).

Übersicht

In diesem Kapitel ist nachzulesen:


"0" oder "1"?

GPIOs Raspberry Pi und Arduino UNO als Eingang
Abbildung 1:
In diesem Kapitel werde ich euch zeigen, wie man den Zustand von Schaltern einlesen kann. Dabei gilt es festzustellen, ob an einem GPIO die jeweilige Logikspannung oder 0V anliegt. Diese Logikspannung beträgt z.B. beim Raspberry Pi +3.3V und beim Arduino UNO +5V. Gemessen wird die Spannung dabei immer zwischen dem betreffenden GPIO und Masse des verwendeten Rechners. Die maximale Logikspannung an einem GPIO darf nie überschritten werden, da dies umgehend zur Zerstörung des Mikrocontrollers oder Computers führt!
Liegen 0V an, so gibt die Software üblicherweise eine logische "0" aus, die Spannung wird auch als LOW-Signal bezeichnet. Bei Anliegen der Logikspannung ist der Rückgabewert eine logische "1", die Spannung wird als HIGH-Signal bezeichnet.

Hysterese

0V am Eingang
Abbildung 2:
0V entsprechen einer logischen "0", und 3.3V beziehungsweise 5V entsprechen einer logischen "1". Was aber ist mit Spannungswerten zwischen diesen beiden Extremen? Mit Hilfe eines Potentiometers kann das erforscht werden:
Dazu werden die beiden äußeren Anschlüsse des Potentiometers an Masse beziehungsweise die betreffende Logikspannung, also an +3.3V beim Raspberry Pi und an +5V beim Arduino angeschlossen. Der mittlere Pin des Potentiometers wird über einen 1kΩ Sicherheitswiderstand (wieso siehe weiter unten) mit einem GPIO verbunden. Um feststellen zu können, ob die Software eine logische "0" oder eine "1" zurückgibt, wird eine LED inklusive Reihenwiderstand an einen zweiten GPIO angeschlossen. Welchen Wert der Widerstand haben muss und was sonst noch beim Anschließen einer LED an einen GPIO zu beachten ist, steht im Kapitel zum Schalten von LEDs.
Die beiden Leitungen des Multimeters werden mit Masse und dem als Eingang verwendeten GPIO verbunden. Das Potentiometer wird nun so gedreht, dass an dem GPIO 0V zu messen sind. Die LED ist ausgeschaltet.

Obere Schaltschwelle am Eingang
Abbildung 3:
Nun wird das Potentiometer so gedreht, dass die Spannung am GPIO langsam ansteigt, bis die LED eingeschaltet wird, die Software also eine logische "1" zurückgibt.
Das ist beim Raspberry Pi bei einer Spannung von 1.34V der Fall, beim Arduino UNO bei 2.47V.

Volle Logikspannung am Eingang
Abbildung 4:
Das Potentiometer wird als nächstes so gedreht, dass die maximale Spannung anliegt, also 3.3V beim Raspberry Pi und 5V beim Arduino UNO. Die LED bleibt dabei eingeschaltet, die Software gibt oberhalb der zuvor ermittelten Schwellspannung den Wert "1" zurück.

Untere Schaltschwelle am Eingang
Abbildung 5:
Nun wird das Potentiometer in die Gegenrichtung gedreht, womit die Spannung am GPIO langsam sinkt, bis schließlich die LED wieder erlischt, weil die Software eine logische "0" als Rückgabewert liefert. Das passiert beim Raspberry Pi bei einer Spannung von 1.17V, beim Arduino UNO bei 2.22V.

Fallende Spannung bis 0V am Eingang
Abbildung 6:
Wird das Potentiometer weiter gedreht bis auf 0V, so bleibt die LED ausgeschaltet. Die Software gibt unterhalb der zweiten ermittelten Schwellspannung eine logische "0" zurück.

Hysterese am Eingang von Arduino UNO und Raspberry Pi
Abbildung 7:
Zwischen der oberen Schwellspannung und der unteren Schwellspannung liegen beim Raspberry Pi 0.17V, beim Arduino UNO 0.25V. Die Eigenschaft, dass ein GPIO bei steigender Eingangsspannung erst ab einem höheren Level von "0" auf "1" schaltet, als umgekehrt von "1" auf "0" bei sinkender Eingangsspannung, bezeichnet man als Hysterese.

Schaltverhalten mit Rauschen am Eingang
Abbildung 8:
In realen Schaltkreisen ist immer ein gewisses Rauschen zu beobachten. Die Spannung ist nie konstant, sondern wird von kleinen, zufälligen Schwankungen überlagert. Die Hysterese am Eingang eines GPIO verhindert, dass der Rückgabewert ständig zwischen "0" und "1" hin und her springt, wenn die anliegende Spannung in der Nähe der Schwellspannung liegt. Das ist aber nur der Fall, so lange das Rauschen geringer ausfällt als die Differenz zwischen oberem und unterem Schwellwert.
Die orange gezeichnete Spannung überschreitet zum Zeitpunkt t1 erstmals die obere Schwellspannung, wodurch der Rückgabewert des GPIO von "0" auf "1" springt. Auf Grund des Rauschens wird der obere Schwellwert mehrfach unter- und wieder überschritten, nie aber der untere Schwellwert, womit der GPIO im Zustand "1" bleibt. Für den violett gezeichneten Spannungsverlauf gilt, dass dieser nach dem Zeitpunkt t2 zwar den unteren, nie aber den oberen Schwellwert überschreitet, womit der GPIO im Zustand "0" bleibt.

Schalterzustand einlesen

Offener Schalter mit Pull-Down Widerstand
Abbildung 9:
Der wohl einfachste Fall, Daten über einen GPIO einzulesen, ist es, den Zustand eines Schalters auszuwerten. Dazu müssen die beiden Zustände OFFEN und GESCHLOSSEN in die Zustände LOW (0v) und HIGH (5V beim Arduino UNO oder 3.3V beim Raspberry Pi) gewandelt werden. Benötigt wird dazu außer einem Schalter ein ohmscher Widerstand.
Wird der Widerstand wie hier zwischen Masse und GPIO angeschlossen, so spricht man von einem Pull-Down Widerstand. Der Schalter wird zwischen GPIO und der positiven Logikspannung angeschlossen. Der GPIO ist also mit Widerstand und Schalter verbunden.
Ist der Schalter geöffnet, so ist der GPIO über den Widerstand mit Masse verbunden und es ist eine Spannung von 0V an dem Eingang zu messen. Der Widerstand zieht die Spannung am GPIO auf 0V herunter - daher die Bezeichnung Pull-Down Widerstand. Der Rückgabewert der Software bei geöffnetem Schalter unter Verwendung eines Pull-Down Widerstandes ist "0".

Geschlossener Schalter mit Pull-Down Widerstand
Abbildung 10:
Sobald der Schalter geschlossen wird, besteht eine leitende Verbindung zwischen GPIO und positiver Logikspannung. Schalter und Widerstand bilden einen Spannungsteiler, wobei der ohmsche Widerstand des Schalters nahe 0Ω liegt, der Wert des Pull-Down Widerstandes allerdings im Bereich von einigen Kiloohm. Somit fällt so gut wie die gesamte Logikspannung am Pull-Down-Widerstand ab und das ist auch der Spannungswert am GPIO. Folglich ist der Rückgabewert der Software bei geschlossenem Schalter unter Verwendung eines Pull-Down Widerstandes die logische "1".

Offener Schalter mit Pull-Up Widerstand
Abbildung 11:
Die zweite Möglichkeit, den Zustand eines Schalters einzulesen besteht darin, den Taster zwischen GPIO und Masse und den Widerstand zwischen GPIO und positiver Logikspannung anzuschließen. In diesem Fall spricht man von einem Pull-Up Widerstand.
Im geöffneten Zustand ist der GPIO über den Widerstand mit der positiven Versorgungsspannung verbunden, womit diese an dem Pin anliegt. Der Widerstand zieht die Spannung am GPIO auf den Wert der Logikspannung hoch - daher die Bezeichnung Pull-Up Widerstand. Die Software gibt bei geöffnetem Schalter unter Verwendung eines Pull-Up Widerstandes eine logische "1" zurück.

Geschlossener Schalter mit Pull-Up Widerstand
Abbildung 12:
Wird der Schalter geschlossen, bildet dieser auch hier mit dem Widerstand einen Spannungsteiler. Der fast nicht vorhandene Widerstand des Schalters bewirkt, dass die Spannung am Mittelpunkt des Teilers und somit auch am GPIO auf (fast) Null Volt fällt. Die Software gibt unter Verwendung eines Pull-Up Widerstandes bei geschlossenem Schalter eine logische "0" zurück.
Der Wert eines verwendeten Pull-Up oder Pull-Down Widerstandes sollte im Bereich von einigen Kiloohm liegen, um den Stromfluss bei geschlossenem Schalter auf möglichst niedrigem Niveau zu halten.

Interne Widerstände

Arduino UNO mit unbeschaltetem Eingang
Abbildung 13:
Ist ein GPIO als Eingang geschaltet, ohne dass externe Bauteile angeschlossen sind, so ist der Zustand, den die Software zurückgibt, unbestimmt. Der Innenwiderstand des GPIOs in diesem Zustand ist sehr hoch und bereits kleinste Störungen bewirken ein Kippen des eingelesenen Wertes in die eine oder andere Richtung. Dieser Zustand wird daher als Floating (engl.: fließend), Hi-Z oder tri-stated bezeichnet.

Experimentelle Bestimmung des internen Pull-Up Widerstands
Abbildung 14:
Einen genau definierten Zustand auch eines unbeschalteten GPIOs erhält man, wie oben bereits gezeigt, durch einen Pull-Up oder Pull-Down Widerstand. Meist sind GPIOs intern mit derartigen Widerständen ausgestattet, die bei Bedarf ein- oder ausgeschaltet werden können. Der Wert dieser Widerstände liegt üblicherweise im Bereich einiger Kiloohm und ist den technischen Daten zu entnehmen. Man kann den Widerstandswert allerdings auch mit einem kleinen Experiment bestimmen:
Dazu wird ein Widerstand von z.B. zehn Kiloohm zwischen Masse und dem betreffenden GPIO geschaltet und der Pull-Up Widerstand per Software aktiviert. Damit wird der GPIO über den internen Widerstand mit der positiven Logikspannung verbunden. Über den externen Widerstand ist der GPIO mit Masse verbunden, womit wir einen Spannungsteiler erhalten. Bekannt sind die Logikspannung und der Wert des externen Widerstandes. Wird nun die am GPIO anliegende Spannung gemessen, so kann der Wert des internen Pull-UP Widerstandes über das Ohmsche Gesetz errechnet werden:
RPull-Up / RExtern = UPull-Up / UExtern
mit UPull-Up = ULogic - UExtern erhält man:
RPull-up = RExtern * (ULogic - UExtern) / UExtern


Experimentelle Bestimmung des internen Pull-Down Widerstands
Abbildung 15:
Das Experiment kann leicht abgeändert auch zur Ermittlung des Wertes des internen Pull-Down Widerstands durchgeführt werden. Dazu muss der externe Widerstand zwischen GPIO und positiver Logikspannung geschaltet und der interne Pull-Down Widerstand per Software aktiviert werden. Erneut wird die Spannung zwischen GPIO und Masse gemessen - was nun dem Spannungsabfall am internen Widerstand entspricht - und es gilt:
RPull-Down = RExtern * UGPIO / (ULogic - UGPIO)
Der Arduino UNO besitzt keine internen Pull-Down Widerstände. Beim Raspberry Pi kann entweder ein interner Pull-Up oder ein Pull-Down per Software aktiviert werden.

Messwerte Raspberry Pi und Arduino UNO

Messung interner Pull-Up Widerstand am Raspberry Pi
Abbildung 16:
Ich hab's am Raspberry Pi und am Arduino UNO mal gemessen und folgende Werte mit einem externen 10kΩ Widerstand erhalten:


Computer GPIO Nr. Pull-Up/Pull-Down UGPIO Ergebnis
Raspberry Pi P1-18 Pull-Up 0.54V 51kΩ
Raspberry Pi P1-18 Pull-Down 0.53V 52kΩ
Arduino UNO 7 Pull-Up 1.05V 38kΩ


Schutzbeschaltung

GPIO als Ausgang mit geschlossenem Schalter an Pull-Up Widerstand
Abbildung 17:
Software ist niemals frei von Fehlern! Daher sollte man seine Schaltungen immer so auslegen, dass auch bei unbeabsichtigter Aktivierung eines GPIOs als Ausgang, obwohl dieser mit einer als Eingang konzipierten Schaltung verbunden ist, kein Schaden entsteht. Als Beispiel dient der Schalter mit externem Pull-Up Widerstand:
Wird der GPIO irrtümlich als Ausgang geschaltet und ein HIGH-Signal ausgegeben, so besteht bei geschlossenem Schalter eine sehr gut leitende Verbindung hin zu Masse. Es fließt ein zu hoher Strom aus dem GPIO (source current), welcher diesen umgehend zerstört!

GPIO als Ausgang mit geschlossenem Schalter an Pull-Up Widerstand und Schutzwiderstand
Abbildung 18:
Abhilfe schafft ein weiterer Widerstand, der zwischen GPIO und Schalter geschaltet wird. Ist nun der GPIO bei geschlossenem Schalter als Ausgang definiert und auf HIGH-Signal, so begrenzt der Widerstand den fließenden Strom aus dem GPIO. Der Widerstand muss so gewählt werden, dass der maximale Strom des GPIOs nicht überschritten wird. Ein guter Wert ist 1kΩ.

GPIO als Ausgang mit geschlossenem Schalter an Pull-Down Widerstand
Abbildung 19:
Die Situation ist bei Verwendung eines Pull-Down Widerstandes ähnlich:
Nun besteht Gefahr bei geschlossenem Schalter, GPIO irrtümlich als Ausgang und LOW-Signal auf dem Pin. Hier fließt ein zu hoher Strom in den GPIO (sink current).

GPIO als Ausgang mit geschlossenem Schalter an Pull-Down Widerstand und Schutzwiderstand
Abbildung 20:
Auch hier schützt der zusätzliche Reihenwiderstand den GPIO und es ist ebenfalls zu beachten, dass dieser groß genug ist, den Strom auf ein ungefährliches Maß zu senken. 1kΩ ist als Schutzwiderstand ein guter Richtwert.

Reihenschaltung aus internem Pull-Up Widerstand und Schutzwiderstand bei geschlossenem Schalter
Abbildung 21:
Wird mit den internen Pull-Up oder Pull-Down Widerständen gearbeitet, so gilt, dass bei geschlossenem Schalter eine Reihenschaltung entsteht! Für die Spannung am GPIOgilt:
UGPIO = ULogic * RProtect / (RProtect + RPull-Up)
Da der interne Widerstand nicht geändert werden kann, muss der Sicherheitswiderstand deutlich kleiner gewählt werden. Bei 20mA Maximalstrom pro GPIO für den Arduino UNO sollte der Widerstandswert mindestens 5V / 0.02A = 250Ω betragen. Wie weiter oben gezeigt, gibt der Arduino bei Spannungen unterhalb 2.22V zuverlässig eine logische "0" zurück. Ferner wurde der interne Pull-Up Widerstand am GPIO zu 38kΩ bestimmt. damit ergibt sich ein Maximalwert für den Sicherheitswiderstand von:
RProtect = RPull-Up * ULogic / (ULogic - UGPIO = 38kΩ * 5V / (5V - 2.22V) ≈ 30kΩ
Selbst mit einem Sicherheitswiderstand von 10kΩ wird die Schaltschwelle zuverlässig unterschritten. 1kΩ sind auch bei der Verwendung des Internen Pull-Up Widerstandes eine gute Wahl.
Für den Rasberry Pi gelten 3.3V / 0.016A = 220Ω als Minimalwert. Mit internen Pull-Up/Down Widerständen von etwa 50kΩ werden die Schaltschwellen bei einem Maximalwert von bis zu 20kΩ zuverlässig unter- beziehungsweise überschritten. 1kΩ sind auch für den Raspberry Pi als Sicherheitswiderstand eine gute Wahl.

In- und externe Pull-Up/Down Widerstände gleichzeitig

Externer Pull-Down Widerstand bei gleichzeitig aktiviertem internen Pull-Up Widerstand
Abbildung 22:
Ein weiteres Problem mit fehlerhafter Software tritt bei gleichzeitiger Verwendung von internen und externen Pull-Up/Down Widerständen auf. Hier zu sehen ist der Zustand unter Verwendung eines externen Pull-Down Widerstandes bei gleichzeitig irrtümlich aktiviertem Pull-Up Widerstand:
Bei geöffnetem Schalter bilden die beiden Widerstände einen Spannungsteiler, womit die Spannung am GPIO keineswegs wie erwartet auf Masse gezogen wird. Je nach verwendetem Widerstandswert wird die Schwellspannung nicht unterschritten und die Software gibt selbst bei geöffnetem Schalter eine logische "1" zurück!
Die Problematik ist prinzipiell die Gleiche bei externem Pull-Up Widerstand bei gleichzeitig irrtümlich aktiviertem internen Pull-Down Widerstand. Mit dieser Kombination wird mit unter die Schwellspannung nicht überschritten, womit auch bei geöffnetem Schalter eine logische "0" zurückgegeben wird.

Externer Schutzwiderstand und Pull-Up Widerstand bei gleichzeitig aktiviertem internen Pull-Up Widerstand
Abbildung 23:
Ist ein externer Pull-Up Widerstand mit Reihenwiderstand zur Strombegrenzung verbaut und der interne Pull-Up Widerstand wird versehentlich ebenfalls aktiviert, so ergibt sich das schon in Abbildung 21 beschriebene Problem mit der entstehenden Reihenschaltung aus Sicherheitswiderstand und internem Pull-Up Widerstand bei geschlossenem Schalter. Ist der Sicherheitswiderstand im Verhältnis zum internen Pull-Up Widerstand zu groß, so wird auch bei geschlossenem Schalter die untere Schwellspannung nicht unterschritten.

Funktioniert euer Programm nicht wie vorgesehen, ist es immer ratsam, die Spannung am GPIO bei laufendem Programm mit geöffnetem und geschlossenem Schalter zu überprüfen!

Prellen

Oszillogramm Prellen
Abbildung 24:
Im Kapitel zu Schaltern und Relais habe ich den Effekt des Prellens bereits erklärt:
Die Schaltkontakte bestehen üblicherweise aus federnden Metallen. Verursacht durch die Elastizität der Materialien prallen die Kontakte beim Schließen eines Schalters mehrfach wieder voneinander ab, bevor diese verbunden bleiben. Als Folge dieses Prellens fließt im Verlauf des Vorgangs ein gepulster Strom durch den Schalter, anstelle eines sauberen Übergangs von Null hin zum zum Maximalstrom. Am GPIO springt die Spannung in schneller Folge zwischen 0V und der Logikspannung hin und her.
Beim Öffnen des Schalters reiben die Kontakte aneinander und es bildet sich ein (wenn auch mit unter nur sehr kleiner) Lichtbogen. Auch diese beiden Effekte bewirken ein Hin- und Herspringen der Spannung am GPIO. Werden mechanische Schalter in digitalen Schaltkreisen verwendet, so kann das Prellen als mehrfache Betätigung des Schalters interpretiert werden!

Kondensator und Widerstand zur Unterdrückung des Prellsignals, Schalter geschlossen
Abbildung 25:
Unterdrückt werden kann das hin- und herspringen der Logikspannung am GPIO durch eine Kondensator-Widerstand-Reihenschaltung zwischen den beiden Kontakten des Schalters. Ist der Schalter in einer Konfiguration mit Pull-Down Widerstand geschlossen, so fällt die gesamte Logikspannung zwischen GPIO und Masse ab.

Kondensator und Widerstand zur Unterdrückung des Prellsignals, öffnen des Schalters
Abbildung 26:
Wird der Schalter geöffnet, so bilden der Pull-Down Widerstand, der Kondensator und RC eine Reihenschaltung, wodurch die Spannung am Kondensator relativ langsam (in Abhängigkeit der Widerstandswerte von RPull-Down und RC) ansteigt. Im Gegenzug fällt die Spannung am Pull-Down Widerstand und somit auch am GPIO langsam ab. Die durch das Prellen hervorgerufenen Spannungsspitzen werden geglättet und auf Grund der langsam ansteigenden Spannung am Kondensator wird am GPIO die untere Spannungsschwelle im Verlauf des Schaltvorganges nur einmal unterschritten. Die Software erkennt entsprechend nur einen Übergang von "1" auf "0".

Kondensator und Widerstand zur Unterdrückung des Prellsignals, schließen des Schalters
Abbildung 27:
Beim Schließen des Schalters wird der Kondensator über den zusätzlichen Widerstand entladen. Am GPIO steigt die Spannung sprungartig auf den Wert der Logikspannung an. Öffnet sich der Schalter aufgrund des Prellens kurzzeitig wieder, so fällt die Spannung am GPIO wieder und zwar auf den Wert der Logikspannung minus (mehr oder weniger) der aktuellen Kondensatorspannung. Der Widerstand am Kondensator sollte also möglichst klein gewählt werden. 1kΩ sind ein guter Wert
Ohne den zusätzlichen Widerstand am Kondensator würde beim Schließen des Schalters ein sehr hoher Entladestrom aus dem Kondensator fließen, was unerwünschte Schwingungen und daraus resultierende Spannungsspitzen erzeugt!

Zeitkonstante beim Laden eines Kondensators
Abbildung 28:
Je größer die Kapazität des Kondensators, um so zuverlässiger wird das Prellen unterdrückt, aber um so träger reagiert das System. Bei einem zu großen Kondensator werden schnelle Schaltfolgen nicht mehr erkannt. Details zum Spannungsverlauf am Kondensator gibt's im Kapitel zu Schaltvorgängen. Als Kenngröße wird üblicherweise die Zeitkonstante verwendet:
τ = R * C
Diese gibt die Zeitspanne an, die vergeht, bis ein Kondensator auf 63% ge- beziehungsweise entladen ist. Soll ein Schalter also bis zu 10x pro Sekunde ein- und ausgeschaltet werden können (mehr ist mit einem mechanischen Schalter in der Praxis wohl kaum gefordert), so muss das Produkt aus Widerstandswert und Kapazität kleiner als 0.05s sein. Bei einem Pull-Down Widerstand von 10kΩ erhalten wir als Maximalwert für den Kondensator:
C < τ / R = 0.05s / 10kΩ ≈ 5μF
Da das Prellen meist nur in einer Zeitspanne von deutlich weniger als 10ms auftritt, ergibt sich ein unterer Wert von:
C > 0.01s / 10kΩ = 1μF


Vollständige Schaltung in Pull-Up Konfiguration
Abbildung 29:
Zusammen mit dem Schutzwiderstand bei unbeabsichtigtem Aktivieren des GPIO als Ausgang ergibt sich die hier zu sehende Schaltung unter Verwendung eines externen Pull-Up Widerstandes.

Anstelle der Verwendung einer Kondensator-Widerstand Kombination kann das Problem des Prellens auch rein softwaretechnisch angegangen werden. Dabei wird ein HIGH-Signal am GPIO erst dann als logische "1" interpretiert, wenn dieses eine vorgegebene Zeitspanne (z.B. 5ms) anhält. Gleiches gilt für ein LOW-Signal das ebenfalls erst als logische "0" ausgewertet wird, wenn dieses länger als 5ms anhält. Klingt einfach, hat aber auch so seine ganz eigenen Fallstricke.

Beispielschaltungen

Beispielschaltung mit internem Pull-Down Widerstand und externem Schutzwiderstand
Abbildung 30:
In der einfachsten Konfiguration wird nur ein Widerstand und ein Schalter benötigt. Dabei muss der interne Pull-Up oder Pull-Down Widerstand per Software aktiviert werden!. Hier ist die Version mit internem Pull-Down Widerstand zu sehen. Abbildung 21 zeigt die Version mit internem Pull-Up Widerstand. Ein Widerstand von 1kΩ ist in beiden Fällen ein guter Wert für den Sicherheitswiderstand bei Arduino UNO als auch Raspberry Pi.

Beispielschaltung mit externem Pull-Down und Schutzwiderstand
Abbildung 31:
Mit externem Pull-Down Widerstand sieht die Schaltung so aus. Mit Werten von 1kΩ für den Schutzwiderstand und 10kΩ für den Pull-Down Widerstand gibt's auch bei versehentlich aktivierten internen Widerständen bei Arduino UNO und Raspberry Pi keine Probleme. Abbildung 18 zeigt die Schaltung mit Pull-Up Widerstand, für welche die gleichen Werte anwendbar sind.

Schaltung in Pull-Down Konfiguration mit Kondensator zum Unterdrücken der Prellsignale
Abbildung 32:
Soll auch das Prellen des Schalters unterdrückt werden, so kommen neben dem Schalter noch 3 Widerstände und ein Kondensator zum Einsatz. Mit 1kΩ sowohl für den Schutzwiderstand als auch den Widerstand am Kondensator und 10kΩ als Pull-Down Widerstand bei einer Kapazität von 1μF am Kondensator sollte das Einlesen auch nicht so guter Schalter mit Raspberry Pi oder Arduino UNO funktionieren. Die Schaltung mit Pull-Up Widerstand zeigt Abbildung 29.

Bezugsquellen für Bauteile

Durch den Kauf von Bauteilen über die von mir angegebenen Affiliate-Partnerlinks in der Tabelle (oder in den Bannern auf meinen Seiten) unterstützt ihr meine Projekte - vielen Dank!
Die Links anzuklicken bedeutet allerdings keinen Kaufzwang - völlig ungezwungenes Stöbern ist möglich ;-)

Meine frei zugängliche Bildungsplattform ohne einzukaufen mit Hilfe einer Spende oder als Patreon zu unterstützen geht natürlich auch. Vielen Dank an alle, die mir bereits einen Obolus haben zukommen lassen!

Wenn ihr weitere, gut erhältliche Typen von Schaltern kennt, hinterlasst bitte einen Kommentar auf dieser Seite.

Bauteil Online Shops Bemerkung
Arduino UNO Arduino UNO auf eBay

Adruino UNO auf Amazon
Mikrocontroller bieten den günstigsten Einstieg in die Welt des "Physical Computing".
Raspberry Pi Raspberry Pi auf eBay

Raspberry Pi auf Amazon
Ein vollwertiger Computer mit sehr gutem Software-Support und GPIOs.
Als Minimalausstattung werden zusätzlich eine Micro SD-Karte (ab 4GB) und ein Netzteil (5V, mindestens 2A) benötigt.
Widerstände Widerstände auf eBay

Widerstände auf Amazon
Kohleschichtwiderstände mit 5% Toleranz sind günstig und für Experimente rund um Schalter gut geeignet.
Mikroschalter Mikroschalter auf eBay

Mikroschalter auf Amazon
Mikroschalter sind für Experimente rund um "Physical Computing" ausreichend.
Kondensatoren Sets Kondensatoren Sets auf eBay

Kondensatoren Sets auf Amazon
Toleranzwerte von 20% sind ausreichend für Experimente rund um "Physical Computing".
Lochrasterplatine Lochrasterplatinen auf eBay

Lochrasterplatinen auf Amazon
Europlatinen haben ein Lochrastermaß von 2.54mm.




<<< Demultiplexer         Digitaler Zollstock >>>


Neuigkeiten    Das Projekt    Technik    RoboSpatium    Unterstützung    Stichwortverzeichnis    Archiv    Download    Reaktionen    Spiele    Verweise    Gadgets    Kontakt    Impressum   





Twitter YouTube Hackaday Patreon TPO