как соеденить два модуля nrf24l01?

kentforth
Offline
Зарегистрирован: 28.12.2015

Приветствую всех!

Такая проблема:

имеется два радиомодуля NRFL2401, один модуль подключен к Arduino Nano(передатчик) второй к Arduino Uno(приемник)

к передатчику подключена кнопка, а к приемнику подключен светодиод.Надо сделать так,чтобы при нажатии на кнопку загорался светодиод на приемнике, а при отжатии кнопки светодиод погас

 

В данный момент у меня так не выходит, а получается так,что при подключении обеих плат светодиод сразу загорается и никак не раегирует

 

Код передатчика:

#include<SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(7,8);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int SW1 = 2;

void setup(void){
 Serial.begin(9600);
 radio.begin();
 radio.openWritingPipe(pipe);}
 
 void loop(void){
 if (digitalRead(SW1) == HIGH){
 msg[0] = 111;
 radio.write(msg, 1);
 }
}

Код приемника:

#include<SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int msg[1];
RF24 radio(7,8);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int LED1 = 2;

void setup(void){
 Serial.begin(9600);
 radio.begin();
 radio.openReadingPipe(1,pipe);
 radio.startListening();
 pinMode(LED1, OUTPUT);}
 
 void loop(void){
 if (radio.available()){
   bool done = false;    
   while (!done){
     done = radio.read(msg, 1);      
     Serial.println(msg[0]);
     if (msg[0] == 111){delay(10);digitalWrite(LED1, HIGH);}
     else {digitalWrite(LED1, LOW);}
     delay(10);}}
 else{Serial.println("No radio available");
 }
}

Как исправить код, чтобы получить то,что надо?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Расшифруйте " к передатчику подключена кнопка".

kentforth
Offline
Зарегистрирован: 28.12.2015

trembo пишет:
Расшифруйте " к передатчику подключена кнопка".

 

не правильно выразился. Передатчик подключен к плате Arduino Nano,и к этой же плате подключена кнопка

 

Приёмник подключен к Arduino Uno, и этой жен плате Uno подключен светодиод