NRF24 перестал работать.
- Войдите на сайт для отправки комментариев
Чт, 14/11/2019 - 12:57
Всем доброго времени суток! Имею многострадальный радио модуль NRF24, проблемы с питанием у меня нет так-как есть модуль питания для NRF. Определенное время модули (у меня их 3) работали, без проблем как на Ардуино так и на Малинке. В один момент модули перестали работать (все 3). Какой бы я скетч не загружал модули не работают.
Этот скетч у меня работал, и на нем модуль перестал работать:
#include <SPI.h> // Подключаем библиотеку для работы с шиной SPI #include <nRF24L01.h> // Подключаем файл настроек из библиотеки RF24 #include <RF24.h> // Подключаем библиотеку для работы с nRF24L01+ #define WITH_ARDUINO #define GREEN 6 #define RED 7 RF24 radio(9, 10); // Создаём объект radio для работы с библиотекой RF24, указывая номера выводов nRF24L01+ (CE, CSN) uint8_t RPi [2]; const uint8_t leds[] = {GREEN,RED}; void setup(){ Serial.begin(9600); radio.begin(); // Инициируем работу nRF24L01+ radio.setChannel(0x76); // Указываем канал приёма данных (от 0 до 127) radio.setDataRate (RF24_1MBPS); // Указываем скорость передачи данных (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1Мбит/сек radio.setPALevel (RF24_PA_HIGH); // Указываем мощность передатчика (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm) radio.enableDynamicPayloads(); #ifdef WITH_ARDUINO radio.openReadingPipe (0,0xF0F0F0F0E1LL); // Открываем i трубу с идентификатором F0F0F0F0E1LL для приема данных (на ожном канале может быть открыто до 6 разных труб, которые должны отличаться только последним байтом идентификатора) Serial.println(0); #else radio.openReadingPipe (6,0xF0F0F0F0E1LL); Serial.println(6); #endif radio.startListening(); // Включаем приемник, начинаем прослушивать открытую трубу for (size_t i = 0; i < sizeof(leds);i++) { pinMode(OUTPUT,leds[i]); } } void loop(){ if(radio.available()){ // Если в буфере имеются принятые данные radio.read(&RPi,sizeof(RPi)); for(size_t i = 0; i < sizeof(RPi);i++) { Serial.print(RPi[i]); Serial.print(' '); digitalWrite(leds[i],RPi[i]); } Serial.println(); } }
это скетч приемника, передачи данных в нем нет. Если два таких скетча залить в две ардуины - связи не будет
Скетч передатчика для Ардуино:
Скрипт для Малинки :