У меня очень простой тест sketch, в котором я пытаюсь установить вывод HIGH, а затем читать его состояние с помощью digitalRead. Вот мой эскиз.
void setup()
{
Serial.begin(9600);
}
void loop()
{
delay(1000);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
delay(1000);
pinMode(3, INPUT);
Serial.println(digitalRead(3));
}
Результат последовательного монитора:
0
0
0
0
Я понял, что изменение pinMode остановит его на HIGH. Таким образом, установив контакт в HIGH в режиме OUTPUT, а затем изменив его на INPUT, он изменит его на LOW. Поэтому digitalRead всегда будет возвращать 0. Если я не изменю pinMode, он не сможет прочитать контакт. Итак, как я могу прочитать текущую настройку вывода, который находится в режиме OUTPUT, не теряя значения?