Последовательное соединение Wemos Mini и Pro Micro

В то время как использование 3.3 v Pro Mini и Wemos mini для связи через последовательный порт было успешным, при попытке использовать 5v Pro Micro он потерпел неудачу.

Чтобы преодолеть другой логический уровень, я использовал резисторы 10K + 20K, чтобы успешно снизить напряжение Pro-Micro от 5 В до 3,3 В на контактах Tx и Rx. Кроме того, поскольку они находятся на одной печатной плате, контакты GND подключены и RAW to 5V at wemos mini также подключен. На данный момент он питается с помощью USB-входа MCU ( пробовал подключаться только к Pro-Micro, только к Wemos и к обоим ).

Schematics В чем может быть проблема ?

, 👍0

Обсуждение

Похоже, что вы пытались установить сдвиг уровня как на TX, так и на RX PIN. Вы хотите, чтобы он был *только* между TX-контактом Arduino и RX-контактом ESP. Не между TX ESP и RX Arduino., @Majenko

@Majenko см. Добавленную схему., @Guy . D

Да, я так и думал. ESP TX для Arduino RX должен быть простой провод, ничего больше., @Majenko

Также вы можете обнаружить, что ваши резисторы слишком высоки. Я использую 1k/2k., @Majenko

@Majenko - OK.. Теперь я понимаю :), @Guy . D

@Majenko - Я следил за онлайн-учебником :/, @Guy . D

Да, вы никогда не можете доверять этим онлайн-людям. =), @timemage

@timemage - Я вижу, вы острый последователь моих бесконечных ошибок ( Majenko 2 ) :), @Guy . D

@Majenko - чтобы избежать моего следующего вопроса, как предложил timemage в моем последнем вопросе, когда I2C между 3,3 и 5 В - мне понадобятся оба резистора ?, @Guy . D

Для I2C вам действительно нужен активный сдвигатель уровня I2C. I2C не пушпульный, как серийный, а открытый сток. Однако вы, вероятно, можете просто проигнорировать его, так как внутренние импульсные резисторы Arduino ограничат ток до такого крошечного количества, что диоды ESD в ESP8266 не будут заботиться (и есть несколько необоснованные слухи, что это 5V терпимо в любом случае)., @Majenko

@Majenko - Перемычка резистора 10K не решила проблему :(, @Guy . D

Ваше USB-питание поступает от компьютера?, @Majenko

@Majenko - Неправильно перепутал Rx @ Pro-Micro. Теперь, когда Tx имеет 10K и 20K, а Rx подключен напрямую + Serial1 Юрая - Проблема теперь РЕШЕНА, @Guy . D


1 ответ


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

2

Вам не нужно преобразование логического уровня между 5-Вольтовым Micro Arduino и 3,3-Вольтовым Wemos D1 mini. 5 В ATmega 328p считывает 3,3 В как ВЫСОКИЙ, а esp8266 может выдержать логический уровень 5 В для тестов. Для длительного подключения вы можете добавить преобразование логического уровня с помощью делителя напряжения для преобразования 5 В ATmega TX в 3,3 В esp8266 RX.

Контакты RX/TX на Arduino Mini являются последовательными. Контакты RX/TX на Arduino Micro являются серийными 1. Последовательный только USB на Микро.

,

Но у него есть Tx и Rx фактические контакты, которые используют Serial.begib(9600) таким же образом, @Guy . D

Это я знаю. Меняет ли это ответ Майенко?, @Guy . D

@Guy.D, разница в логическом уровне не проблема. поэтому я предположил, что вы использовали тот же скетч с Serial для Mini и Micro, вместо использования Serial1 для Micro. вам не нужно использовать сдвиг уровня для теста., @Juraj

да, использовался тот же код., @Guy . D

@Guy.D, тогда я угадал правильно, и в этом была проблема. для микро используйте Serial1 для связи с Wemos, @Juraj

Переход на " Serial1 всех Серийных` экземпляров этой проблемы не решил. И решение Майенко тоже., @Guy . D

Ничего не передавалось... что / как бы вы посоветовали попробовать?, @Guy . D

Только при применении Майенко + ваших решений, решается проблема. пожалуйста, обновите, @Guy . D

Снятие RX ( на PRO-Micro стороне ). Он не работал, когда он был установлен, @Guy . D