У меня очень простой тест 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
, не теряя значения?