CC1101: ricetrasmettitore RF da utilizzare con Arduino

cc1101

Sicuramente in alcuni progetti avrai bisogno di lavorare in radiofrequenza con il tuo Arduino, o con qualsiasi altra scheda di sviluppo o circuito fai da te. Bene, se questo è il tuo caso, dovresti sapere di cosa si tratta Ricetrasmettitore a radiofrequenza (RF) CC1101. Ed è quello che cercheremo di spiegarti in questo articolo.

E con quest'altro componente elettronico che si unisce alla nostra lista, puoi lavorare con diverse frequenze di segnale...

Cos'è la RF?

spettro elettromagnetico

Con radiofrequenza (RF) Ci riferiamo a una parte dello spettro elettromagnetico che viene utilizzata per trasmettere informazioni attraverso l'aria. Le onde RF sono un tipo di radiazione elettromagnetica e vengono prodotte ogni volta che l'energia elettrica viene trasmessa attraverso un conduttore, come un cavo. Il termine RF si applica alla porzione meno energetica dello spettro elettromagnetico che ti mostro nell'immagine precedente, e che si trova tra 3 hertz (Hz) e 300 gigahertz (GHz).

Velocità della luce = Lunghezza d'onda · frequenza

La velocità della luce (circa 3.000.000 m/s) non cambia mai, quindi all'aumentare della lunghezza d'onda del segnale RF, la frequenza diminuisce proporzionalmente e viceversa. Un segnale RF a frequenza relativamente alta ha una lunghezza d'onda corta mentre un segnale RF a frequenza più bassa ha una lunghezza d'onda maggiore. Per lo stesso motivo, i segnali a frequenza più bassa sono più penetranti o possono coprire una copertura maggiore. Ad esempio, se disponi di un WiFi a 2.4 Ghz, può arrivare più lontano e superare meglio le barriere rispetto al WiFi a 5 Ghz, anche se quest'ultimo consente velocità di trasmissione più elevate...

L'hertz è l'unità di misura della frequenza delle onde e corrisponde a un ciclo al secondo. Maggiore è la frequenza dell'onda, minore è la sua lunghezza d'onda. Questo è il motivo per cui la radiazione gamma è molto penetrante, poiché la lunghezza d'onda è molto piccola e la sua frequenza è molto alta, quindi è altamente energetica.

Le onde elettromagnetiche provenienti da questa regione dello spettro possono essere trasmesse applicando corrente alternata proveniente da un generatore a un'antenna. IL onde a radiofrequenza, essendo onde elettromagnetiche, viaggiano alla velocità della luce. Nella sua forma più elementare, un segnale elettrico variabile in un'antenna può produrre oscillazioni elettromagnetiche (cioè onde RF). Questi possono essere involontari (causando potenzialmente interferenze con altri dispositivi) o intenzionali: segnali attentamente modulati che altre antenne possono ricevere ed essere interpretati come informazioni utili.

All'interno di questo intervallo RF possiamo trasmettere dati ad alta velocità, ad esempio, come fatto in Comunicazioni Wi-Fi e cellulari, oltre alle tradizionali radio AM e FM.

Cos'è un ricetrasmettitore?

Trasduttore RF

Un ricetrasmettitore è un dispositivo che combina le capacità di un trasmettitore e di un ricevitore su circuiti condivisi. Ciò significa che può inviare e ricevere segnali, senza bisogno di avere un trasmettitore da un lato e un ricevitore dall'altro. Qualcosa di abbastanza pratico per molti progetti fai-da-te.

I ricetrasmettitori possono essere due tipologie generali: full duplex e half duplex. In un ricetrasmettitore full duplex, il dispositivo può trasmettere e ricevere contemporaneamente. Un esempio comune di ricetrasmettitore full duplex è un telefono cellulare. D'altro canto, un ricetrasmettitore half-duplex disattiva l'audio di un interlocutore mentre l'altro trasmette.

I ricetrasmettitori sono i fondamentale della comunicazione wireless e sono utilizzati in una varietà di applicazioni, dai telefoni cellulari ai satelliti per comunicazioni, attraverso molte altre reti e modi di trasmettere informazioni, come radio, TV, ecc.

Applicazioni di un ricetrasmettitore

Un ricetrasmettitore a radiofrequenza (RF) è a dispositivo multifunzionale che può avere un gran numero di usi. Ad esempio, come dicevo in precedenza, la sua presenza è fondamentale in diverse applicazioni che richiedono la comunicazione wireless. Nel campo delle telecomunicazioni mobili, i ricetrasmettitori vengono utilizzati nei telefoni cellulari per la trasmissione e la ricezione dei segnali. Inoltre, sono essenziali in tecnologie come WiFi e Bluetooth, implementate in dispositivi come router, computer e dispositivi Internet of Things (IoT), che dipendono dalla comunicazione wireless per il loro funzionamento.

In ambito professionale i ricetrasmettitori RF sono essenziali nei sistemi di sicurezza. Radio bidirezionale, come le radio ricetrasmittenti utilizzate in applicazioni professionali, servizi di sicurezza e di emergenza. Questi dispositivi trovano applicazione anche nei sistemi di rilevamento, come i radar utilizzati per il rilevamento di oggetti, la navigazione e il controllo del traffico aereo, nonché nei sistemi sonar per applicazioni subacquee.

La trasmissione, Sia per la radio che per la televisione, la trasmissione dei segnali attraverso diversi media, sia terrestri che satellitari, dipende dai ricetrasmettitori RF. Inoltre, nel settore spaziale, i ricetrasmettitori sono fondamentali per la comunicazione tra satelliti e stazioni terrestri nei sistemi di comunicazione satellitare.

En applicazioni di telecontrollo e telemetria, I ricetrasmettitori RF vengono utilizzati per la trasmissione di dati da dispositivi elettronici, droni o veicoli aerei senza pilota (UAV). Sono essenziali anche nei sistemi di navigazione, come i ricevitori GPS, dove contribuiscono alla determinazione della posizione e alla navigazione. In sintesi, la versatilità dei ricetrasmettitori RF li rende componenti essenziali in una varietà di tecnologie moderne che si basano sulla comunicazione wireless e sulla trasmissione dei dati.

Ovviamente ci sono alcune di queste applicazioni che non sono alla portata del CC1101, poiché ha i suoi limiti e funziona in determinate gamme di frequenza. Tuttavia, dovresti sapere che ci sono più dispositivi sul mercato come questo ricetrasmettitore per funzionare con altre frequenze, distanze, ecc.

Cos'è CC1101?

cc1101

El CC1101 è un ricetrasmettitore a radiofrequenza (RF) progettato per funzionare a frequenze inferiori a 1 GHz. Questo dispositivo può essere utilizzato insieme a un processore come Arduino per inviare o ricevere dati tramite radiofrequenza. Il CC1101 può funzionare a qualsiasi frequenza all'interno delle seguenti bande:

  • Da 300 a 348 MHz
  • Da 387 a 464 MHz
  • Da 779 a 928 MHz

Queste caratteristiche rendono il CC1101 un'opzione Versatile per una varietà di progetti che richiedono comunicazione wireless, compresi i progetti Arduino ed ESP8266/ESP321 e altri progetti elettronici nel campo delle comunicazioni remote.

Inoltre, il CC1101 Consente di regolare la velocità in bit per usi diversi, consentendo velocità di trasmissione più elevate, da 0.6 Kbps a 600 Kbps. E supporta anche le modulazioni 2-FSK, GFSK e MSK3.

Se sei interessato, puoi trovarlo nei negozi specializzati di elettronica, ma anche su piattaforme di vendita online come Amazon, Aliexpress ed eBay. Eccone uno acquistare raccomandazione:

Anche la potenza di uscita è programmabile, per tutte le frequenze che supportano fino a +10 dBm. Lui la portata è fino a 100-150 metri, a seconda della frequenza. E per il suo funzionamento necessita di una tensione compresa tra 1.8 e 3.6 V. La comunicazione dei dati avviene tramite il bus SPI, quindi è facile utilizzarlo insieme a un MCU o schede come Arduino...

Utilizzo del CC1101 con Arduino

Arduino IDE, tipi di dati, programmazione

Ora, una volta capito cos'è il CC1101, se vuoi usarlo con Arduino, è facile farlo. Per fare questo, la prima cosa è connettersi correttamente il dispositivo o modulo RF alla scheda di sviluppo. Fai attenzione, poiché il CC1101 non tollera tensioni da 5 V e potresti danneggiarlo, quindi non si collegherà alla presa da 5 V di Arduino come abbiamo fatto con molti altri dispositivi. La connessione per farlo funzionare correttamente è la seguente:

  • Vcc: andrà collegato all'Arduino 3v3 per avere questa presa, se non ce l'ha e hai solo 5v, allora dovrai collegarlo ad una batteria o fonte esterna che possa fornire quella tensione altrimenti il ​​CC1101 lo farà essere danneggiato.
  • SI: Verrà collegato all'Arduino SCK, che può cambiare pin a seconda del modello, ma che generalmente è D13.
  • SO: In questo caso verrà collegato a GO2, che solitamente è il pin D12 di Arduino.
  • CSN: devi portarlo sul pin GO0, che è D9 di Arduino.
  • GND: e infine, GND sarà collegato a GND di Arduino o al tuo alimentatore.

Fatto ciò, è il momento di scrivere il codice per testarlo nell'IDE di Arduino. Per fare ciò, qui ti mostro un esempio molto semplice, ma che puoi modificare a tuo piacimento. In questo caso il CC1101 funzionerà come ricevitore Segnale RF:

Nota che dovrai installare una libreria nel tuo IDE Arduino per poter funzionare, quella libreria è quella ELECHOUSE per CC1101 che puoi scaricare da qui.
#include <ELECHOUSE_CC1101_SRC_DRV.h>

void setup(){

    Serial.begin(9600);

    if (ELECHOUSE_cc1101.getCC1101()){         // Comprobar la conexión SPI del CC1101.
    Serial.println("Connection OK");
    }else{
    Serial.println("Connection Error");
    }

    ELECHOUSE_cc1101.Init();              // Inicializa el CC1101
    ELECHOUSE_cc1101.setCCMode(1);       // Configuración del modo de transferencia interna.
    ELECHOUSE_cc1101.setModulation(0);  // Modulación: 0 = 2-FSK, 1 = GFSK, 2 = ASK/OOK, 3 = 4-FSK, 4 = MSK.
    ELECHOUSE_cc1101.setMHZ(300,15);   // Pon la frecuencia que quieras usar para la transmisión (por defecto es 433,92 Mhz)
    ELECHOUSE_cc1101.setSyncMode(2);  // Modo de sync: 0 = No preamble/sync. 1 = 16 sync word bits detected. 2 = 16/16 sync word bits detected. 3 = 30/32 sync word bits detected. 4 = No preamble/sync, carrier-sense above threshold. 5 = 15/16 + carrier-sense above threshold. 6 = 16/16 + carrier-sense above threshold. 7 = 30/32 + carrier-sense above threshold.
    ELECHOUSE_cc1101.setCrc(1);      // 1 = CRC calculado en TX y comprobación CRC en RX habilitada. 0 = CRC deshabilitado en TX y RX.
    
    Serial.println("Rx Mode");
}
byte buffer[61] = {0};

void loop(){

    //Comprueba si se ha recibido algo en un tiempo marcado por (time in millis)
    if (ELECHOUSE_cc1101.CheckRxFifo(100)){
    
    if (ELECHOUSE_cc1101.CheckCRC()){    //Prueba CRC. Si "setCrc(false)" CRC devuelve un OK siempre.
    Serial.print("Rssi: ");
    Serial.println(ELECHOUSE_cc1101.getRssi());
    Serial.print("LQI: ");
    Serial.println(ELECHOUSE_cc1101.getLqi());
    
    int len = ELECHOUSE_cc1101.ReceiveData(buffer);
    buffer[len] = '\0';
    Serial.println((char *) buffer);
    for (int i = 0; i < len; i++){
    Serial.print(buffer[i]);
    Serial.print(",");
    }
    Serial.println();
    }
    }
}

Il CC1101 funziona come trasmettitore Il segnale RF ha un codice simile al precedente.


Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.