nRF24L01+ Невозможно установить адрес
Я пытаюсь установить связь между Arduino Nano и Arduino Uno с помощью nRF24L01+.
Я пробовал использовать RF24 от ManiacBug и TMRH20, но когда я открываю последовательный монитор после загрузки примеров программ «Начало работы с ManiacBug» и программы pingpair от TMRH20, он не меняет свой адрес.
Я использую адреса для чтения и записи: 0xF0F0F0F0E1LL и 0xF0F0F0F0D2LL, но ответ, который я получаю, следующий:
Я проверил все соединения и попробовал разные примеры, доступные в Интернете, но ничего не помогло.
@Teck Freak, 👍0
1 ответ
Лучший ответ:
Вы можете установить адреса с помощью команд SPI. Например, 5-байтовый адрес передатчика может быть записан как (сначала старший бит):
digitalWrite(CSN_pin, LOW);
SPI.transfer(0x30); // write TX_ADDR register
SPI.transfer(tx_addr[0]);
SPI.transfer(tx_addr[1]);
SPI.transfer(tx_addr[2]);
SPI.transfer(tx_addr[3]);
SPI.transfer(tx_addr[4]);
digitalWrite(CSN_pin, HIGH);
где tx_addr
— массив из 5 байт. Аналогичным образом вы можете записывать в регистры RX_ADDR, схему регистров см. в таблице данных nRF24L01+, раздел 9.
Кроме того, следующий код позволяет вам прочитать регистр TX_ADDR:
digitalWrite(CSN_pin, LOW);
SPI.transfer(0x10); // читаем регистр TX_ADDR
data_out[0] = SPI.transfer(0x0);
data_out[1] = SPI.transfer(0x0);
data_out[2] = SPI.transfer(0x0);
data_out[3] = SPI.transfer(0x0);
data_out[4] = SPI.transfer(0x0);
digitalWrite(CSN_pin, HIGH);
Serial.print("TX_ADDR=");
Serial.print(data_out[0]);
Serial.print(data_out[1]);
Serial.print(data_out[2]);
Serial.print(data_out[3]);
Serial.println(data_out[4]);
- nRF24L01 - пропускает конечные символы во время передачи
- NRF24L01 PA+LNA с Arduino
- Не вызовут ли помехи одновременно работающие радиомодули nrf24L01 ?
- Состояние цифрового вывода Arduino не передается через NRF24L01, тогда как состояние аналогового вывода передается, почему?
- nRF24L01 +pa +lna link не связывается
- Как автоматически сбросить nrf24l01+ с кодом?
- Как отправить данные датчика с Arduino через NRF24L01 на Raspberry Pi
- nRF24L01 + потеря пакетов, вызванная считыванием Arduino и связью с датчиками
@MichaeIT Я попробовал это решение, но безуспешно. Я просмотрел ветку https://github.com/nRF24/RF24/issues/211, но все равно безуспешно., @Teck Freak
Попробуйте писать и читать, как предложено в приведенном выше примере. Если это не помогло, значит, возникла проблема с SPI., @MichaelT
Я попробовал это и получил ответ 00000. Проблема с SPI Arduino или nRF? Как я пробовал разные nRF и Arduino., @Teck Freak
@MichaeIT Мне удалось заставить его работать на Arduino Uno, подключив контакты MISO, MOSI и SCK непосредственно к контактам заголовка ICSP, но в Arduino Nano это не удалось., @Teck Freak