i am writing two separate code for trasmit 6 data and read 6 data from two differnce arduino i have wrote this in my two code:
this is the reciver at the middle u can find the trasmitter ;
the trasmitter is right, send at me the right thinks and i guess is seanding it at the athor aruino but i don't know why the another arduino can't read the code, can somebody give me an help
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define pin_M1A 2 //motore avanti 1
#define pin_M1I 3 //motore indietro 1
#define pin_M2A 4 //motore avanti 2
#define pin_M2I 7 //motore indietro 2
#define pin_VM1 5 //velocità motore 1 in uscita
#define pin_VM2 6 //velocità motore 2 in uscita
int M1A = 0; //motore avanti 1
int M1I = 0; //motore indietro 1
int M2A = 0; //motore avanti 2
int M2I = 0; //motore indietro 2
int VM1 = 0; //velocità motore 1 in uscita
int VM2 = 0; //velocità motore 2 in uscita
int WS = 0; //analogico avanti indietro
int AD = 0; // analogico destra sinistra
RF24 wireless(10,9);
const byte address1[6]= "00001";
const byte address2[6]= "00010";
const byte address3[6]= "00011";
const byte address4[6]= "00100";
const byte address5[6]= "00101";
const byte address6[6]= "00110";
void setup() {
Serial.begin(9600);
wireless.begin();
wireless.setChannel(125);
wireless.openReadingPipe(0,address1);
wireless.openReadingPipe(1,address2);
wireless.openReadingPipe(2,address3);
wireless.openReadingPipe(3,address4);
wireless.openReadingPipe(4,address5);
wireless.openReadingPipe(5,address6);
wireless.setPALevel(RF24_PA_LOW);
wireless.startListening();
pinMode(pin_M1A, OUTPUT);
pinMode(pin_M1I, OUTPUT);
pinMode(pin_M2A, OUTPUT);
pinMode(pin_M2I, OUTPUT);
pinMode(pin_VM1, OUTPUT);
pinMode(pin_VM2, OUTPUT);
}
void loop() {
wireless.openReadingPipe(0,address1);
wireless.read(&VM1,sizeof(VM1));
Serial.println(VM1);
analogWrite(pin_VM1,VM1);
wireless.closeReadingPipe(0);
wireless.openReadingPipe(1,address2);
wireless.read(&VM2,sizeof(VM2));
Serial.println(VM2);
analogWrite(pin_VM2,VM2);
wireless.closeReadingPipe(1);
wireless.openReadingPipe(2,address3);
wireless.read(&M1A,sizeof(M1A));
Serial.println(M1A);
digitalWrite(pin_M1A,M1A);
wireless.closeReadingPipe(2);
wireless.openReadingPipe(3,address4);
wireless.read(&M2A,sizeof(M2A));
Serial.println(M2A);
digitalWrite(pin_M2A,M2A);
wireless.closeReadingPipe(3);
wireless.openReadingPipe(4,address5);
wireless.read(&M1I,sizeof(M1I));
Serial.println(M1I);
digitalWrite(pin_M1I,M1I);
wireless.closeReadingPipe(4);
wireless.openReadingPipe(5,address6);
wireless.read(&M2I,sizeof(M2I));
Serial.println(M2I);
digitalWrite(pin_M2I,M2I);
wireless.closeReadingPipe(5);
}
// this is the trasmitter code
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 wireless(10,9);
const byte address1[6]= "00001";
const byte address2[6]= "00010";
const byte address3[6]= "00011";
const byte address4[6]= "00100";
const byte address5[6]= "00101";
const byte address6[6]= "00110";
#define pin_WS A5 //analogico avanti indietro
#define pin_AD A4 // analogico destra sinistra
int M1A = 0; //motore avanti 1
int M1I = 0; //motore indietro 1
int M2A = 0; //motore avanti 2
int M2I = 0; //motore indietro 2
int VM1 = 0; //velocità motore 1 in uscita
int VM2 = 0; //velocità motore 2 in uscita
int WS = 0; //analogico avanti indietro
int AD = 0; // analogico destra sinistra
void setup() {
Serial.begin(9600);
wireless.begin();
wireless.setChannel(125);
wireless.openWritingPipe(address1);
wireless.openWritingPipe(address2);
wireless.openWritingPipe(address3);
wireless.openWritingPipe(address4);
wireless.openWritingPipe(address5);
wireless.openWritingPipe(address6);
wireless.setPALevel(RF24_PA_LOW);
wireless.stopListening();
}
void loop() {
WS=analogRead(pin_WS);
AD=analogRead(pin_AD);
if(WS>=520) // avanti
{
M1A=1;
M2A=1;
M1I=0;
M2I=0;
if(AD>=520) //rotazione a destra
{
VM1=(map(WS,520,1023,0,255));
VM2=((map(WS,520,1023,0,255))-(map(AD,520,1023,0,255)));
}
else if(AD<=500) //rotazioen a sinistra
{
VM1=((map(WS,520,1023,0,255))-(map(AD,520,0,0,255)));
VM2=(map(WS,520,1023,0,255));
}
else // avanti senza rotazione
{
VM1=(map(WS,520,1023,0,255));
VM2=(map(WS,520,1023,0,255));
}
}
else if(WS<=500) //indietro
{
M1A=0;
M2A=0;
M1I=1;
M2I=1;
if(AD>=520) //rotazione a destra
{
VM1=((map(WS,500,0,0,255))-(map(AD,520,1023,0,255)));
VM2=(map(WS,500,0,0,255));
}
else if(AD<=500) //rotazione a sinistra
{
VM1=(map(WS,500,0,0,255));
VM2=((map(WS,500,0,0,255))-(map(AD,500,0,0,255)));
}
else // indietro senza rotazione
{
VM1=(map(WS,500,0,0,255));
VM2=(map(WS,500,0,0,255));
}
}
else
{
VM1=0;
VM2=0;
M1A=0;
M2A=0;
M1I=0;
M2I=0;
}
wireless.openWritingPipe(address1);
wireless.write(&VM1,sizeof(VM1));
Serial.print("VM1 ");
Serial.println(VM1);
delay(10);
wireless.openWritingPipe(address2);
wireless.write(&VM2,sizeof(VM2));
Serial.print("VM2 ");
Serial.println(VM2);
delay(10);
wireless.openWritingPipe(address3);
wireless.write(&M1A,sizeof(M1A));
Serial.print("M1A ");
Serial.println(M1A);
delay(10);
wireless.openWritingPipe(address4);
wireless.write(&M2A,sizeof(M2A));
Serial.print("M2A ");
Serial.println(M2A);
delay(10);
wireless.openWritingPipe(address5);
wireless.write(&M1I,sizeof(M1I));
Serial.print("M1I ");
Serial.println(M1I);
delay(10);
wireless.openWritingPipe(address6);
wireless.write(&M2I,sizeof(M2I));
Serial.print("M2I ");
Serial.println(M2I);
delay(10);
}