arduino nrf24l01
hi,
i work transmitter , receiver. have 2 sketches , works fine, how can add more arduino nano's (receivers) ? thought have work addresses, don't know how...
transmitter
receiver:
i work transmitter , receiver. have 2 sketches , works fine, how can add more arduino nano's (receivers) ? thought have work addresses, don't know how...
transmitter
code: [select]
/*
1 - gnd
2 - vcc 3.3v !!! not 5v
3 - ce arduino pin 7
4 - csn arduino pin 8
5 - sck arduino pin 13
6 - mosi arduino pin 11
7 - miso arduino pin 12
8 - unused
/*-----( import needed libraries )-----*/
#include <spi.h> // comes arduino ide
#include "rf24.h" // download , install (see above)
/*-----( declare constants , pin numbers )-----*/
//none yet
/*-----( declare objects )-----*/
// (create instance of radio, specifying ce , cs pins. )
rf24 myradio (7, 8); // "myradio" identifier use in following methods
/*-----( declare variables )-----*/
byte addresses[][6] = {"1node"}; // create address 1 pipe.
int datatransmitted; // data transmitted transmitter
boolean stat = true;
//test
int contact = 0;
void setup() /****** setup: runs once ******/
{
pinmode(2,output);
// use serial monitor (symbol on far right). set speed 115200 (bottom right)
serial.begin(115200);
delay(1000);
serial.println(f("rf24/simple transmit data test"));
serial.println(f("questions: terry@yourduino.com"));
datatransmitted = 100; // arbitrary known data transmit. change test...
myradio.begin(); // start physical nrf24l01 radio
myradio.setchannel(108); // above wifi channels
// set pa level low prevent power supply related issues since a
// getting_started sketch, , likelihood of close proximity of devices. rf24_pa_max default.
//myradio.setpalevel(rf24_pa_min);
myradio.setpalevel(rf24_pa_max); // uncomment more power
myradio.openwritingpipe( addresses[0]); // use first entry in array 'addresses' (only 1 right now)
delay(1000);
}//--(end setup )---
void loop() /****** loop: runs ******/
{
contact=digitalread(2);
serial.println(contact);
datatransmitted = contact;
myradio.write( &datatransmitted, sizeof(datatransmitted) ); // transmit data
serial.print(f("data transmitted = "));
serial.print(datatransmitted);
serial.println(f(" no acknowledge expected"));
datatransmitted = datatransmitted + 1; // send different data next time
delay(500);
datatransmitted = 0;
}//--(end main loop )---
/*-----( declare user-written functions )-----*/
//*********( end )***********
receiver:
code: [select]
/*
1 - gnd
2 - vcc 3.3v !!! not 5v
3 - ce arduino pin 7
4 - csn arduino pin 8
5 - sck arduino pin 13
6 - mosi arduino pin 11
7 - miso arduino pin 12
8 - unused
/*-----( import needed libraries )-----*/
#include <spi.h> // comes arduino ide
#include "rf24.h" // download , install (see above)
/*-----( declare constants , pin numbers )-----*/
//none yet
/*-----( declare objects )-----*/
// (create instance of radio, specifying ce , cs pins. )
rf24 myradio (7, 8); // "myradio" identifier use in following methods
/*-----( declare variables )-----*/
byte addresses[][6] = {"1node"}; // create address 1 pipe.
int datareceived; // data received transmitter
void setup() /****** setup: runs once ******/
{
// use serial monitor (symbol on far right). set speed 115200 (bottom right)
serial.begin(115200);
delay(1000);
myradio.begin(); // start physical nrf24l01 radio
myradio.setchannel(108); // above wifi channels
// set pa level low prevent power supply related issues since a
// getting_started sketch, , likelihood of close proximity of devices. rf24_pa_max default.
//myradio.setpalevel(rf24_pa_min);
myradio.setpalevel(rf24_pa_max); // uncomment more power
myradio.openreadingpipe(1, addresses[0]); // use first entry in array 'addresses' (only 1 right now)
myradio.startlistening();
// initialize digital pin led_builtin output.
pinmode(4, output);
}//--(end setup )---
void loop() /****** loop: runs ******/
{
if ( myradio.available()) // check incoming data transmitter
{
while (myradio.available()) // while there data ready
{
myradio.read( &datareceived, sizeof(datareceived) ); // data payload (you must have defined already!)
}
// data, print it
if (datareceived == 1) {
digitalwrite(4, high);
serial.print("aan: ");
}
if (datareceived == 0) {
digitalwrite(4, low);
serial.print("uit: ");
}
serial.print("data received = ");
serial.println(datareceived);
} //end radio available
}//--(end main loop )---
/*-----( declare user-written functions )-----*/
//none yet
//*********( end )***********
you need separate address each "slave" , "master" needs open writing pipe each address before sends data different slaves.
at moment opening writing pipe in master in setup(). need move loop() , iterate through array of addresses.
...r
simple nrf24l01+ tutorial
at moment opening writing pipe in master in setup(). need move loop() , iterate through array of addresses.
...r
simple nrf24l01+ tutorial
Arduino Forum > Using Arduino > Programming Questions > arduino nrf24l01
arduino
Comments
Post a Comment