esp8266- как использовать GPIO0 в качестве входа?
Во-первых, мои настройки: У меня есть Arduino Uno с Adafruit Audio Shield. У меня есть Wemos D1 Mini, управляющий проектом.
Мне нужно, чтобы D1 знал, когда воспроизводится файл.
У меня есть контакт GPIO на Uno, запрограммированный на высокий уровень при воспроизведении файла. Низкий в противном случае. У меня есть два контакта GPIO на Wemos, которые не используются, D3 и D4 (GPIO0 и GPIO2). (Я использую схему делителя 10K через резистор 20K, чтобы снизить 5V от Uno до 3v3 для Wemos). D4 уже является проблемой, потому что он должен быть высоким для загрузки, а GPIO от Uno обычно низкий. D3 (GPIO0) должен быть высоким для загрузки и имеет внутреннюю подтяжку.
Вот моя проблема. Как отключить подтягивание на GPIO0? Даже когда Uno GPIO имеет низкий уровень (0 В), GPIO0 измеряет 2,4 В, что в моем скетче рассматривается как логическая 1.
Любые советы будут оценены. (Я думал изменить полярность на Uno так, чтобы low = true, но даже когда Uno подает на вывод низкий уровень, вывод Wemos GPIO0 по-прежнему находится на уровне 2,4 В, поэтому логика low-true тоже не будет работать.).
@user3573562, 👍1
1 ответ
Не используйте делитель напряжения и никогда не устанавливайте вывод Uno в ВЫСОКИЙ уровень.
Потяните io 0 esp8266 LOW с помощью pinMode вывода Uno.
pinMode(TO_ESP_IO0, OUTPUT); // устанавливает на пин НИЗКИЙ уровень
pinMode(TO_ESP_IO0, INPUT); // пускаем на подтягивающий резистор io0
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату