|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Arduino en español
Circuitos con Arduino - Juan Antonio Villalpando

-- Tutorial de iniciación a Arduino --

Volver al índice del tutorial

___________________________

27F.- Bluetooth y nRF905. GMSK. App Inventor.

p9AA_bluetooth_radiofrecuencia.aia

- Vamos a enviar un mensaje desde el móvil al Arduino por Bluetooth con una aplicación realizada con App Inventor.

- Cuando el Arduino reciba ese mensaje lo Transmitirá mediante el módulo con el chip nRF905 a 2,4 GHz.

- El otro Arduino Recibirá el mensaje mediante otro módulo con nRF905 Receptor y lo mostrará en el Monitor Serie.

- Product_Specification_nRF905_v1.5.pdf

- XL905-51-schematic.pdf

- nRF905-master.zip

- El nRF905 es un transceptor parecido al nRF24L01, pero funciona a 433/898/915 MHz (frecuencia ISM) en vez de 2.4GHz. La transmisión de datos es de solo 50Kbps, comparada con la del nRF24L01 que es de unos 2 Mbps.

- El nRF905 tiene 511 canales desde el 422,4 MHz a 473,5 MHz en pasos de 100 KHz en la banda de 433 MHz, de 844,8 MHz a 947 MHz en pasos de 200 KHz en la banda de 868/915 MHz. Cada canal solapa a los adyacentes, por lo cual se puede obtener realmente 170 canales a la vez.

- Modula en FSK/GMSK. La modulación GFSE tiene una desviación de ±50KHz

- Potencia de salida 10 dBm. Sensibilidad -100 dBm a 2,7 V

- Bajo consumo en stand by, solo 1 uA

- La transmisión puede alcanzar los 1000 m de distancia, pero lo más normal serán los 500 m.

- Los datos viajan por el aire a 100 Kbps, si están codificados en Manchester la velocidad baja a 50 K bps

https://taillieu.info/index.php/hardware/110-nrf905-wireless-module-ptr8000-wireless-transmission-module-nf905se-band-antenna-c3b5

___________________________
- Conexiones de Arduino.

nRF905 ATmega48/88/168/328 Arduino Uno Description nRF905 ATmega48/88/168/328 Arduino Uno Description
nRF905  
Arduino
UNO
 
VCC  
3.3V
Alimentación (3.3V)
TXEN  
9
Transmite o recibe modo – High = transmite, Low = recibe.
CE  
7

Stand by – High = TX/RX mode, Low = standby

PWR  
8
Alimentar – High = on, Low = off
CD  
2
Detección de portadora – High cuando la señal es detectada.
AM  
-
Address Match
DR  
3
Data Ready – High cuando termina de transmitir o recibir un nuevo dato.
MISO  
12
SPI MISO
MOSI  
11
SPI MOSI
SCK  
13
SPI SCK
CSN  
10
SPI SS
GND  
GND
Gnd

 

___________________________
- Códigos de Arduino.

- Librería: https://github.com/zkemble/nRF905

NRF905-for-arduino.zip

jBluetooth_Transmisor.ino

	  
#include <NRF905.h>
#include <SPI.h>

#define BUF_LEN          32
#define CONF_LEN         10

#define NRF905_CSN       10

unsigned char tx_buf[BUF_LEN]= "Hi, Arduino   \r\n";
unsigned char read_config_buf[CONF_LEN];

byte tx_address[4]= {0xcc,0xcc,0xcc,0xcc};

void setup(){
    unsigned char i;
    
    pinMode(NRF905_CSN,OUTPUT); //to make sure SPI works
    
    nrf905=NRF905(NRF905_CSN);
    
    nrf905.init();


    /**
        default configuration, need to specify frequency
        choose Z-Wave frequency band, support :
        US		908.42Mhz
        EUROPE		868.42MHz
        AFRICA		868.42MHz
        CHINA		868.42MHz
        HK		919.82MHz
        JAPAN		853.42MHz
        AUSTRALIA	921.42MHz
        NEW_ZEALAND	921.42MHz
        BRASIL		921.42MHz
        RUSSIA		896MHz
    */
    nrf905.write_config(US);
	
	
    nrf905.read_config(read_config_buf);

    Serial.begin(9600);

    for(i=0; i<10; i++)
    {
        Serial.print(read_config_buf[i],HEX);
        Serial.print(' ');
    }
    
    tx_buf[12] = '0';
}

void loop(){
    /** transmit data packet with default TX Address */
    nrf905.TX(tx_buf);
    
    /** transmit data packet with specified TX Address */
//    nrf905.TX(tx_buf, tx_address);
    
    // NOTE: TX_Address and RX_Address must be the same
    
    /** Count Sending times */
    tx_buf[12]++;
    if(tx_buf[12] == 0x3A){
      tx_buf[12] = '0';
    }
    delay(50);
}

 

jjBluetooth_Receptor.ino

#include <NRF905.h>
#include <SPI.h>
#define BUF_LEN          32
#define CONF_LEN         10

//NRF905 nrf905;

unsigned char rx_buf[BUF_LEN]= {0};
unsigned char read_config_buf[CONF_LEN];
unsigned char rx_address[4]= {0xcc,0xcc,0xcc,0xcc};

void putstring(unsigned char *str){
    while(*str){
        Serial.write(*str++);
    }
}

void setup(){
    char i;
    pinMode(10,OUTPUT);
    nrf905=NRF905(10);
    
    /** pin/port configuration */
    nrf905.init(); 

  
    /***************************************************
        default configuration, need to specify frequency
        choose Z-Wave frequency band, support :
        US		908.42Mhz
        EUROPE		868.42MHz
        AFRICA		868.42MHz
        CHINA		868.42MHz
        HK		919.82MHz
        JAPAN		853.42MHz
        AUSTRALIA	921.42MHz
        NEW_ZEALAND	921.42MHz
        BRASIL		921.42MHz
        RUSSIA		896MHz
    */ 
	nrf905.write_config(US); 	
    
    /***********************************************************
	read register configuration, check register value written */
    nrf905.read_config(read_config_buf);
    
    /** serial communication configurate */
    Serial.begin(9600);
    
    /** test configuration */
    for(i=0; i<CONF_LEN; i++){
        Serial.print(read_config_buf[i],HEX);
        Serial.print(' ');
    }
    
}

void loop(){
    /** recieve data packet with default RX address */
    nrf905.RX(rx_buf);
    
    /** recieve data packet with specified RX address */
//    nrf905.RX(rx_buf, rx_address );
    
    // NOTE: TX_Address and RX_Address must be the same
    
    /** send recieved data to PC through serial port */
    putstring(rx_buf);
    delay(1);
}

___________________________
- Diseño.

___________________________
- Bloques.

_______________________________________________

- Modulación FSK (Frequency-Shift Keying)

- Modulación por Desplazamiento de Frecuencia.

- Para transmitir un "1", emite cierta frecuencia.

- Para transmitir un "0", emite otra frecuencia.

- MSK (Minimum-Shift Keying)

- Modulación por Desplazamiento Mínimo.

- Es parecido al FSK, la diferencia es que en los cambios de estado la portadora cambia en el paso por cero, es decir cuando cruza la línea de abcisa, observa la figura en donde he ampliado el dibujo de la señal portadora.

- Filtro Gaussiano.

- Es un filtro Paso-Bajo en donde entra la señal digital y sale con pendientes más suaves, es decir las subidas y bajadas no son abruptas.

- Este filtro Paso-Bajo elimina el ruido (spik noise).

- La característica principal de poner este filtro es que disminuye en ancho de banda, observa la imagen, las bandas laterales son más cercanas a la frecuencia central y el nivel de la primera banda lateral es bastante más bajo que la central.

.

 

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información