03-12-2017, 17:31
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
Odbiornik
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);
}
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");
}
}