Como digital digitalmente, leia um pino que está em pinMode OUTPUT?

Eu tenho um teste muito simplesesboç no qual estou tentando definir um pino comoHIGH e depois leia seu estado comdigitalRead. Aqui está o meu desenh

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    delay(1000);

    pinMode(3, OUTPUT);
    digitalWrite(3, HIGH);
    delay(1000);

    pinMode(3, INPUT);
    Serial.println(digitalRead(3));
}

Resultado do monitor serial:

0
0
0
0

Compreendi que mudar o pinMode impedirá que sejaHIGH. Então, defina um pino paraHIGH emOUTPUT e depois mudar paraINPUT modo @ mudará paraLOW. Portanto, o digitalRead sempre retornará 0. Se eu não alterar o pinMode, ele não poderá ler o pino. Então, como posso ler a configuração atual de um pino que está emOUTPUTodo @ sem perder o valor?