Таким образом, вы записываете на контакты 1 и 2, не устанавливая их для вывода, и вы устанавливаете вывод 22 на низкий уровень без причины, если вывод 22 вообще существует.
я очень простой тестэскиз в котором я пытаюсь установить булавку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
режим без потери значения?