Arduino + радиомодуль nrf24
- Войдите на сайт для отправки комментариев
Пнд, 06/11/2017 - 15:24
Здравствуйте, понимаю, что тема избитая, но самостоятельно справиться с модулем 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 . Результат приблизительно такой же. Если кто знает что можно еще попробовать, буду благодарен.
Вставка программного кода в тему/комментарий
Во-первых, это не схема. а х..р собачий.
Во-вторых, если вы думаете, что на ваших картинках что-то видно - то вы ошибаетесь.
В-третьих, прочитал два раза - так и не понял, в чем у вас проблемы.
Выложите коды правильно, диагностику ошибок вставьте в виде теста, а не картинок. И четко сформулируйте, в чем проблема, что работает, а что нет.
И лучше это сделать в разделе "Программирование" или "Аппаратные вопросы", так как это раздел для проектов.
Может поможет
jeka_tm Спасибо! тестовые примеры заработали!!!
пожалуйста)