====== Lesen eines Pins im pinMode(OUTPUT) ======
Wenn versucht wird mit //digitalRead()// einen Pin zu lesen, der vorher mit //pinMode(OUTPUT);//
als Ausgang konfiguriert wurde erhält man immer 0/LOW und der Port geht auch auf LOW.
Wir vermuten, dass der //digitalRead()// Befehl auch eine Umschaltung des Ports zum Eingang einhergeht, welche dafür sorgt dass die Pulldown Widerstände aktiviert werden.
Um dies zu umgehen und trotzdem nicht von jedem Ausgang eine Statusvariable mitführen zu müssen
kann man wie folgt vorgehen, um die Register des ATmega Chips direkt auszulesen:
port_status = bitRead(PORTD,2); // digitalen Pin 2 auslesen
Welchen Port und welchen Pin man für welche Arduino Pin-Nummer nehmen muss,
kann folgendem Diagramm von der [[http://arduino.cc/en/Hacking/PinMapping|Arduino Website]] entnommen werden:
{{:arduino:arduino-to-atmega8-pins.png|Arduino Pin Mapping}}
== Beispiel ==
Um Pin 13 auszulesen:
port_status = bitRead(PORTB,5);