ايران ويج

نسخه‌ی کامل: کمک در برنامه nrf24 با اردوینو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان

عزیزانی که در کد نویسی اردوینو تجربه دارن . برنامه زیر یه برنامه فرستنده و گیرنده با nrf24 است . ولی با زدن هر کلید فقظ یک led روشن میشه. هر جورم تغیرش میدم درست بشو نیست. راهنمایی میکنین مشکل چیه

فرستنده
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[2];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int sw1 = 2;
int sw2 = 4;


void setup(void){
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
pinMode(2, INPUT);
pinMode(4, INPUT);}

void loop(void){
if (digitalRead(sw1) == HIGH){
msg[0] = 1;
radio.write(msg, 1);}
if (digitalRead(sw2)==HIGH) {
msg[1]= 2;
radio.write(msg, 1);

} }

 گیرنده 
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[2];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
int led1 = 2;
int led2=  4;


void setup(){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
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, sizeof(msg) );
if(msg[0]== 1) {
digitalWrite(2,HIGH);
Serial.print("Message recived ");
} else
{
digitalWrite(2,LOW);
}

if(msg[1]== 2){
digitalWrite(4,HIGH) ;
}
else {
digitalWrite(2,LOW); 
}
}

}
}