Comunicación RF 385, 433 y 815Mhz con Arduino y CC1101 Deja un comentario

¿Qué es un CC1101?

EL CC1101 es un transceptor RF para frecuencias inferiores a 1Ghz, que podemos usar junto a un procesador como Arduino para enviar o recibir datos por radio frecuencia.

El CC1101 puede trabajar en cualquier frecuencia dentro de las bandas 300 a 348Mhz, 387 a 464Mhz, y 779 a 928Mhz. Esto incluye la banda ICM, de uso sin necesidad de licencia.

En algunos países es ilegal emplear algunas de estas bandas. Comprobar la legislación vigente en vuestro país antes de aplicar el contenido de esta entrada.

Soporta distintos formatos de modulación (2-FSK, 4-FSK, GFSK y MSK), y la velocidad de transmisión es de hasta de 0.6 kbps a 600 kbps.

La potencia de salida programable, para todas las frecuencias de soporte de hasta + 10 dBm. El alcance es de hasta 100-150 metros, en función de la frecuencia.

Anuncio:

La tensión de operación es de 1.8 a 3.6V. La comunicación se realiza a través de SPI, por lo que es sencillo emplearlo junto a un procesador.

El CC1101 es una de las mejores y más robustas opciones para dotar a nuestro proyecto de transmisión RF, especialmente en los que incorporan procesadores de 3V3 como el ESP8266/ESP32.

Precio

Los CC1101 son dispositivos baratos. Podemos encontrarlos con antena “tipo muelle” por unos 1.30€ en vendedores internacionales de Ebay y Aliexpress.

Sin embargo, os recomiendo que compréis los modelos con antena con conector estándar, que son algo más caros 2,30€ pero con mejor comportamiento.

Esquema de montaje

El CC1101 opera a 3.3V, y no es tolerante a 5V. La mayoría de módulos no incorporan ningún tipo de adaptación, por lo que conectarlos a 5V dañará el CC1101.

Si vuestro procesador es de 3.3V, como el ESP8266 o ESP32 no tendréis ningún problema. Pero, si vuestro procesador de 5V deberéis usar un adaptador de nivel lógico como vimos aquí.

Aparte de esto, el esquema de conexión es sencillo, ya que el CC1101 se emplea bus SPI para la comunicación. Por tanto, la conexión vista desde el procesador es la siguiente.

La conexión, vista desde Arduino será la siguiente.

Normalmente los módulos CC1101 no son compatibles a 5V. Si no es así, y vuestro procesador no es de 3.3V, tendréis que usar un adaptador de nivel lógico.

Ejemplos de código

Ejemplo básico

Para emplear el CC1101 usaremos la librería SmartRC-CC1101 disponible en este enlace.

La librería incorpora varios ejemplos de uso que conviene revisar. El código a continuación es un código simplificado a partir de los ejemplos de la librería.

Emisor

Receptor

Clonar dispositivo

Uno de los ejemplos más habituales al tratar con dispositivos 315/433Mhz es copiar señales existentes, como vimos en la entrada Copiar un mando inalámbrico 315/433Mhz con Arduino.

Podemos realizar esta misma función con el CC1101, con algunas de las siguientes librerías

RC-Switch

Es posible emplear la librería RC-Switch junto con el CC1101. Aquí tenéis un ejemplo

NewRemoteReceiver

También es posible usar la librería NewRemoteReceiver con el CC1101. Aquí tenéis un ejemplo

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección
tutoriales de Arduino
0 0 vote
Article Rating

Anuncio:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?