Created
May 24, 2017 05:56
-
-
Save HectorTorres/fef6436871b4827c2ab601cd734bdcab to your computer and use it in GitHub Desktop.
nrf24l01 Arduino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SPI.h> | |
#include <Mirf.h> | |
#include <nRF24L01.h> | |
#include <MirfHardwareSpiDriver.h> | |
int led=4; //Declaramos el led en el pin 4 | |
unsigned long time=0;// Variable para controlar el tiempo entre dato y dato | |
int estadoled=0; //Variable para almacenar el estado del rele | |
void setup(void){ | |
Serial.begin(9600); | |
Mirf.cePin = 8; // Cambiamos el pin CE al pin 8 de arduino | |
Mirf.csnPin = 7; //Cambiamos el pin CSN al pin 7 de arduino | |
Mirf.spi = &MirfHardwareSpi; // Configuramos el SPI de Arduino por Hardware | |
Mirf.init(); // Inciamos el módulo de RF | |
Mirf.setRADDR((byte *)"serv1"); // Indicamos la dirección para recibir datos | |
Mirf.payload = 1;// Indicamos datos que se espera recibir(1, estado del pusador) | |
Mirf.config(); // Configuramos el módulo de RF | |
time=0; // Ponemos a 0 el tiempo | |
pinMode(led, OUTPUT); // Configuramos el pin 6 como salida del led | |
} | |
void loop() | |
{ | |
byte datos[1]; // Buffer para almacenar los datos | |
if(!Mirf.isSending() && Mirf.dataReady()){ // Esperamos recibir un dato | |
Mirf.getData(datos); // Copiamos al buffer los datos recibidos | |
time = millis(); // Almacenamos el tiempo en la variable | |
if(datos[0]==1){ //El estado del led cambia cada vez que el pulsador esta activado(una sola vez) | |
estadoled=!estadoled; | |
digitalWrite(led, estadoled); | |
while(datos[0] == 1){ | |
Mirf.getData(datos); // Copiamos al buffer los datos recibidos | |
} | |
} | |
} | |
if ( ( millis() - time ) > 1000 ) {//Comprobamos si desde la última vez que recibimos un dato hasta ahora ha pasado mas de 1 seg | |
Serial.println("Error de recepcion de datos"); //Línea para ver en el terminal que recibe | |
delay(500); //Paramos 0,5 seg | |
} | |
else{ //Si todo está correcto y estamos recibiendo datos, seguimos | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment