• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Komunikacja nRF24L01+
#1
Witam, mam problem z połączeniem 2 arduino poprzez nRF24L01+ i nie wiem gdzie mogę robić błąd. Podczas kompilacji nie pokazuje się żaden błąd.Oba nRF24L01+ są podłączone do zewnętrznego zasilania 3,3V Może ktoś rzucić okiem na te programy? Będę bardzo wdzięczny.
Nadajnik

Kod:
#include "RF24.h"
#include "printf.h"
#include <SPI.h>
RF24 radio(7,8);
byte addresses[][6] = {"1Node", "2Node"};
struct dataStruct {
 int SerwoL;
 int SerwoP;
 int Silnik;        
} mojeDane;

void setup() {
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
Serial.begin(115200);
radio.begin();
radio.setChannel(108);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MIN);
 radio.openWritingPipe(addresses[0]);
 radio.openReadingPipe(1, addresses[1]);
printf_begin();
radio.printDetails();
radio.startListening();

}
void loop() {
radio.stopListening();


mojeDane.SerwoL = analogRead(A1);
mojeDane.SerwoP = analogRead(A2);
mojeDane.Silnik = analogRead(A3);
radio.write( &mojeDane, sizeof(mojeDane) );
 if (!radio.write( &mojeDane, sizeof(mojeDane) )) {
   Serial.println(F("Transmit failed "));
 }

Serial.print(mojeDane.SerwoL);

}
Odbiornik
Kod:
#include "RF24.h"
#include "printf.h"
#include <SPI.h>
#include <Servo.h>
Servo serwomechanizmp;
Servo serwomechanizml;  
RF24 radio(7,8);

byte addresses[][6] = {"1Node", "2Node"};

struct dataStruct {
 int SerwoL;
 int SerwoP;
 int Silnik;  
} mojeDane;

int lewe = 90;
int prawe = 90;
int v = 0;


void setup() {
Serial.begin(115200);
radio.begin();
radio.setChannel(108);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MIN);
 radio.openWritingPipe(addresses[1]);
 radio.openReadingPipe(1, addresses[0]);
printf_begin();
radio.printDetails();
radio.stopListening();
serwomechanizmp.attach(9);
serwomechanizml.attach(10);

}

void loop() {
 radio.startListening();
 if ( radio.available())
 {
   delay(1);
   while (radio.available())
   {
     radio.read( &mojeDane, sizeof(mojeDane) );
lewe= map(mojeDane.SerwoL,0,1024,60,120);
prawe=map(mojeDane.SerwoP,0,1024,60,120);
v=map(mojeDane.Silnik,0,1024,0,255);

   serwomechanizml.write(lewe);
   serwomechanizmp.write(prawe);  
   digitalWrite(6,v);
   Serial.print(lewe);
   Serial.print("    ");
   Serial.print(prawe);
   Serial.print("    ");
   Serial.println(v);

     
   }}
   else{
     Serial.println("FAIL");
   }

}
 
Odpowiedź
#2
Zacznij od przykładów dostarczonych z biblioteką. Jeśli działają to dopiero idź dalej.
Masz kondensatory na zasilaniu na płytce nRF24?
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#3
(03-12-2017, 18:55)namok napisał(a): Zacznij od przykładów dostarczonych z biblioteką. Jeśli działają to dopiero idź dalej.
Masz kondensatory na zasilaniu na płytce nRF24?

Kondensatorów nie mam , ale wiem że nie są potrzebne bo jakiś rok temu zbudowałem auto zdalnie sterowane na tych nrf i wszystko ładnie działało,niestety program gdzieś zgubiłem a teraz buduję samolot,wszystko już jest zbudowane z myślą że program będzie najprostszy (bo wcześniej nie miałem z nimi dużych problemów) okazuje się że jednak  nie (zgaduję że robię jakiś głupi błąd i go nie widzę)
 
Odpowiedź
#4
(03-12-2017, 19:20)kasilos napisał(a): Kondensatorów nie mam , ale wiem że nie są potrzebne bo jakiś rok temu zbudowałem auto zdalnie sterowane na tych nrf i wszystko ładnie działało
Twoja piaskownica i Twoje zabawki. Tylko nie płacz potem na innych forach że tu nie można znaleźć pomocy.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości