Как подключить NRF24L01 к Wemos D1 R2

У меня возникли проблемы с подключением NRF24L01 к плате Wemos D1 R2. Мне удалось на Arduino Uno. Кто-нибудь знает распиновку?

Я использовал (так же, как и с Uno):

D13 - SCK
D12 - MI
D11 - MO

D8 and D9 for CE and CSN

Код:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

// Радио NRF24
#define CE_PIN   'D8'
#define CSN_PIN  'D9'

RF24 radio(CE_PIN, CSN_PIN); // Создаем радио

  // Радио NRF24
  radio.begin();
  if (!radio.isChipConnected()) {
    Serial.println("ERROR: NRF24 Chip not connected");
  } else {
    Serial.println("NRF24 Chip connected");
    radio.setDataRate( RF24_250KBPS );
    radio.setRetries(3,5); // задержка, счет
    radio.openWritingPipe(slaveAddress);
  }

Результат: ОШИБКА: Чип NRF24 не подключен

Если я использую

#define CE_PIN   8
#define CSN_PIN  9

затем происходит сбой Wemos (исключение перезагрузки (4)), поэтому я попытался использовать D, но получил предупреждение, возможно связанное:

Предупреждение
 warning: multi-character character constant [-Wmultichar]
   22 | RF24 radio(CE_PIN, CSN_PIN); // Создаем радио
      |            ^~~~~~
 warning: multi-character character constant [-Wmultichar]
   22 | RF24 radio(CE_PIN, CSN_PIN); // Создаем радио

, 👍2

Обсуждение

Кто-нибудь знает распиновку? ...распиновку чего?, @jsotola

всегда форматировать сообщения об ошибках как код ... исправлено для вас, @jsotola

строки определяются двойными кавычками, например. "abc123" ... одиночные символы определяются одинарными кавычками, например. 'e' ... два символа в одинарных кавычках являются недопустимым синтаксисом, например. 'D8' ... удалите одинарные кавычки в двух операторах определения .... вы делаете Радио RF24 ('D8', 'D9');, когда вы должны делать Радио RF24 (D8, Д9);, @jsotola

@jsotola Не знал этого. Спасибо!, @FredV

FredV, ответы попадают в поле для ответов, @Juraj

@juraj Спасибо за то, что научил меня пользоваться форумом и за твой ответ!, @FredV


1 ответ


0

Выберите Wemos D1 R2/mini в меню «Инструменты» в среде IDE. Затем вы можете использовать Dx-имена пинов. Не заключайте их в кавычки.

Поскольку D8 – это контакт CS в расположении контакта 10 Uno, вы не можете использовать его в качестве CE. И поскольку у esp8266 меньше контактов, чем у Atmega328 Uno, контакта D9 нет. Я рекомендую использовать контакты D1 и D2 для CE и CSN.

RF24 radio(D1, D2);

Здесь вы можете прочитать, как контакты Dx сопоставляются с контактами esp8266 и какова общая функция этих контактов.

,