CC1101: RF-transceiver voor gebruik met Arduino

cc1101

Zeker, bij sommige projecten moet je met radiofrequentie werken met je Arduino, of met een ander ontwikkelbord of doe-het-zelfcircuit. Nou, als dat jouw geval is, zou je moeten weten wat de CC1101 radiofrequentie (RF) zendontvanger. En dat is wat wij u in dit artikel proberen uit te leggen.

En met deze andere elektronische component die aan onze lijst wordt toegevoegd, je kunt met verschillende signaalfrequenties werken...

Wat is RF?

elektromagnetisch spectrum

met radiofrequentie (RF) We hebben het over een deel van het elektromagnetische spectrum dat wordt gebruikt om informatie door de lucht te verzenden. RF-golven zijn een soort elektromagnetische straling en worden geproduceerd wanneer elektrische energie door een geleider, zoals een kabel, wordt overgedragen. De term RF heeft betrekking op het minst energetische deel van het elektromagnetische spectrum dat ik je in de vorige afbeelding laat zien, en dat zich tussen 3 hertz (Hz) en 300 gigahertz (GHz) bevindt.

Snelheid van het licht = Golflengte · frequentie

De snelheid van het licht (ongeveer 3.000.000 m/s) verandert nooit, dus naarmate de golflengte van het RF-signaal toeneemt, neemt de frequentie proportioneel af en omgekeerd. Een RF-signaal met een relatief hoge frequentie heeft een korte golflengte en een RF-signaal met een lagere frequentie heeft een langere golflengte. Om dezelfde reden zijn signalen met een lagere frequentie doordringender of kunnen ze een grotere dekking bestrijken. Als u bijvoorbeeld 2.4 Ghz WiFi heeft, kan deze verder reiken en barrières beter overschrijden dan 5 Ghz WiFi, hoewel deze laatste hogere transmissiesnelheden mogelijk maakt...

De hertz is de meeteenheid voor de frequentie van golven en komt overeen met één cyclus per seconde. Hoe hoger de frequentie van de golf, hoe korter de golflengte. Dat is de reden waarom gammastraling zeer doordringend is, omdat de golflengte erg klein is en de frequentie erg hoog is, dus zeer energetisch.

Elektromagnetische golven uit dit gebied van het spectrum kunnen worden verzonden door wisselstroom afkomstig van een generator aan te leggen op een antenne. De radiofrequentie golvenOmdat het elektromagnetische golven zijn, reizen ze met de snelheid van het licht. In de meest elementaire vorm kan een variërend elektrisch signaal in een antenne elektromagnetische oscillaties (dat wil zeggen RF-golven) produceren. Deze kunnen onbedoeld zijn (mogelijk interferentie met andere apparaten veroorzaken) of opzettelijk: zorgvuldig gemoduleerde signalen die andere antennes kunnen ontvangen en geïnterpreteerd kunnen worden als nuttige informatie.

Binnen dit RF-bereik kunnen we bijvoorbeeld met hoge snelheid data verzenden, zoals gedaan in Wi-Fi-communicatie en mobiele telefoons, evenals traditionele AM- en FM-radio.

Wat is een zendontvanger?

RF-transducer

Een zendontvanger is een apparaat dat combineert de mogelijkheden van een zender en een ontvanger op gedeelde circuits. Dit betekent dat hij signalen kan verzenden en ontvangen, zonder dat hij enerzijds een zender en anderzijds een ontvanger nodig heeft. Iets heel praktisch voor veel doe-het-zelf-projecten.

De zendontvangers kunnen dat zijn twee algemene typen: full-duplex en half-duplex. Bij een full-duplex transceiver kan het apparaat tegelijkertijd zenden en ontvangen. Een bekend voorbeeld van een full-duplex transceiver is een mobiele telefoon. Aan de andere kant dempt een half-duplexzendontvanger de ene partij terwijl de andere uitzendt.

De zendontvangers zijn de hoeksteen van draadloze communicatie en worden gebruikt in een verscheidenheid aan toepassingen, van mobiele telefoons tot communicatiesatellieten, via vele andere netwerken en manieren om informatie te verzenden, zoals radio, tv, enz.

Toepassingen van een zendontvanger

Een radiofrequentie (RF)-zendontvanger is een multifunctioneel apparaat die een groot aantal toepassingen kan hebben. Zoals ik eerder al zei, is de aanwezigheid ervan bijvoorbeeld essentieel in verschillende toepassingen die draadloze communicatie vereisen. Op het gebied van mobiele telecommunicatie worden in mobiele telefoons zendontvangers gebruikt voor het verzenden en ontvangen van signalen. Bovendien zijn ze essentieel in technologieën zoals WiFi en Bluetooth, die worden ingezet in apparaten zoals routers, computers en Internet of Things (IoT)-apparaten, die voor hun werking afhankelijk zijn van draadloze communicatie.

In de professionele sector zijn RF-transceivers essentieel in beveiligingssystemen. tweerichtingsradio, zoals portofoons die worden gebruikt in professionele toepassingen, beveiliging en hulpdiensten. Deze apparaten vinden ook toepassing in detectiesystemen, zoals radars die worden gebruikt voor objectdetectie, navigatie en luchtverkeersleiding, maar ook in sonarsystemen voor onderwatertoepassingen.

La uitzending, Voor zowel radio als televisie is het afhankelijk van RF-zendontvangers voor de overdracht van signalen via verschillende media, zowel terrestrische als satelliet. Bovendien zijn zendontvangers in het ruimtedomein van cruciaal belang voor de communicatie tussen satellieten en grondstations in satellietcommunicatiesystemen.

En toepassingen voor afstandsbediening en telemetrieRF-zendontvangers worden gebruikt voor gegevensoverdracht vanaf elektronische apparaten, drones of onbemande luchtvaartuigen (UAV). Ook zijn ze essentieel in navigatiesystemen, zoals GPS-ontvangers, waar ze bijdragen aan locatiebepaling en navigatie. Samenvattend maakt de veelzijdigheid van RF-transceivers ze tot essentiële componenten in een verscheidenheid aan moderne technologieën die afhankelijk zijn van draadloze communicatie en datatransmissie.

Uiteraard zijn er enkele van deze toepassingen die niet binnen het bereik van de CC1101 liggen, omdat deze zijn beperkingen heeft en in bepaalde frequentiebereiken werkt. U moet echter weten dat er meer apparaten op de markt zijn, zoals deze transceiver, die met andere frequenties, afstanden, enz. kunnen werken.

Wat is CC1101?

cc1101

El CC1101 is een radiofrequentie (RF)-transceiver die is ontworpen om te werken op frequenties onder 1 GHz. Dit apparaat kan worden gebruikt in combinatie met een processor zoals Arduino om gegevens via radiofrequentie te verzenden of te ontvangen. De CC1101 kan op elke frequentie werken binnen de volgende banden:

  • 300 een 348 MHz
  • 387 een 464 MHz
  • 779 een 928 MHz

Deze kenmerken maken de CC1101 tot een optie Veelzijdig voor een verscheidenheid aan projecten die draadloze communicatie vereisen, inclusief Arduino- en ESP8266/ESP321-projecten, en andere elektronicaprojecten op het gebied van communicatie op afstand.

Bovendien is de CC1101 Hiermee kunt u de bitsnelheid aanpassen voor verschillende toepassingen, waardoor hogere transmissiesnelheden mogelijk zijn, van 0.6 Kbps tot 600 Kbps. En het ondersteunt ook 2-FSK-, GFSK- en MSK3-modulaties.

Als je geïnteresseerd bent, kun je het vinden in gespecialiseerde elektronicawinkels, maar ook op online verkoopplatforms zoals Amazon, AliExpress en eBay. Hier heb je er een koop aanbeveling:

Het uitgangsvermogen is ook programmeerbaar, voor alle frequenties tot +10 dBm. Hij bereik is maximaal 100-150 meter, afhankelijk van de frequentie. En voor zijn werking heeft hij een spanning nodig van 1.8 tot 3.6V. De datacommunicatie vindt plaats via de SPI-bus, dus deze is eenvoudig te gebruiken in combinatie met een MCU of boards zoals Arduino...

De CC1101 gebruiken met Arduino

Arduino IDE, datatypes, programmeren

Als je eenmaal begrijpt wat de CC1101 is, als je hem met Arduino wilt gebruiken, is dat eenvoudig te doen. Om dit te doen, is het eerste wat u moet doen correct aansluiten het RF-apparaat of de module naar uw ontwikkelbord. Wees voorzichtig, aangezien de CC1101 geen 5V-spanningen tolereert en u deze kunt beschadigen, kan hij geen verbinding maken met de 5V-aansluiting van de Arduino, zoals we met veel andere apparaten hebben gedaan. De aansluiting om het goed te laten werken is als volgt:

  • VCC: hij wordt aangesloten op de Arduino 3v3 om deze socket te hebben, als hij die niet heeft en je hebt alleen 5v, dan moet je hem aansluiten op een batterij of externe bron die die spanning kan leveren, anders doet de CC1101 dat wel beschadigd zijn.
  • SI: Hij wordt aangesloten op de Arduino SCK, die afhankelijk van het model van pin kan veranderen, maar die over het algemeen D13 is.
  • SO: In dit geval wordt deze verbonden met GO2, wat meestal de D12-pin van de Arduino is.
  • CSN: je moet het naar de GO0-pin brengen, dat is D9 van de Arduino.
  • GND: en ten slotte wordt GND verbonden met GND van de Arduino of uw voeding.

Zodra dit is gebeurd, is het tijd om de code te schrijven om deze in de Arduino IDE te testen. Om dit te doen, laat ik u hier een heel eenvoudig voorbeeld zien, maar wel één dat u naar wens kunt aanpassen. In dit geval zal de CC1101 werken als receptor RF-signaal:

Merk op dat je een bibliotheek in je Arduino IDE moet installeren om te kunnen werken, die bibliotheek is de ELECHOUSE-bibliotheek voor de CC1101 die u kunt hier downloaden.
#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();
    }
    }
}

De CC1101 werkt als zender Het RF-signaal heeft een code die lijkt op de vorige.


Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.