Arduino + радиомодуль nrf24

ess.work@yandex.ru
Offline
Зарегистрирован: 06.11.2017

Здравствуйте, понимаю, что тема избитая, но самостоятельно справиться с модулем NRF24 не получается.

Вот моя схема соединения. 

 

Потключено все правильно.  При тестировании модулей, на правильность соединения и их роботоспособность, в COM портах появляется следующее:

Код программ:

Передатчик :

 


#include <SPI.h>
#include <RF24.h>
RF24 radio(8, 7); // можно использовать любые
const uint32_t pipe = 123456789; // адрес
byte massiv[1];

void setup()
{
  Serial.begin(9600);
  printf_begin();
  //radio.setAutoAck(false);
  radio.begin();
  radio.setDataRate(RF24_250KBPS); // скорость обмена данными RF24_1MBPS или RF24_2MBPS
  radio.openWritingPipe(pipe); // открыть канал на отправку

  //W_REGISTER(MASK_MAX_RT,0);

  radio.printDetails();  // Вот эта строка напечатает нам что-то, если все правильно соединили.
  delay(5000);      
}


void loop()   
{
  massiv[0] = 255;
  radio.write(massiv, 1);
  delay(500);
  massiv[0] = 155;
  radio.write(massiv, 1);
  delay(500);
}


int serial_putc( char c, FILE * ) {
  Serial.write( c );
  return c;
}

void printf_begin(void) {
  fdevopen( &serial_putc, 0 );
}

 

Приемник :

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
 
RF24 radio(8, 7);
const uint32_t pipe = 123456789;
 
byte massiv[4];
 
void setup(void)   
{
  //pinMode(13, OUTPUT);
  Serial.begin(9600);
  printf_begin();
  //radio.setAutoAck(false);
  radio.begin();
  //radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS); // RF24_1MBPS или RF24_2MBPS
  radio.openReadingPipe(0,pipe); // открыть канал на приём
  radio.startListening(); // приём
 
  radio.printDetails();  // Вот эта строка напечатает нам что-то, если все правильно соединили.
  delay(5000);      
}
 
 
void loop()  
{
  if(radio.available())
    {
      radio.read(massiv, 1);
      if(massiv[0] == 255)
        {
          Serial.println(massiv[0]); 
          digitalWrite(13, HIGH);
        }
 
      if(massiv[0] == 155)
        {
          Serial.println(massiv[0]); 
          digitalWrite(13, LOW);
        }        
     }
}
 
 
int serial_putc( char c, FILE * ) {
  Serial.write( c );
  return c;
}
 
void printf_begin(void) {
  fdevopen( &serial_putc, 0 );
}
 
В чем проблема понять не могу. В регистрах не сильно разобрался, думаю проблема в них, но уже нервы сдают.
 
p.s. Загружал программу сканер на оба модуля. В результате все работает отлично, видно что загруженность каналов увеличивается, когда включаю wi-fi, и можно определить какие каналы заняты.
 
Тестировал как здесь http://arduino.ru/forum/apparatnye-voprosy/proverka-rabotosposobnosti-nrf24l01 . Результат приблизительно такой же. Если кто знает что можно еще попробовать, буду благодарен.
 
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015
b707
Offline
Зарегистрирован: 26.05.2017

Во-первых, это не схема. а х..р собачий.

Во-вторых, если вы думаете, что на ваших картинках что-то видно - то вы ошибаетесь.

В-третьих, прочитал два раза - так и не понял, в чем у вас проблемы.

Выложите коды правильно, диагностику ошибок вставьте в виде теста, а не картинок. И четко сформулируйте, в чем проблема, что работает, а что нет.

И лучше это сделать в разделе "Программирование" или "Аппаратные вопросы", так как это раздел для проектов.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
ess.work@yandex.ru
Offline
Зарегистрирован: 06.11.2017

jeka_tm Спасибо! тестовые примеры заработали!!! 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

пожалуйста)