Ingeniero
MICROCONTROLADORES
www.aquihayapuntes.com
Conexión inalámbrica entre dos Microcontroladores
Introducción
En esta ocasión vamos a ver que establecer una comunicación inalámbrica entre dos (o
más) Microcontroladores no es una tarea ni mucho menos difícil. El hardware que
vamos a utilizar en esta Demo se compone de los siguientes elementos: dostransceptores basados en el integrado nRF24L01 de la empresa Nordic Semiconductor,
dos Microcontroladores PIC de la familia PIC16FXXX y una fuente de alimentación con
salidas de 5 y 3,3V.
Características transceptores nRF24L01
Rango de radiofrecuencia en la cual trabaja (2.4 – 2.5 GHz), antena integrada
en la placa.
Comunicación SPI. (Max. Velocidad 8Mhz).
128 canales detransmisión seleccionables por el bus SPI.
Implementación capas OSI por hardware.
Tensión de alimentación (1.9 a 3.6 V).
Máxima velocidad de transferencia en radiofrecuencia 2Mbps.
Pines de entrada con tolerancia a 5V (Niveles TTL).
Descripción de la demo
El ejemplo consiste en transmitir vía radio el estado del puerto D de un PIC (16F877)
que hace las funciones de PIC transmisor, dichopuerto será configurado como entrada
y en sus pines conectaremos unos micro-interruptores para poder variar manualmente
el valor de la entrada, el estado del puerto será leído cada segundo y su valor será
enviado al módulo transceptor conectado a él y configurado como transmisor a través
del puerto SPI, los datos serán recibidos por otro transceptor el cual los enviará al PIC
receptor (otro PIC16F877) que mostrará su valor en el puerto D configurado esta vez
Biblioman
www.AquiHayApuntes.com
Página 2
Conexión inalámbrica entre dos Microcontroladores
como salida y conectado a un Array de leds para que se pueda ver visualmente su
valor.
Esquema conexión transceptores:
Biblioman
www.AquiHayApuntes.com
Página 3
Conexión inalámbrica entre dos MicrocontroladoresCódigo fuente:
El ejemplo utiliza la librería lib_rf2gh4_10.h desarrollada por la empresa Bizintek
Innova, S.L. y utilizada en su proyecto del robot mOway es fácil de utilizar, está bien
documentada y además es Open Source por lo que se puede distribuir y/o modificar
bajo los términos de la licencia GNU.
Biblioman
www.AquiHayApuntes.com
Página 4
Conexión inalámbrica entre dosMicrocontroladores
Transmisor:
////////////////////////////////////////////////////////////////
// Ejemplo Módulos transceptores NRF24L01 basado en la //
// librería lib_rf2gh4_10.h
//
// Modulo transmisor
//
// Autor: Biblioman
//
// Web: www.aquihayapuntes.com
//
////////////////////////////////////////////////////////////////
#include
#device ICD=TRUE
#FUSES NOWDT
#FUSES XT#FUSES PUT
#FUSES NOPROTECT
#FUSES NODEBUG
#FUSES NOBROWNOUT
#FUSES NOLVP
#FUSES NOCPD
#FUSES NOWRT
#use delay(clock=4000000)
#include "lib_rf2gh4_10.h"
//Mapeado de registros
#BYTE PORTD=0X08
//Variables auxiliares para el programa principal
int8 ret;
//Programa principal
void main()
{
//Configurar módulos SPI del PIC
RF_CONFIG_SPI();
//Configurar módulo RF (canal y dirección)RF_CONFIG(0x40,0x01);
//Activación módulo RF
RF_ON();
//------------------------------------------------------------------------------
Biblioman
www.AquiHayApuntes.com
Página 5
Conexión inalámbrica entre dos Microcontroladores
while(true){
Delay_ms(1000);
//-------------------------[Rutina de envió de datos]--------------------------//Preparación de la dirección del receptor yde los datos
RF_DIR=0x08;
RF_DATA[0]=PORTD;
//Envió de los datos
ret=RF_SEND();
//sentencias de chequeo
if(ret==0){
//Envió realizado y ACK recibido
}
else if(ret==1){
//Envió realizado y ACK no recibido
}
else{
//Envió no realizado
}
//-----------------------------------------------------------------------------}
}
Biblioman
www.AquiHayApuntes.com
Página 6
Conexión...
Regístrate para leer el documento completo.