I think I read around and looked at enough examples to figured it out. i Have it running now. There is a bit of delay but thats not a big deal. This is what I ended up with.
Reciever
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
int bins[3] = {0,0,0};
#define bin1led 22
#define bin2led 23
#define bin3led 24
RF24 radio(7, 8); // CE, CSN
const byte addresses[][6] = {"00001", "00002"};
void setup() {
pinMode(bin1led, OUTPUT);
pinMode(bin2led, OUTPUT);
pinMode(bin3led, OUTPUT);
radio.begin();
radio.setChannel(120);
radio.openWritingPipe(addresses[1]); // 00001
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MIN);
Serial.begin(9600);
Serial.println("setup finished");
}
void loop() {
delay(5);
radio.startListening();
while (!radio.available());
radio.read(bins, sizeof(bins));
if (bins[0] == 1) {
digitalWrite(bin1led, HIGH);
Serial.println("bin1 high");
}
else {
digitalWrite(bin1led, LOW);
Serial.println("bin1 low");
}
if (bins[1] == 1) {
digitalWrite(bin2led, HIGH);
Serial.println("bin2 high");
}
else {
digitalWrite(bin2led, LOW);
Serial.println("bin2 low");
}
if (bins[2] == 1) {
digitalWrite(bin3led, HIGH);
Serial.println("bin3 high");
}
else {
digitalWrite(bin3led, LOW);
Serial.println("bin3 low");
}
Serial.println("loop finished");
}
Transmitter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define bin1 2
#define bin2 3
#define bin3 4
int bins[3] = {0,0,0};
RF24 radio(7, 8); // CE, CSN
const byte addresses[][6] = {"00001", "00002"};
void setup() {
pinMode (bin1, INPUT);
pinMode (bin2, INPUT);
pinMode (bin3, INPUT);
radio.begin();
radio.setChannel(120);
radio.openWritingPipe(addresses[0]); // 00002
radio.openReadingPipe(1, addresses[1]); // 00001
radio.setPALevel(RF24_PA_MIN);
Serial.begin(9600);
Serial.println("setup finished");
radio.stopListening();
}
void loop() {
delay(500);
if (digitalRead(bin1) == HIGH){
bins[0] = 1;
}
else {
bins[0] = 0;
}
if (digitalRead(bin2) == HIGH){
bins[1] = 1;
}
else {
bins[1] = 0;
}
if (digitalRead(bin3) == HIGH){
bins[2] = 1;
}
else {
bins[2] = 0;
}
radio.write(bins, sizeof(bins));
Serial.println("Data Sent");
}