pinMode(pin, OUTPUT); // setzt ‘pin’ als Ausgang
Arduino digitale Pins sind standardmäßig Eingänge, weshalb sie nicht extra als Eingänge mit 'pinMode()' festgelegt werden müssen. Als Eingang konfigurierte Pins haben einen Zustand hoher Impendanz.
Es gibt im ATmega Chip auch komfortable 20 kΩ 'Pullup' Widerstände die per Software zugängig sind. Auf diese eingebauten 'Pullup' Widerstände kann in folgender Weise zugegriffen werden:
pinMode(pin, INPUT); // setzt ‘pin’ als Eingang
digitalWrite(pin, HIGH); // schaltet den 'Pullup' Widerstand ein
Pullup Widerstände werden normalerweise verwendet um Eingänge wie Schalter anzuschliessen. In dem vorgestelten Beispiel fällt auf, dass der Pin nicht als Ausgang definiert wird obwohl auf ihn geschrieben wird. Es ist lediglich die Methode den internen 'Pullup' Widerstand zu aktivieren.
Als Ausgang konfigurierte Pins sind in einem Zustand geringer Impendanz und können mit maximal 40 mAmpere Strom von angeschlossenen Elementen und Schaltkreisen belastet werden. Dies ist genug um eine LED aufleuchten zu lassen (seriellen Widerstand nicht vergessen), aber nicht genug um die meisten Relais, Magnetspulen oder Motoren zu betreiben.
Kurzschlüsse an den Arduino Pins genau wie zu hohe Stromstärken können den Output Pin oder gar den ganzen ATmega Chip zerstören. Aus dem Grund ist es eine gute Idee einen Ausgangspin mit externen Elementen in Serie mit einem 470Ω oder 1KΩ Widerstand zu schalten.
digitalRead(pin)
'digitalRead(pin)' liest den Wert von einem festgelegten digitalen Pin aus, mit dem Resultat entweder HIGH oder LOW. Der Pin kann entweder als Variable oder Konstante festgelegt werden (0-13).
value = digitalRead(Pin); // setzt 'value' gleich mit
// dem Eingangspin
digitalWrite(pin,value)
Gibt entweder den Logiclevel HIGH oder LOW an einem festgelegten Pin aus. Der Pin kann als Variable oder Konstante festgelegt werden (0-13).
digitalWrite(pin, HIGH); // setzt 'pin' auf high (an)
Das folgende Beispiel liest einen Taster an einem digitalen Eingang aus und schaltet eine LED eine wenn der Taster gedrückt wird:
int led = 13; // LED an Pin 13 angeschlossen
int pin = 7; // Taster an Pin 7 angeschlossen
int value = 0; // Variable um den Auslesewert zu speichern
void setup()
{
pinMode(led, OUTPUT); // legt Pin 13 als Ausgang fest
pinMode(pin, INPUT); // legt Pin 7 als Eingang fest
}
void loop()
{
value = digitalRead(pin); // setzt 'value' gleich mit
// dem Eingangspin
digitalWrite(led, value); // setzt 'led' gleich mit dem
} // Wert des Tasters
0 Antworten auf “Digitaler Input - Output”