Миграция проекта Arduino Uno R3 в Wemos D1 R2 — проблемы с распиновкой

Поэтому я решил приобрести плату Wemos D1 R2, чтобы мои старые проекты Arduino Uno R3 могли получить некоторые новые функции IoT. Однако, даже если мой код отлично работает в Uno, я хочу протестировать его с помощью D1, прежде чем добавлять функции. Моя проблема в том, что, даже если я нашел таблицы, показывающие различия между выводами двух плат, я не могу понять соответствие между выводами.

Итак, я даю вам таблицу ниже. Допустим, я хочу определить эхо- и триггерные контакты для датчика в своем коде. Например:

#define TRIGGER_PIN 4
#define ECHO_PIN 3

На моем Uno это контакты D3 и D4. Но я не могу понять, какие эти контакты будут в Wemos D1 R2. Также две мои платы можно увидеть ниже для сравнения

, 👍4


2 ответа


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

6

Сложность платы WeMos заключается в том, что обозначения контактов отличаются от других плат Arduino.

Иногда цифровые выводы на платах Arduino обозначаются нотацией Dn. Например: «Подключите триггерный контакт HC-SR04 к D4 на Uno». На самом деле некоторые платы, такие как Nano, даже используют обозначение Dn pin на шелкографии. Это всего лишь способ дальнейшего отличия выводов от выводов An. Вы будете ссылаться на этот вывод только по номеру 4 в своем коде.

Платы WeMos отличаются. На самом деле вам нужно использовать D3 и D4 в вашем коде для управления контактами, помеченными D3 и D4 на шелкографии:

#define TRIGGER_PIN D4
#define ECHO_PIN D3

Мы можем взглянуть на исходный код ядра ESP8266 для Arduino, чтобы понять, почему: https://github.com/esp8266/Arduino/blob/ 2.4.0/варианты/d1_mini/pins_arduino.h#L40-L50

static const uint8_t D0   = 16;
static const uint8_t D1   = 5;
static const uint8_t D2   = 4;
static const uint8_t D3   = 0;
static const uint8_t D4   = 2;
static const uint8_t D5   = 14;
static const uint8_t D6   = 12;
static const uint8_t D7   = 13;
static const uint8_t D8   = 15;
static const uint8_t RX   = 3;
static const uint8_t TX = 1;

Теперь вы можете увидеть это, если используете исходный код:

#define TRIGGER_PIN 4
#define ECHO_PIN 3

На самом деле это относится к контактам с маркировкой D2 и RX на WeMos D1 R2!

,

Идеальный ответ, чтобы разобраться в этом. По делу и ясно! Спасибо., @Galinho Salonica

Если я решу использовать цифры с D, например, TRIGGER_PIN D4, подключу ли я перемычку триггера к D2 (вывод Arduino) или к D4 (физический D4 на Wemos)?, @Galinho Salonica

Используйте имена D*n*, отмеченные на плате WeMos, в своем коде, и будет использоваться контакт с этой маркировкой. т.е. если вы напишете D4 в своем коде, то подключите провод к контакту с маркировкой D4 на плате., @per1234


0

У меня нет платы WeMos, но я бы сказал, что GPIO05 — это цифровой контакт 3, а GPIO04 — цифровой контакт 4.

,