Чтение состояния цифрового контакта 11, когда он установлен как ВЫХОД
Я установил контакт 11
в качестве выхода.
pinMode(11, ВЫВОД);
Однако я хочу иметь возможность читать его состояние (если оно HIGH
или LOW
), однако, поскольку оно установлено как OUTPUT
, я не могу использовать digitalRead()
.
Я нашел это в Интернете:
Serial.println(bitRead(PORTD,3));
//Читает бит 3 регистра PORTD, который содержит текущее состояние (высокий/низкий) контакта 3
Если я хочу прочитать состояние контакта 11
, то это:
Serial.println(bitRead(PORTD,11));
будет достаточно? Или мне также нужно изменить ПОРТ
?
@user1584421, 👍-3
Обсуждение1 ответ
▲ 2
однако, поскольку он установлен как ВЫВОД, я не могу использовать digitalRead().
Где вы это услышали? digitalRead()
вернет состояние вывода, установленного в режим OUTPUT. (В этом случае это будет состояние, которое вы установили в последний раз). В качестве демонстрации, это обычная идиома для инвертирования состояния выходного вывода:
digitalWrite(LEDPIN, !digitalRead(LEDPIN));
,
@JRobert
Смотрите также:
- NodeMCU - Vin контакт как выход 5V?
- Использовать все контакты как цифровые входы/выходы
- Что такое ICSP pin (разъём)?
- Сколько датчиков может поддерживать один модуль Arduino?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Какой тип разъема использует система GROVE?
- Неиспользуемые контакты в Arduino L293D motor shield?
- Как выбрать вывод передачи в библиотеке IRremote для Arduino Uno?
Почему бы не попробовать?, @StarCat
пожалуйста, не спрашивайте
что произойдет, если я это сделаю?
... сначала сделайте это, а потом спрашивайте, если вы что-то не понимаете, @jsotola