NRF24 проблема...

sivanko
Offline
Зарегистрирован: 25.02.2016

Добрый день. Возникла неоходимость передавать число с одной ардуинки на вторую (примитивное радиоуправление). Взял готовый код. Собрал платы. При включении сразу поморгает а потом загорается светодиод что на 13 ноге. Связи нет. Причем это на обеих платах. Монтаж перепроверял много раз, конденсаторы подпаяны. В какую сторону копать... 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

sivanko пишет:

В какую сторону копать... 

В сторону предоставления полной информации, по которой можно попытаться определить причину (скетч, схема). 

Morroc
Offline
Зарегистрирован: 24.10.2016

Попробуйте для начала прям на выводы питания модуля повесить керамический конденсатор в несколько мкф либо параллельно 0.1 мкф керамику и 10-47мкф электролит. У меня тоже не работали пока не поставил прям рядом емкость.

sivanko
Offline
Зарегистрирован: 25.02.2016

Вот приемник


#include <Servo.h>
#include <SPI.h>
#include "RF24.h"
Servo povorot;
Servo bunker;
Servo motor;

RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
int msg[1]; 
int data; 
int pos;


void setup()
{
  

povorot.attach(3); 
bunker.attach(4); 
motor.attach(5); 

delay(50);
radio.begin();
radio.openReadingPipe(1,pipe); 
radio.startListening();

}

void loop()
{
  if (radio.available())radio.read(msg, 1);
  if (msg[0] <63 && msg[0] >-1)data = msg[0], pos = map(data, 0, 62, 45, 135),povorot.write(pos);
  if (msg[0] <=127 && msg[0] >=64)data = msg[0], pos = map(data, 64, 127, 0, 80),bunker.write(pos);

  if (msg[0] <=255 && msg[0] >=128)data = msg[0], pos = map(data, 129, 254, 147, 7),motor.write(pos);


}

 

sivanko
Offline
Зарегистрирован: 25.02.2016

Вот передатчик

#include <SPI.h>
#include "RF24.h" 
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
int msg[1]; 
int potpin_1 = A0; // сервопривод поворотов
int val_1; 
int potpin_2 = A1; // двигатель
int val_2; 

int val_3; 
int potpin_3 = A3; // сервопривод подьемника

void setup(void){
radio.begin();
radio.openWritingPipe(pipe); 

}
void loop() {
val_1 = analogRead(potpin_1),val_1 = map(val_1, 0, 1023, 0, 63),msg[0] = val_1,radio.write(msg, 1);
val_3 = analogRead(potpin_3),val_3 = map(val_3, 0, 1023, 64, 127),msg[0] = val_3,radio.write(msg, 1);

val_2 = analogRead(potpin_2),val_2 = map(val_2, 0, 1023, 128, 255),msg[0] = val_2,radio.write(msg, 1);

  
}

 

sivanko
Offline
Зарегистрирован: 25.02.2016

Схема простая дальше некуда, на приемнике висит джойстик и переменный резистор, NRF по стандартной схеме, на приемнике 3 сервы и та же NRF. Конденсаторы по 100 мкф прямо на NRF.  Притание пробовал и ЮСБ и акумулятор. На последовательный порт все выводится и на команды с порта реакция есть. Перепроверил схему раз 5, скоро лопнет мозг...