Taster bei einem Arduino?
Hallo,
Ich habe in einem Video diese Schaltung gefunden:
Wenn der Taster nicht gedrückt wird, dann fließt der Strom von Pin2 über den Widerstand zu GND.
Wenn der Taster nicht gedrückt wird, ist die Verbindung zwischen dem 5VPin und Pin 2 getrennt.
Wenn der Taster gedrückt wird, dann fließt der Strom vom 5VPin zu Pin2.
Bedeutet das, dass die Verbindung zischen GND und Pin2 durch das drücken getrennt wird?
1 Antwort
Nein, Pin 2 und GND sind hier immer verbunden.
Wenn der Schalter nicht gedrückt wird ist Pin 2 über den Widerstand mit GND verbunden und somit Logisch 0.
Wird der Schalter gedrückt wird zusätzlich noch +5V verbunden. Da die GND Leitung einen Widerstand hat, wird das Signal am Pin 2 auf +5V "hochgezogen" und ist dann Logisch 1.
Schematisch sieht das dann etwa so aus

Wie gross die internen pullup Wiederstände sind kann ich dir nicht sagen, aber müsste bestimmt irgendwo im Datenblatt des vom Arduino verwendeten ATmega Controller stehen.
Der Spannungsbereich von digitalen Logiksignalen ist 0 - 0.8V für LOW und 2.4 - 5V für HIGH. Alles zwischen 0.8 und 2.4V ist verboten und darf in einer digitalen Schaltung nicht als Logiksignal verwendet werden. Dieser "verbotene" Spannungsbereich ist nicht definiert und jedes Bauteil reagiert anders, was zu grossen Problemen führen kann.
Allerdings musst du bedenken, dass in digitalen Schaltungen nahezu keine Ströme fliessen. Die Eingangswiederstände der Bauteile sind über 100MΩ, somit ist der Spannungsabfall über einen 10kΩ Wiederstand nur wenige Millivolt.
Das heisst, der Widerstandsunterschied muss nicht sehr gross sein, damit sich der Signalpegel vom einen Extrem ins andere verschiebt.
Sprich, sobald der Widerstand von GND nur wenige Ohm kleiner ist als der von +5V, verschiebt sich der Signalpegel nach LOW und umgekehrt wenn der Widerstand an +5V kleiner ist nach HIGH.
Das gilt auch für die internen Widerstände an den Ports des Arduino. Dort kannst du in der Software auch einprogrammieren ob der interne Widerstand nach GND (pulldown) oder nach +5V (pullup) geschaltet ist.
ahhh danke!! und weil der Pin2 auf Input programmiert ist, fließt kein Strom vom pin2 zu GND, wenn man den Taster nicht drückt.
Noch eine Frage:
Ich habe gelesen, dass die Pins beim Arduino einen eigenen Widerstand haben, wenn sie auf Input geschaltet sind. Das ist hier ja auch notwendig, da es sonst einen Kurzschluss geben müsste.
Der Widerstand an dem Pin2 ist dann auf jeden Fall kleiner als 10k. Weißt du wie groß genau?
Und das ganze funktioniert nicht mehr, sobald man einen Widerstand einbaut, der kleiner ist als der Widerstand an Pin2 oder?