Контакты NodeMcu и светодиод RGB

Я использую NodeMcu для своего проекта, и у меня заканчиваются контакты. У меня подключен модуль MFRC522, ИК-приемник, зуммер и светодиод RGB. Я столкнулся с проблемой: всякий раз, когда я начинаю сканирование RFID-меток с помощью модуля MFRC522, встроенный светодиод начинает очень быстро мигать, а цвет светодиода RGB меняется на неопределенный.

Я посмотрел определения контактов NodeMcu, но не смог найти информацию о том, какие контакты я могу использовать для этого, а какие нет, и почему это происходит только после запуска RFID-считывателя.

р>

Это мой эскиз проводки:

Я нашел это изображение макета контактов, а также техническая таблица.

Код не должен иметь большого значения, поскольку он работает до запуска считывателя RFID, но на всякий случай вот настройка считывателя:

#define SS_PIN D4   // SPI — вывод выбора ведомого устройства
#define RST_PIN D2  // SPI — вывод сброса — фактически не подключен

MFRC522 mfrc522(SS_PIN, RST_PIN);

// Начальная настройка для SPI и MFRC522
bool rfidSetupCompleted = false;
void setupReader()
{
  SPI.begin();
  mfrc522.PCD_Init();
  rfidSetupCompleted = true;
}

Вот определения контактов светодиода RGB:

#define LED_BLUE D8
#define LED_GREEN D3
#define LED_RED D2

Любая помощь приветствуется! Я предполагаю, что использую штифт, который используется для других целей (например, D8), но не могу понять, какой именно и почему. Я пытался поменять контакты и переключить D0 и D8 (зуммер и один контакт светодиода), но безуспешно. Я также пробовал отключать каждый контакт светодиода отдельно, но это тоже ничего не дало.

, 👍0

Обсуждение

какую библиотеку для MFRC522 вы используете? Я думаю, вам следует настроить все контакты SPI для библиотеки, чтобы установить правильный интерфейс SPI. Или, если библиотека не инициализирует библиотеку SPI, вам следует сделать это в setup()., @Juraj

@Юрай, я использую это: https://github.com/miguelbalboa/rfid Библиотека принимает только эти два параметра, поэтому я не уверен, нужно ли это. И я инициализирую библиотеку SPI в своем коде установки., @Johannes Mols

@Juraj У меня это есть в методе настройки, который я опубликовал выше. Это выполняется до того, как я начну использовать MFRC522. У меня так получилось, потому что я разбил код на несколько файлов., @Johannes Mols

тогда SPI выглядит нормально, потому что D5, D6 и D7 являются выводами SPI по умолчанию в библиотеке SPI., @Juraj

@Юрай, да, именно так. У меня есть один провод, подключенный к D8, который, согласно этому изображению, является «HCS»: https://pradeepsinghblog.files.wordpress.com/2016/04/nodemcu_pins.png?w=616. Я не уверен, может ли это вызвать проблемы, @Johannes Mols

D8 — ведомый. Выберите, если esp8266 является ведомым. в вашем случае esp8266 является ведущим, поэтому вы можете выбирать контакты выбора подчиненного устройства/кабеля для устройств на шине SPI. Обычно в качестве вывода CS для первого устройства используется вывод SS, но это не является обязательным., @Juraj

проблема может быть в питании платы, @Juraj

Модуль MFRC522 3,3 В?, @Juraj

Это означает, что я не могу использовать этот контакт для чего-то еще, когда хочу использовать MFRC522? Имеет смысл, что он делает странные вещи, когда я начинаю его использовать. И да, MFRC522 имеет напряжение 3,3 В, как и NodeMcu. Так что это не должно быть проблемой., @Johannes Mols

Сейчас я поменял местами D4 и D8, не знаю, почему у меня этого не было изначально. Встроенный светодиод больше не мигает, но светодиод RGB по-прежнему меняет свой цвет. Может ли это быть потому, что D4 — это TXD1, а D8 — TXD2? Он показывает мне связь между ними, когда я подключаю его в Fritzing. Могу ли я использовать для этого какие-либо другие контакты NodeMcu?, @Johannes Mols

@Juraj Я обнаружил, что цвета работают правильно, когда я запускаю сканирование с помощью MFRC522 во второй раз. Во время сканирования он должен быть синим, но при первом сканировании он становится фиолетовым. При повторном нажатии кнопки запуска он работает корректно. Итак, я предполагаю, что мне нужно настроить читалку в самом начале программы или что-то подобное., @Johannes Mols

@Juraj Я исправил это, настроив MFRC522 в самом начале программы. Спасибо за помощь!, @Johannes Mols


2 ответа


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

1

Я исправил проблему, поменяв местами контакты D4 и D8, а затем настроив MFRC522 в самом запуске программы. Первоначально я настроил его еще до того, как начал использовать, поэтому цвет изменился при первом сканировании.

,

0

SPI.begin устанавливает режим io15 (D8), даже если он не используется в качестве контакта SS для вашего устройства. Лучше использовать io15 (D8) в качестве контакта выбора подчиненного устройства для одного из подчиненных устройств. В вашем случае для одного устройства, подключенного к шине SPI.

Пинья io 0 (D3) и io 2 (D4) имеют встроенные подтягивающие напряжения, поскольку они являются контактами конфигурации загрузки. Установите для них НИЗКИЙ уровень сразу после установки для них режима pinMode, чтобы ток не попадал на ножки светодиодов RGB.

,