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 Arduino Website entnommen werden: BeispielUm Pin 13 auszulesen: port_status = bitRead(PORTB,5); |
|
Letzte Aktualisierung: © boxtec internet appliances · the better security products |