Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
skript:digitalpins [2014/10/16 12:37] fbonowski |
skript:digitalpins [2018/04/21 21:07] (aktuell) d.golovko [Spezialfall: Die Pins 0 und 1 sind eure Verbindung zum PC] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== Kontakt zur Welt: Die Digitalausgänge ===== | + | ====== Kontakt zur Welt: Die Digitalausgänge ====== |
Um mit dem Arduino Dinge (Licht, Motoren, Heizungen, etc...) zu steuern, werden fast immer die [[http://arduino.cc/en/Tutorial/DigitalPins|Digitalpins]] verwendet. | Um mit dem Arduino Dinge (Licht, Motoren, Heizungen, etc...) zu steuern, werden fast immer die [[http://arduino.cc/en/Tutorial/DigitalPins|Digitalpins]] verwendet. | ||
- | Diese können sowohl als Eingang als auch als Ausgang verwendet werden. | + | ===== Funktion des Pins festlegen mit "pinMode(pinNummer, Modus)" ===== |
+ | Diese können sowohl als Eingang als auch als Ausgang benutzt werden. Da der Arduino nicht von selbst wissen kann, wie wir die Pins verwenden wollen, müssen wir es ihm explizit mitteilen. Das geht mit dem Kommando [[http://arduino.cc/en/Reference/PinMode|pinMode()]]. | ||
- | Bevor sie etwas "ausgeben" können, müssen sie zuerst mit der [[http://arduino.cc/en/Reference/PinMode|pinMode()]] Funktion als Ausgang konfiguriert werden: | + | Also z.B. |
<code c++> | <code c++> | ||
- | pinMode(2,OUTPUT); // Verwende Digitalpin No2 als Ausgang. | + | pinMode(3, INPUT); // verwende Pin 3 als Eingang |
+ | pinMode(4, OUTPUT); // verwende Pin 4 als Ausgang | ||
+ | |||
+ | // verwende Pin 5 als Eingang und verbinde ihn über einen internen Widerstand mit +5V | ||
+ | pinMode(5, INPUT_PULLUP); | ||
</code> | </code> | ||
- | Die Pins 0 und 1 dienen als serielle Schnittstelle zur Kommunikation mit dem Computer, also lasst von denen jetzt erstmal die Finger...\\ | + | Arduino merkt sich die Einstellung, nachdem sie einmal festgelegt wurde, solange das Programm läuft. Es reicht also in vielen Fällen, ''pinMode'' einmal im ''setup'' aufzurufen. |
- | Nachdem sie einmal (z.B. im setup()) als Ausgang eingestellt wurden, kann man im Programm mit der Funktion [[http://arduino.cc/en/Reference/DigitalWrite|digitalWrite(Pin\# ,LOW/HIGH)]] die Pins zwischen 0V (LOW) und 5V (HIGH) umschalten: | + | |
+ | ===== Spezialfall: Die Pins 0 und 1 sind eure Verbindung zum PC===== | ||
+ | Die Pins 0 und 1 dienen als serielle Schnittstelle zur Kommunikation mit dem Computer, also lasst von denen jetzt erstmal die Finger, sonst kann es sein, dass euer Arduino anfängt, seltsame Dinge zu tun...\\ | ||
+ | ===== Digitalpins als Ausgang "OUTPUT" ===== | ||
+ | |||
+ | Nachdem sie einmal (z.B. im ''setup()'') als Ausgang eingestellt wurden, kann man im Programm mit der Funktion [[http://arduino.cc/en/Reference/DigitalWrite|digitalWrite(Pin\# ,LOW/HIGH)]] die Pins zwischen 0V (LOW) und 5V (HIGH) umschalten: | ||
<code c++> | <code c++> | ||
digitalWrite(2,LOW); //schalte Pin 2 auf 0V | digitalWrite(2,LOW); //schalte Pin 2 auf 0V | ||
Zeile 17: | Zeile 27: | ||
An Pin 13 ist auf dem Board eine LED angeschlossen, die im Beispiel [[http://arduino.cc/en/Tutorial/blink|Basics/Blink]] abwechselnd an- und ausgeschaltet wird. | An Pin 13 ist auf dem Board eine LED angeschlossen, die im Beispiel [[http://arduino.cc/en/Tutorial/blink|Basics/Blink]] abwechselnd an- und ausgeschaltet wird. | ||
+ | <note important> | ||
+ | **Die Digitalpins vertragen nur einen begrenzten Strom (empfohlen sind max. 20mA)** | ||
+ | |||
+ | Wird dieser Strom überschritten (z.B. indem ein Pin, der auf ''HIGH'' geschaltet ist, mit einem Draht mit einem, der auf ''LOW'' geschaltet ist, verbunden wird.) gehen die kleinen Transistoren im Innerern des Arduino kaputt! | ||
+ | |||
+ | Das Selbe passiert, wenn ihr versucht, einen zu großen Verbrauchen (z.B. einen Motor oder normalen Lautsprecher) direkt an einem Digitalpin zu betreiben. | ||
+ | Häufig bleibt es beim Ausfall des betroffenen Pins, es garantiert euch allerdings niemand, dass nicht der ganze Arduino im Eimer ist.\\ | ||
+ | |||
+ | Genauere Information gibt es [[http://playground.arduino.cc/Main/ArduinoPinCurrentLimitations|hier]] | ||
+ | </note> |