Go Down

Topic: pinMode in loop() (Read 770 times) previous topic - next topic

speedy1982

Hallo zusammen,

wenn ich einen Pin in der setup function mit pinMode(13, OUTPUT) gesetzt habe, kann man dann in der loop function den Mode ändern und wird in Echzeit übernommen?

Grüße
speedy

uwefed

Ja, Du kannst das jederzeit machen.
Grüße Uwe

jurs


wenn ich einen Pin in der setup function mit pinMode(13, OUTPUT) gesetzt habe, kann man dann in der loop function den Mode ändern und wird in Echzeit übernommen?


Ja, Du kannst jederzeit im Programm den Mode mit pinMode in Echtzeit ändern.

Achtung: Änderst Du den pinMode, dann kann sich unter Umständen auch der Pegel des Pins ändern.
Beispiel: Du wechselst von
pinMode(PIN, INPUT)
zu
pinMode(PIN, INPUT_PULLUP)
dann wechselt der Pegel nach HIGH, wenn er nicht durch externe Beschaltung runtergezogen wird.
Wechselst Du danach mit
pinMode(PIN, OUTPUT)
dann ist gleichzeitig HIGH am Ausgang gesetzt.

Hättest Du dagegen von
pinMode(PIN, INPUT)
auf
pinMode(PIN, OUTPUT)
gewechselt, dann wäre der Ausgangspegel LOW.

Also aufpassen, was Du wie und ggf. in welcher Reihenfolge Du schaltest.

Denn wenn Du zwei entgegengesetzte Pegel als OUTPUT zusammenschaltest, bekommst Du einen direkten Kurzschluss zwischen 0V und 5V und danach womöglich zwei nicht mehr funktionierende Pins am Controller.

Als Beispielprogramm für das Umschalten mit pinMode habe ich hier mal einen "Leitungstester" gepostet:
http://arduino.cc/forum/index.php/topic,149759.0.html (unter Reply #8)

Bei dem wird immer ein Pin des zu testenden Kabels auf OUTPUT gesetzt, alle anderen auf INPUT, und dann wird nachgeschaut, an welchem anderen Kabelende bzw. Mehrzahl welchen anderen Kabelenden das Signal ankommt, um ggf. Verdrahtungsfehler (Kurzschlüsse, nicht verbundene Enden) im zu prüfenden Kabel zu finden.

Zu möglichen Schwierigkeiten, Pin13 als Input zu verwenden, wenn es sich um ein Board mit Pin13-LED handelt, siehe:
http://arduino.cc/en/Reference/digitalWrite
Die geannten Schwierigkeiten betreffen allerdings NICHT die Boards im R3-Design.

sth77

Ein schönes Beispiel ist die Verwendung einer LED als Näherungssensor, dazu findet sich auch einen Artikel im Playground: http://playground.arduino.cc/Learning/LEDSensor
Habe ich zwar noch nicht weiter getestet, aber immerhin schonmal ein Youtube-Video gesehen. ;)
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Udo Klein

Check out my experiments http://blog.blinkenlight.net

Go Up