Связь Arduino ESP8266
Гугля по этой теме, я заметил две странные вещи.
Иногда Tx и Rx подключаются напрямую, несмотря на то, что он работает на разных напряжениях, иногда используется резисторный делитель, иногда он проходит через резистор. Почему нет консенсуса? В чем отличия?
Почему участники так упрямо используют программный UART? Есть ли какая-то непонятная мне причина, которая должна помешать мне использовать встроенный UART?
@Karol, 👍3
1 ответ
Иногда Tx и Rx подключаются напрямую, несмотря на то, что он работает на разных напряжениях, иногда используется резисторный делитель, иногда он проходит через резистор. Почему нет консенсуса? В чем отличия?
Существует некоторая неопределенность относительно того, имеет ли ESP8266 входы, устойчивые к напряжению 5 В, или нет. Эта неопределенность связана с различиями в ранней таблице данных на китайском языке, переведенной сообществом, и текущей таблице данных на английском языке. Тем не менее, лучше перестраховаться и преобразовать сигнал 5 В с Arduino в сигнал 3,3 В с помощью надлежащего преобразователя логического уровня или резистивного делителя (обратите внимание, что последний может ограничить максимальную скорость передачи данных, которую вы можете использовать).
Подробнее можно прочитать здесь:
- https://hackaday.com/2016/07/ 28/ask-hackaday-is-esp8266-5v-толерантный/
Почему участники так упрямо используют программный UART? Есть ли какая-то непонятная мне причина, которая должна помешать мне использовать встроенный UART?
Неверная информация порождает неверную информацию. Люди копируют некачественные примеры и руководства и передают эти плохие знания другим1.
Многие платы Arduino имеют только один аппаратный порт UART, который используется совместно с USB-подключением к ПК. Трудно надежно использовать этот UART для другой последовательной связи, поскольку это лишит вас возможности загружать код, когда ваше оборудование подключено. Так что в этом случае проще использовать SoftwareSerial (или одну из лучших реализаций).
Однако я бы никогда не рекомендовал использовать SoftwareSerial, если только вы абсолютно не обязаны. Он едва работает на скорости 115200 бод (одна из распространенных скоростей передачи ESP8266 по умолчанию ). Если у вас есть удобный аппаратный UART, то вы действительно должны использовать его, по крайней мере, ради вашего здравомыслия.
1: Еще хуже примеры, когда люди используют SoftwareSerial для связи через контакты аппаратного UART... это просто глупо...
- WS2812 — сначала белые, а затем ближе к концу становятся красными/желтыми/оранжевыми.
- Как узнать сопротивление внутреннего подтягивающего резистора?
- Пытаюсь прошить ESP8266 с помощью Arduino UNO
- Сдвиг уровня 5В <-> 3,3В
- Ультразвуковой датчик HC-SR04: Как проверить напряжение на выводе ECHO
- HLW8032 UART отправляет случайные данные (регистры часто переполняются)
- Как настроить контакт WEMOS D1 R2 Vin для максимального выходного напряжения?
- Правильный выбор источника питания для Arduino - ESP8266 - HC-SR04