CC1101: RF трансивър за използване с Arduino

cc1101

Със сигурност в някои проекти трябва да работите с радиочестота с вашия Arduino или с друга платка за разработка или схема „направи си сам“. Е, ако това е вашият случай, трябва да знаете какво CC1101 радиочестотен (RF) трансивър. И това ще се опитаме да ви обясним в тази статия.

И с това другото електронен компонент, който се присъединява към нашия списък, можете да работите с различни честоти на сигнала...

Какво е RF?

електромагнитен спектър

с радиочестота (RF) Имаме предвид част от електромагнитния спектър, който се използва за предаване на информация по въздуха. Радиочестотните вълни са вид електромагнитно излъчване и се произвеждат, когато електрическата енергия се предава през проводник, като например кабел. Терминът RF се отнася за най-малко енергийната част от електромагнитния спектър, която ви показвам в предишното изображение и която се намира между 3 херца (Hz) и 300 гигахерца (GHz).

Скорост на светлината = дължина на вълната · честота

Скоростта на светлината (приблизително 3.000.000 2.4 5 m/s) никога не се променя, така че с увеличаване на дължината на вълната на радиочестотния сигнал честотата намалява пропорционално и обратно. Сравнително високочестотен RF сигнал има къса дължина на вълната, а по-нискочестотен RF сигнал има по-голяма дължина на вълната. Поради същата причина сигналите с по-ниска честота са по-проникващи или могат да покрият по-голямо покритие. Например, ако имате XNUMX Ghz WiFi, той може да достигне по-далеч и да пресече бариери по-добре в сравнение с XNUMX Ghz WiFi, въпреки че последният позволява по-високи скорости на предаване...

Херцът е мерната единица за честотата на вълните и съответства на един цикъл в секунда. Колкото по-висока е честотата на вълната, толкова по-къса е нейната дължина. Ето защо гама-лъчението е много проникващо, тъй като дължината на вълната е много малка, а честотата му е много висока, така че е много енергично.

Електромагнитните вълни от тази област на спектъра могат да се предават чрез прилагане на променлив ток, произхождащ от генератор към антена. The радиочестотни вълни, като електромагнитни вълни, се движат със скоростта на светлината. В най-основния си вид променлив електрически сигнал в антена може да произведе електромагнитни трептения (т.е. радиочестотни вълни). Те могат да бъдат неволни (потенциално причиняващи смущения с други устройства) или умишлени: внимателно модулирани сигнали, които други антени могат да приемат и да бъдат интерпретирани като полезна информация.

В рамките на този радиочестотен диапазон можем да предаваме данни с висока скорост, например, както се прави в Wi-Fi комуникации и мобилни телефони, както и традиционно AM и FM радио.

Какво е трансивър?

RF трансдюсер

Трансивърът е устройство, което съчетава възможностите на предавател и приемник на споделени вериги. Това означава, че може да изпраща и получава сигнали, без да е необходимо да има предавател от една страна и приемник от друга. Нещо доста практично за много DIY проекти.

Трансивърите могат да бъдат два общи типа: пълен дуплекс и полудуплекс. При пълен дуплекс приемо-предавател устройството може да предава и приема едновременно. Често срещан пример за пълен дуплекс приемо-предавател е мобилен телефон. От друга страна, полудуплексният трансивър заглушава едната страна, докато другата предава.

Трансивърите са крайъгълен камък на безжичната комуникация и се използват в различни приложения, от мобилни телефони до комуникационни сателити, чрез много други мрежи и начини за предаване на информация, като радио, телевизия и др.

Приложения на трансивър

Радиочестотен (RF) трансивър е a многофункционално устройство които могат да имат голям брой приложения. Например, както казах по-рано, присъствието му е от съществено значение в различни приложения, които изискват безжична комуникация. В областта на мобилните телекомуникации трансивърите се използват в мобилните телефони за предаване и приемане на сигнали. В допълнение, те са от съществено значение в технологии като WiFi и Bluetooth, внедрени в устройства като рутери, компютри и устройства за интернет на нещата (IoT), чиято работа зависи от безжичната комуникация.

В професионалната сфера радиочестотните трансивъри са от съществено значение в системите за сигурност. двупосочно радио, като например двупосочни радиостанции, използвани в професионални приложения, услуги за сигурност и спешни случаи. Тези устройства също намират приложение в системи за откриване, като радари, използвани за откриване на обекти, навигация и контрол на въздушното движение, както и в сонарни системи за подводни приложения.

La излъчване, Както за радиото, така и за телевизията, това зависи от RF приемо-предаватели за предаване на сигнали през различни медии, независимо дали са наземни или сателитни. Освен това в космическата област приемо-предавателите са от решаващо значение за комуникацията между спътниците и наземните станции в сателитните комуникационни системи.

En приложения за дистанционно управление и телеметрия, RF трансивърите се използват за предаване на данни от електронни устройства, дронове или безпилотни летателни апарати (UAV). Те също са от съществено значение в навигационните системи, като GPS приемници, където допринасят за определяне на местоположението и навигация. В обобщение, многофункционалността на RF трансивърите ги прави основни компоненти в различни съвременни технологии, които разчитат на безжична комуникация и предаване на данни.

Очевидно има някои от тези приложения, които не са в обсега на CC1101, тъй като той има своите ограничения и работи в определени честотни диапазони. Все пак трябва да знаете, че на пазара има повече устройства като този трансивър за работа с други честоти, разстояния и т.н.

Какво е CC1101?

cc1101

El CC1101 е радиочестотен (RF) трансивър, проектиран да работи на честоти под 1 GHz.Това устройство може да се използва заедно с процесор като Arduino за изпращане или получаване на данни чрез радиочестота. CC1101 може да работи на всяка честота в рамките на следните ленти:

  • 300 на 348 MHz
  • 387 на 464 MHz
  • 779 на 928 MHz

Тези характеристики правят CC1101 опция Универсален за различни проекти, изискващи безжична комуникация, включително проекти за Arduino и ESP8266/ESP321 и други проекти за електроника в областта на отдалечените комуникации.

В допълнение, CC1101 Позволява ви да регулирате битрейта за различни приложения, позволяващи по-високи скорости на предаване, от 0.6 Kbps до 600 Kbps.И също така поддържа 2-FSK, GFSK и MSK3 модулации.

Ако се интересувате, можете да го намерите в специализирани магазини за електроника, както и в онлайн платформи за продажба като Amazon, Aliexpress и eBay. Ето ви един препоръка за покупка:

Изходната мощност също е програмируема, за всички честоти, поддържащи до +10 dBm. Той обхватът е до 100-150 метра, в зависимост от честотата. А за работата му е необходимо напрежение от 1.8 до 3.6V. Комуникацията на данни се осъществява чрез SPI шината, така че е лесно да се използва заедно с MCU или платки като Arduino...

Използване на CC1101 с Arduino

Arduino IDE, типове данни, програмиране

Сега, след като разберете какво представлява CC1101, ако искате да го използвате с Arduino, това е лесно да се направи. За да направите това, първото нещо е свържете правилно RF устройството или модула към вашата развойна платка. Бъдете внимателни, тъй като CC1101 не понася 5v напрежение и можете да го повредите, така че няма да се свърже към 5v гнездото на Arduino, както направихме с много други устройства. Връзката, за да работи правилно, е следната:

  • VDC: той ще бъде свързан към Arduino 3v3, за да има този контакт, ако го няма и имате само 5v, тогава ще трябва да го свържете към батерия или външен източник, който може да достави това напрежение или CC1101 ще бъде повреден.
  • SI: Ще бъде свързан към Arduino SCK, който може да променя щифта в зависимост от модела, но който обикновено е D13.
  • SO: В този случай той ще бъде свързан към GO2, който обикновено е D12 щифтът на Arduino.
  • CSN: трябва да го занесете до щифта GO0, който е D9 на Arduino.
  • GND: и накрая, GND ще бъде свързан към GND на Arduino или вашето захранване.

След като това е направено, е време да напишете кода, за да го тествате в Arduino IDE. За да направите това, тук ви показвам много основен пример, но такъв, който можете да промените по ваш вкус. В този случай CC1101 ще работи като приемник RF сигнал:

Имайте предвид, че ще трябва да инсталирате библиотека във вашата Arduino IDE, за да можете да работите, тази библиотека е ELECHOUSE за CC1101, която можете да изтеглите от тук.
#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();
    }
    }
}

CC1101 работи като предавател RF сигналът има код, подобен на предишния.


Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.