Как использовать ESP32 WROOM GPIOS выше № 18 с arudino ide?

Я использую Arduino IDE версии 1.8.8. Я пытаюсь управлять ESP32-комната. Gpios на пинах 16 и 17 работают. У меня есть несколько реле на GPIO 18 и 19, которыми я также хотел бы управлять. Я также не могу контролировать GPIO, которым больше 17. Я пробовал от 18 до 27, но не могу их переключать.

#define relayPin3 18
#define relayPin4 19


int relayflag = 0;
void loop() {
  delay(1000);
  if (relayflag == 0){
    digitalWrite(relayPin3, LOW);
    digitalWrite(relayPin4, HIGH);   
    relayflag =1;
  }
  else
  {
    digitalWrite(relayPin3, HIGH);
    digitalWrite(relayPin4, LOW);
    relayflag = 0;
  }

}

Я заметил, что GPIO 18 и 19 также используются совместно с портами SPI.

Команда digitalWrite работает для любого GPIO или она используется другой библиотекой? Есть ли какая-то другая команда для получения доступа к GPIO, которую мне нужно использовать? Некую библиотеку, которую мне нужно изменить.

, 👍0


1 ответ


Лучший ответ:

3

Ответ найден, хотя и простой. Это мой первый опыт работы с Арудино, поэтому для тех, кто программирует микропроцессоры (в том числе и для меня), это будет выглядеть смешно.

Перед использованием вам необходимо объявить вывод как выход. Самое противоречивое в том, что такое случается лишь иногда. Для работы некоторых контактов вам не обязательно использовать pinMode.

 pinMode(relayPin1, OUTPUT);
,

Нам всем нужно с чего-то начинать в изучении новых вещей. Молодец, что опубликовал свое решение., @Duncan C

Если вы не установите режим вывода, результаты будут неопределенными. Возможно, он уже находится в нужном вам режиме, а может и нет., @Duncan C