سلام
بلاخره تونستم nrf رو راه اندازی کنم. توسط دوتا کلید که دو تا ال ای دی رو کنترل میکنه. فقط مشکل اینجاست که برای روشن کردن led ها باید کلید رو حدود 1 ثانیه نگه دارم . تا led روشن بشه. کسی میدونه مشکل کجاست
فرستنده
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(9,10);
const byte address[6] = "00001";
int sw1 = 3;
int sw2 = 5;
void setup(void){
Serial.begin(9600);
radio.begin();
radio.setRetries(15, 15);
radio.openWritingPipe(address);
pinMode(3, INPUT);
pinMode(5, INPUT);}
void loop(void){
if (digitalRead(sw1) == HIGH){
msg[0]=1;
radio.write(msg, 8);}
if (digitalRead(sw2) == HIGH) {
msg[0]=2;
radio.write(msg, 8);
} }
گیرنده
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(9,10);
const byte rxAddr[6] = "00001";
int led1 = 2;
int led2= 4;
void setup(){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, rxAddr);
radio.startListening();
pinMode(2, OUTPUT);
pinMode(4,OUTPUT);
}
void loop(void){
if ( radio.available() )
{
// Read the data payload until we've received everything
bool done = false;
while (!done)
{
done = radio.read( msg, 4 );
if(msg[0]== 1) {
digitalWrite(2,HIGH);
} else if (msg[0]== 2)
{
digitalWrite(4,HIGH);
}
else {
digitalWrite(2,LOW);
digitalWrite(4,LOW);
}
}
}
}