Pages: [1]   Go Down
Author Topic: pinMode in loop()  (Read 704 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21674
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3040
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2322
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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. smiley-wink
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 3488
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Oder in der 20 LED Version hier: http://blog.blinkenlight.net/experiments/measurements/led-camera/.
Logged

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

Pages: [1]   Go Up
Jump to: