Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
uc-welt:gscheiduino:05-eingaenge [2016/01/05 09:23] – Hannes Jochriem | uc-welt:gscheiduino:05-eingaenge [2024/02/06 09:43] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | [[uc-welt: | + | [[uc-welt: |
====== Kapitel 5: Eingänge ====== | ====== Kapitel 5: Eingänge ====== | ||
Zeile 78: | Zeile 78: | ||
Dazu verwenden wir den Code aus [[uc-welt: | Dazu verwenden wir den Code aus [[uc-welt: | ||
- | <file c kapitel02_led-an.ino> | + | <file c kapitel05_eingang.ino> |
void setup() | void setup() | ||
{ | { | ||
Zeile 90: | Zeile 90: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | Wenn wir das Programm auf den Controller laden erhalten wir das gewünschte Ergebnis. | ||
+ | |||
+ | Was zuvor mit " | ||
+ | |||
+ | Wir entfernen den 10k-Ohm Widerstand aus der Schaltung, nun hängt Pin7 über das violette Kabel hochohming in der Luft. Wenn wir nun das violette Kabel berühren und loslassen, fängt die rote LED an zu leuchten bzw. erlischt. | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | ===== Interner Pullup ===== | ||
+ | |||
+ | Um uns diesen externen Widerstand zu sparen, können wir eine sehr geniale Funktion der AVR-Controller nutzen: Die internen Pullup-Widerstände. | ||
+ | |||
+ | Im Datenblatt ist dieser so dargestellt: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Jeder I/O-Pin besitzt so einen Pullup-Widerstand. Eingeschaltet wird dieser sehr einfach mit folgenden zwei Schritten: | ||
+ | |||
+ | - Pin als Eingang definieren | ||
+ | - Pin auf HIGH setzen | ||
+ | |||
+ | Pin auf HIGH-setzen geschieht wie wir es in [[uc-welt: | ||
+ | |||
+ | <code c> | ||
+ | pinMode(PIN, | ||
+ | digitalWrite(PIN, | ||
+ | </ | ||
+ | |||
+ | Testen können wir das an unserem aktuellen Aufbau, bei dem wir den Widerstand entfernt haben. Wir erweitern den Code wie folgt: | ||
+ | |||
+ | <file c kapitel05_eingang-pullup.ino> | ||
+ | void setup() | ||
+ | { | ||
+ | pinMode(13, OUTPUT); | ||
+ | pinMode( 7, INPUT); | ||
+ | digitalWrite(7, | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | digitalWrite(13, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Wenn wir diesen Code auf den Controller laden erhalten wir das selbe Ergebnis wie mit Widerstand, die LED erlischt erst, wenn wir die Taste drücken. Ein Berühren des violetten Kabels hat keine Auswirkungen. | ||
+ | |||
+ | Wir vertiefen unser Wissen wieder mit einem kleinen Beispiel: [[uc-welt: |