I have a very simple test sketch in which I'm trying to set a pin to HIGH
and then read its state with digitalRead
. Here is my sketch.
void setup()
{
Serial.begin(9600);
}
void loop()
{
delay(1000);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
delay(1000);
pinMode(3, INPUT);
Serial.println(digitalRead(3));
}
Serial monitor result:
0
0
0
0
I have come to understand that changing the pinMode will stop it from being HIGH
. So setting a pin to HIGH
in OUTPUT
mode and then changing to INPUT
mode will change it to LOW
. So the digitalRead will always return 0. If I don't change the pinMode it won't be able to read the pin. So how can I read the current setting of a pin that is in OUTPUT
mode without losing the value?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…