Muy buenas, estoy probando la comunicación inalámbrica con el módulo NRF24L01 pero estoy atascado. He conseguido escribir sin errores los dos códigos, el del emisor y el del receptor, pero no consigo que hagan lo que quiero.
Tengo conectado un módulo (el emisor) a un Arduino UNO y éste alimentado con una Power Bank. El otro módulo (el receptor) está conectado a otro Arduino UNO a mi ordenador para ver en el monitor serie si me imprime lo que yo quiero.
Pues bien, en la placa donde tengo conectado el módulo emisor tengo conectado un sensor TCRT-5000, los que se usan para los robots sigue líneas. Lo que quiero es que si el sensor detecta línea cree un valor almacenado en la variable "estado" y me lo envíe a mi otro Arduino conectado al ordenador y quiero que me imprima por el monitor serie el valor del estado que está recibiendo del emisor. Espero haberme explicado bien.
Los códigos que uso son estos:
/*Emisor*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
RF24 radio(7, 8); // CE, CSN
int TCRT = 4;
int estado;
int Dato;
const byte address[6] = "00001";
void setup(){
Serial.begin (9600);
pinMode (TCRT, INPUT);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
void loop(){
Dato = digitalRead (TCRT);
Serial.println (estado); //Para comprobar que el sensor funciona
if (Dato == HIGH){
estado = 1;
}
if (Dato == LOW){
estado = 0;
}
radio.write(&estado, sizeof(int));
}
/*Receptor*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
RF24 radio(7, 8); // CE, CSN
int estado;
const byte address[6] = "00001";
void setup(){
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
}
void loop(){
Serial.println (estado);
if (radio.available()) {
radio.read(&estado, sizeof(int));
}
}
El problema es que en el monitor serie del receptor se imprimen valores al azar y sin sentido. Como no he programado nunca este tipo de comunicación quería saber si alguien, con más experiencia, ve lo que hago mal o que parte del código he escrito mal.