Pages: [1]   Go Down
Author Topic: Ayuda con tarjeta NRF24L01  (Read 616 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Saludos, soy nuevo en el foro.
Tengo un problema con la antena NRF24L01
Estoy usando dos Arduino UNO, pero no tengo la comunicación entre los Arduinos.

Estos son los códigos:

transmisor:
Quote
/*              êîä ¹1 äëÿ ïåðåäàò÷èêà transmitter
 ****************************
 óðîê îò Äìèòðèÿ Îñèïîâà. http://www.youtube.com/user/d36073?feature=watch
 v.02 NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on
 Version 0.2 2013/07/15
 -----------------------------
 èäåîëîãèÿ;
 íà Arduino ¹1 íàæèìàåì êíîïêó, ÏÎÊÀ óäåðæèâàåì êíîïêó íàæàòîé,
 íà Arduino ¹2 âÊëþ÷àåòñÿ (ãîðèò) ñâåòîäèîä,
 
 -----------------------------
 èçìåíåíèÿ;
 1. óñòðàíåíà çàäåðæêà â 1.5 ñåêóíäû,
 òåïåðü ïðè íàæàòèè êíîïêè Arduino ¹1 ìãíîâåííî îòïðàâëÿåò ñèãíàë
 à Arduino ¹2 ìãíîâåííî ïðèíèìàåò ñèãíàë.
 
 2. äîáàâèë âîçìîæíîñòü èçìåíÿòü Ñêîðîñòü ïåðåäà÷è, Íîìåð êàíàëà,
 Êîë-âî ïîïûòîê è âðåìÿ ìåæäó ïîïûòêàìè.
 ------------------------------
 
 ïîäðîáíóþ âèäåî èíñòðóêöèþ âûëîæó çäåñü
 https://www.youtube.com/watch?v=iJJVj9kgS-A
 ----------------
 êîä ¹2 äëÿ ïðè¸ìíèêà
v.02 receiver NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on


 êîä ¹1 äëÿ ïåðåäàò÷èêà
v.02 transmitter NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on

 ------------
 v.01 NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on
 https://www.youtube.com/watch?v=aJVSrGwZs2s
 
 Arduino1 NRF24L01 Serial send. - Arduino2 led. LOW HIGH
 https://www.youtube.com/watch?v=aHgxXXRwtOE&noredirect=1
 
 Arduino Ðàäèîìîäóëü nRF24L01 -2.4GHz RF24 Libraries. test
 https://www.youtube.com/watch?v=B6LHfwisgUQ
 
 NRF24L01+ 2.4GHz Antenna Wireless Transceiver Module For Microcontr
 */

// ýòî ñêà÷àííàÿ áèáëèîòåêàRF 24
//https://github.com/maniacbug/RF24
//https://github.com/maniacbug/RF24/archive/master.zip
//http://yadi.sk/d/ZvMq19fB6lgPs

#include <SPI.h>
#include "RF24.h"


int msg[1];

// Set up nRF24L01 radio on SPI bus plus pins 9 & 10
//Êîíòàêòû îò ðàäèîìîäóëÿ NRF24L01 ïîäêëþ÷àåì ê ïèíàìíàì -> Arduino

//SCK  -> 13
//MISO -> 12
//MOSI -> 11
//CSN  -> 10
//CE   -> 9

RF24 radio(9,10);

// àäðåñà êàíàëîâ ïðèåìà è ïåðåäà÷è
const uint64_t pipes[2] = {
  0xF0F0F0F000LL, 0xF0F0F0F0FFLL};

//êíîïêè ïîäêëþ÷åíû ê ýòèì ïèíàì
int buttonPin1 = 2;
int buttonPin2 = 3;

void setup(void){

  radio.begin(); 
  radio.setDataRate(RF24_250KBPS); // Ñêîðîñòü ïåðåäà÷è
  radio.setChannel(100); // Íîìåð êàíàëà îò 0 äî 127
  radio.setRetries(15,15); // Êîë-âî ïîïûòîê è âðåìÿ ìåæäó ïîïûòêàìè
  radio.openWritingPipe(pipes[1]);  // Îòêðûâàåì êàíàë ïåðåäà÷è
  radio.openReadingPipe(1, pipes[0]); // Îòêðûâàåì îäèí èç 6-òè êàíàëîâ ïðèåìà
  radio.startListening(); // Íà÷èíàåì ñëóøàòü ýôèð
}
void loop(void){
  //ïîêà êíîïêà (buttonPin1)íàæàòà îòïðàâëÿåì ïàêåò (111)â Arduino ¹2
  if (digitalRead(buttonPin1) == HIGH){
    msg[0] = 111;
    radio.stopListening();
    radio.write(msg, 1);
    radio.startListening();
  }
  if (digitalRead(buttonPin2) == HIGH){
    msg[0] = 112;
    radio.stopListening();
    radio.write(msg, 1);
    radio.startListening();
  }
}


receptor:
Quote
/*              êîä ¹2 äëÿ ïðè¸ìíèêà receiver
 ****************************
 óðîê îò Äìèòðèÿ Îñèïîâà. http://www.youtube.com/user/d36073?feature=watch
 v.02 NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on
 Version 0.2 2013/07/15
 -----------------------------
 èäåîëîãèÿ;
 íà Arduino ¹1 íàæèìàåì êíîïêó, ÏÎÊÀ óäåðæèâàåì êíîïêó íàæàòîé,
 íà Arduino ¹2 âÊëþ÷àåòñÿ (ãîðèò) ñâåòîäèîä,
 
 -----------------------------
 èçìåíåíèÿ;
 1. óñòðàíåíà çàäåðæêà â 1.5 ñåêóíäû,
 òåïåðü ïðè íàæàòèè êíîïêè Arduino ¹1 ìãíîâåííî îòïðàâëÿåò ñèãíàë
 à Arduino ¹2 ìãíîâåííî ïðèíèìàåò ñèãíàë.
 
 2. äîáàâèë âîçìîæíîñòü èçìåíÿòü Ñêîðîñòü ïåðåäà÷è, Íîìåð êàíàëà,
 Êîë-âî ïîïûòîê è âðåìÿ ìåæäó ïîïûòêàìè.
 ------------------------------
 
 ïîäðîáíóþ âèäåî èíñòðóêöèþ âûëîæó çäåñü
 https://www.youtube.com/watch?v=iJJVj9kgS-A

----------------
 êîä ¹2 äëÿ ïðè¸ìíèêà
v.02 receiver NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on


 êîä ¹1 äëÿ ïåðåäàò÷èêà
v.02 transmitter NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on

 ------------
 
 v.01 NRF24L01 if Arduino ¹1 button press-Arduino ¹2 LED on
 https://www.youtube.com/watch?v=aJVSrGwZs2s
 
 Arduino1 NRF24L01 Serial send. - Arduino2 led. LOW HIGH
 https://www.youtube.com/watch?v=aHgxXXRwtOE&noredirect=1
 
 Arduino Ðàäèîìîäóëü nRF24L01 -2.4GHz RF24 Libraries. test
 https://www.youtube.com/watch?v=B6LHfwisgUQ
 
 NRF24L01+ 2.4GHz Antenna Wireless Transceiver Module For Microcontr
 */

// ýòî ñêà÷àííàÿ áèáëèîòåêà RF24
//https://github.com/maniacbug/RF24
//https://github.com/maniacbug/RF24/archive/master.zip
//http://yadi.sk/d/ZvMq19fB6lgPs

#include <SPI.h>
#include "RF24.h"

int msg[1];

// Set up nRF24L01 radio on SPI bus plus pins 9 & 10
//Êîíòàêòû îò ðàäèîìîäóëÿ NRF24L01 ïîäêëþ÷àåì ê ïèíàìíàì -> Arduino

//SCK  -> 13
//MISO -> 12
//MOSI -> 11
//CSN  -> 10
//CE   -> 9

RF24 radio(9,10);



//ñâåòîäèîäû ïîäêëþ÷åíû ê ýòèì ïèíàì
int LEDpin1 = 2;
int LEDpin2 = 3;


// àäðåñà êàíàëîâ ïðèåìà è ïåðåäà÷è
const uint64_t pipes[2] = {
  0xF0F0F0F000LL, 0xF0F0F0F0FFLL};

void setup(void){
  radio.begin(); 
  radio.setDataRate(RF24_250KBPS);  // Ñêîðîñòü ïåðåäà÷è
  radio.setChannel(100); // Íîìåð êàíàëà îò 0 äî 127
  radio.setRetries(15,15); // Êîë-âî ïîïûòîê è âðåìÿ ìåæäó ïîïûòêàìè
  radio.openWritingPipe(pipes[0]); // Îòêðûâàåì êàíàë ïåðåäà÷è
  radio.openReadingPipe(1, pipes[1]); // Îòêðûâàåì îäèí èç 6-òè êàíàëîâ ïðèåìà
  radio.startListening(); // Íà÷èíàåì ñëóøàòü ýôèð

  pinMode(LEDpin1, OUTPUT);
  pinMode(LEDpin2, OUTPUT);

}

void loop(void){
  if (radio.available()){
    bool done = false;   
    while (!done){
      done = radio.read(msg, 1);     
      //åñëè ïðèøåë ïàêåò îò Arduino ¹1 (111) âÊëþ÷àåòñÿ ñâåòîäèîä (ãîðèò)LEDpin1, HIGH
      if (msg[0] == 111){
        delay(10);
        digitalWrite(LEDpin1, HIGH);
      }
      else {
        digitalWrite(LEDpin1, LOW);
      }
      delay(10);
      if (msg[0] == 112){
        delay(10);
        digitalWrite(LEDpin2, HIGH);
      }
      else {
        digitalWrite(LEDpin2, LOW);
      }
      delay(10);
    }
  }
}


Si alguien puede comprobar este código, por favor.
Me pareció que los códigos en algún foro Ruso, pero no encuentro la velocidad en Baudios????
Las placas si cargan el programa pero al momento de utilizarlo no funciona.
Aclaro el programa en el "receptor" debe encender 2 leds dependiendo del numero (1) o (2) pero solo estoy interesado que esta placa muestre en RX que recive datos.
Logged

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 711
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,
mi consejo: búscate unos ejemplos con código más inteligible; hay muchos,  por ejemplo, estos de acá

http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01

y también estos

http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
« Last Edit: October 09, 2013, 09:59:37 pm by curro92 » Logged

Pages: [1]   Go Up
Jump to: