Go Down

Topic: [gelöst] Digital Input (Read 843 times) previous topic - next topic

Tenere

Apr 26, 2010, 05:00 pm Last Edit: Apr 26, 2010, 08:13 pm by Tenere Reason: 1
Moin, Moin,

ich begreife es einfach nicht !

Ich nutze einen Seeeduino 328 und möchte ein digitales Signal abtasten.

Ich nutze folgenden Code:
Code: [Select]

int sensorValue;

void setup() {
 Serial.begin(115200);
 pinMode(3, INPUT);
 //digitalWrite(3, HIGH);
}

void loop() {
 sensorValue = bitRead(PORTD, 3);
 Serial.print(sensorValue);
 delay(1000);
}


Auf der seriellen Schnittstelle bekomme ich immer eine 0 zurück.
Wenn ich jetzt den Eingang auf +5V brücke bleibt es bei der 0.  :o
Setzte ich digitalWrite(3, HIGH); bekomme ich eine 1 zurück.
Brücke ich den Eingang dann auf GND bekomme ich weiterhin die 1 zurück.  :'(

Ich habe auch schon einen anderen Eingang ausprobiert. Das Verhalten ist dasselbe.

Hat jemand eine Ahnung, wo mein Denkfehler liegt ?

Danke für jeden Tipp.

Grüsse
T.

domspitze

Hey,

muss es nicht PINB sein, was Du nutzen musst?! So versteh ich es.

Siehe hier:http://www.arduino.cc/en/Reference/PortManipulation

PORTB is the register for the state of the outputs. For example;

PORTD = B10101000; // sets digital pins 7,5,3 HIGH

You will only see 5 volts on these pins however if the pins have been set as outputs using the DDRD register or with pinMode().


PINB is the input register variable It will read all of the digital input pins at the same time.

Tenere

Ahhh ! Danke für den Stoss in die richtige Richtung !

Mit

sensorValue = bitRead(PIND, 3);

läuft das gleich viel besser !

Danke schön !

Grüsse
T.


Go Up