Go Down

Topic: [SOLUCIONADO] NRF24L01 (Read 432 times) previous topic - next topic

max_saeta

Aug 01, 2014, 02:10 pm Last Edit: Aug 05, 2014, 06:05 pm by max_saeta Reason: 1
Saludos.
Como verán soy nuevo por aquí y usando Arduino casi que recién nacido. He adquirido varios módulos y los he logrado usar,pero he comprado dos nRF24L01 y estoy rompiéndome el coco, tratando de comunicarlos con dos arduino, el primero un NANO y el segundo un MEGA, ahora, he probado las librerias  nRF24L01.h, RF24.h, Mirf.h, y todos los ejemplos que traen. He cambiado y con figurado los pines CE y CSN, como me indica cada ejemplo. Las conexiones SPI las tango en el NANO 13, 11 y 12, en le MEGA 52, 51 y 50, SCK, MOSI, y MISO, respectivamente.

Si he observado que un ejemplo me muestra por monitor serial:

STATUS       = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0

Donde ante mostraba TX_FULL = 1, ahora como configuro los módulos?, y cualquier ayuda que me puedan suministrar se lo agradezco.

Derty-2

mira si te ayuda este post,

http://openhardware.pe/transceptores-nrf24l01-2-4ghz-radio-wireless-how-to/


max_saeta

Saludos
Revise el link que me enviaste me aclaro ciertas cosas pero no lo pude hacer funcionar. Al final conseguí la librería nRF24L01p.h por lo menos tenia un ejemplo que funcionaba, El problema es que no todos los hacían. Ahora hice una pequeña modificacion a la librería y a uno de los sketch que traia y logre colocarlo a funcionar. El problema que solo funciona cuando carga el el Mega el PTX y en el Nano el PRX, cuando cambio los Sketch de arduinos, no me funcionan.

Coloco los dos ejemplos.
PTR
Code: [Select]

#define VERSION "nRF24L01p V0.1 PTR"
#include <SPI.h>
#include <nRF24L01p.h>

//nRF24L01p transmisor(53,49);//CSN,CE MEGA
nRF24L01p transmisor(10,9);//CSN,CE NANO
void setup(){
  delay(150);
  Serial.begin(115200);
  Serial.println(VERSION);
  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  transmisor.channel(92);
  transmisor.TXaddress("Kerin");
  transmisor.RXaddress("Josue");
  transmisor.init();
  //Serial.println(transmisor.getStatus());
}
String message = "";

void loop(){
  if(Serial.available()>0){
    char character=Serial.read();
    if(character=='\n'){
      transmisor.powerUp();
      if (message.length()> 32){
        Serial.println("Mensaje muy largo se enviara solo 32 caracteres");
      }
      transmisor.txPL(message);
      transmisor.send(FAST);
      Serial.print("Enviado: "); Serial.println(message);
      message="";
      transmisor._txIndex = 0;
      transmisor.flushTX();   
    }else{
      message+=character;
    }
  }
}



PRX

Code: [Select]

#define VERSION "nRF24L01p V0.1 PRX"
#include <SPI.h>
#include <nRF24L01p.h>

nRF24L01p receptor(53,49);//CSN,CE MEGA
//nRF24L01p receptor(10,9);//CSN,CE NANO

void setup(){
  delay(150);
  Serial.begin(115200);
  Serial.println(VERSION); 
  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  receptor.channel(92);
  receptor.RXaddress("Kerin");
  receptor.TXaddress("Josue");
  receptor.init();
}

String message;

void loop(){
  if(receptor.available()){
    receptor.read();
    receptor.rxPL(message);
    Serial.println(message);
    message="";
  }
}


En verdad no se si es el problema es el Mega recibiendo o el Nano enviando.  He intercambiado los módulos para descartarlo y no se corrigió el problema.

max_saeta

Saludos.
Realemente el problema era del Arduino Mega, leyendo en otros foros, note que muchos colocaban un capacitor en la salida de 3.3 del Arduino, coloque uno de 10uF y el Sketch funciono correctamente.

Go Up