CC1101: Arduino와 함께 사용하기 위한 RF 트랜시버

cc1101

확실히 일부 프로젝트에서는 Arduino나 다른 개발 보드 또는 DIY 회로를 사용하여 무선 주파수를 사용하여 작업해야 합니다. 글쎄요, 그게 당신의 경우라면, 당신은 무엇이 무엇인지 알아야 합니다. CC1101 무선 주파수(RF) 송수신기. 이것이 바로 우리가 이 기사에서 여러분에게 설명하려고 노력할 것입니다.

그리고 이것으로 다른 우리 목록에 포함된 전자 부품, 다양한 신호 주파수로 작업할 수 있습니다…

RF란 무엇입니까?

전자기 스펙트럼

무선 주파수(RF) 우리는 공기를 통해 정보를 전송하는 데 사용되는 전자기 스펙트럼의 일부를 말합니다. RF파는 전자기 방사선의 일종으로 케이블과 같은 도체를 통해 전기 에너지가 전달될 때마다 생성됩니다. RF라는 용어는 이전 이미지에서 보여드린 전자기 스펙트럼의 에너지가 가장 적은 부분에 적용되며 3Hz에서 300GHz 사이에 위치합니다.

빛의 속도 = 파장 · 주파수

빛의 속도(약 3.000.000m/s)는 절대 변하지 않습니다. 따라서 RF 신호의 파장이 증가하면 주파수는 이에 비례하여 감소하며 그 반대의 경우도 마찬가지입니다. 상대적으로 높은 주파수의 RF 신호는 짧은 파장을 갖고, 낮은 주파수의 RF 신호는 더 긴 파장을 갖습니다. 이와 같은 이유로 저주파 신호는 더 잘 침투하거나 더 넓은 범위를 커버할 수 있습니다. 예를 들어, 2.4Ghz WiFi를 사용하는 경우 5Ghz WiFi에 비해 더 멀리 도달하고 장벽을 더 잘 통과할 수 있지만 후자는 더 높은 전송 속도를 허용합니다.

헤르츠는 파동의 주파수를 측정하는 단위이며 초당 1주기에 해당합니다. 파동의 주파수가 높을수록 파장은 짧아집니다. 그렇기 때문에 감마선은 투과성이 매우 좋습니다. 파장이 매우 작고 주파수가 매우 높아 에너지가 매우 높기 때문입니다.

스펙트럼의 이 영역에서 나오는 전자기파는 발전기에서 발생하는 교류 전류를 안테나에 적용하여 전송될 수 있습니다. 그만큼 무선 주파수, 전자기파이므로 빛의 속도로 이동합니다. 가장 기본적으로 안테나의 다양한 전기 신호는 전자기 진동(즉, RF파)을 생성할 수 있습니다. 이는 의도하지 않은 것일 수도 있고(다른 장치에 간섭을 일으킬 가능성이 있는 경우) 의도적인 것일 수도 있습니다. 즉, 다른 안테나가 수신하여 유용한 정보로 해석할 수 있도록 주의 깊게 변조된 신호일 수 있습니다.

이 RF 범위 내에서 예를 들어 다음과 같이 데이터를 고속으로 전송할 수 있습니다. Wi-Fi 통신 휴대폰, 기존 AM 및 FM 라디오도 포함됩니다.

트랜시버란 무엇입니까?

RF 변환기

트랜시버는 다음과 같은 장치입니다. 송신기와 수신기의 기능을 결합합니다. 공유 회로에서. 이는 한편으로는 송신기, 다른 한편으로는 수신기를 가질 필요 없이 신호를 보내고 받을 수 있음을 의미합니다. 많은 DIY 프로젝트에 매우 실용적인 것입니다.

트랜시버는 다음과 같습니다. 두 가지 일반적인 유형: 전이중 및 반이중. 전이중 트랜시버에서는 장치가 동시에 전송하고 수신할 수 있습니다. 전이중 트랜시버의 일반적인 예는 휴대폰입니다. 반면 반이중 트랜시버는 한 쪽을 음소거하고 다른 쪽은 전송합니다.

트랜시버는 무선통신의 초석 라디오, TV 등과 같은 정보 전송 방법과 기타 여러 네트워크를 통해 휴대폰에서 통신 위성에 이르기까지 다양한 애플리케이션에 사용됩니다.

트랜시버의 응용

무선 주파수(RF) 트랜시버는 다기능 장치 이는 많은 용도를 가질 수 있습니다. 예를 들어 앞서 말했듯이 무선 통신이 필요한 다양한 애플리케이션에서는 그 존재가 필수적입니다. 이동 통신 분야에서 송수신기는 신호 전송 및 수신을 위해 휴대폰에 사용됩니다. 또한 라우터, 컴퓨터, IoT(사물 인터넷) 장치와 같은 장치에 배포되는 Wi-Fi 및 Bluetooth와 같은 기술에는 무선 통신을 사용하여 작동하는 데 필수적입니다.

전문 분야에서 RF 트랜시버는 보안 시스템에 필수적입니다. 양방향 라디오, 전문 애플리케이션, 보안 및 응급 서비스에 사용되는 양방향 라디오와 같은 것입니다. 이러한 장치는 물체 감지, 항법 및 항공 교통 관제에 사용되는 레이더와 같은 감지 시스템뿐만 아니라 수중 응용 분야용 소나 시스템에도 적용됩니다.

La 방송, 라디오와 텔레비전 모두 지상파든 위성이든 다양한 미디어를 통해 신호를 전송하기 위해 RF 트랜시버를 사용합니다. 또한 우주 영역에서 트랜시버는 위성 통신 시스템의 위성과 지상국 간의 통신에 매우 중요합니다.

En 원격 제어 및 원격 측정 애플리케이션, RF 트랜시버는 전자 장치, 드론 또는 무인 항공기(UAV)의 데이터 전송에 사용됩니다. 또한 위치 결정 및 내비게이션에 기여하는 GPS 수신기와 같은 내비게이션 시스템에도 필수적입니다. 요약하면, RF 트랜시버의 다양성으로 인해 RF 트랜시버는 무선 통신 및 데이터 전송에 의존하는 다양한 현대 기술의 필수 구성 요소가 됩니다.

분명히 CC1101은 한계가 있고 특정 주파수 범위에서 작동하기 때문에 CCXNUMX의 범위 내에 있지 않은 일부 애플리케이션이 있습니다. 그러나 시중에는 이 트랜시버와 같이 다른 주파수, 거리 등과 함께 작동하는 더 많은 장치가 있다는 것을 알아야 합니다.

CC1101이란 무엇입니까?

cc1101

El CC1101 는 1GHz 미만의 주파수에서 작동하도록 설계된 무선 주파수(RF) 트랜시버입니다. 이 장치는 Arduino와 같은 프로세서와 함께 사용하여 무선 주파수를 통해 데이터를 보내거나 받을 수 있습니다. CC1101은 다음 대역 내의 모든 주파수에서 작동할 수 있습니다.

  • 300에서 348MHz
  • 387에서 464MHz
  • 779에서 928MHz

이러한 기능은 CC1101을 옵션으로 만듭니다. 무선 통신이 필요한 다양한 프로젝트에 활용 가능Arduino 및 ESP8266/ESP321 프로젝트와 원격 통신 분야의 기타 전자 프로젝트를 포함합니다.

또한 CC1101은 비트 전송률을 조정할 수 있습니다 다양한 용도에 맞게 0.6Kbps에서 600Kbps까지 더 높은 전송 속도를 허용하며 2-FSK, GFSK 및 MSK3 변조도 지원합니다.

관심이 있으시면 전문 전자제품 매장이나 Amazon, Aliexpress, eBay와 같은 온라인 판매 플랫폼에서도 찾으실 수 있습니다. 여기 하나 있어요 추천 구매:

최대 +10dBm을 지원하는 모든 주파수에 대해 출력 전력도 프로그래밍 가능합니다. 그 범위는 최대 100-150 미터입니다., 빈도에 따라 다릅니다. 그리고 작동을 위해서는 1.8~3.6V의 전압이 필요합니다. 데이터 통신은 SPI 버스를 통해 이루어지기 때문에 MCU나 아두이노 등의 보드와 함께 사용하기 쉽습니다.

Arduino와 함께 CC1101 사용하기

Arduino IDE, 데이터 유형, 프로그래밍

이제 CC1101이 무엇인지 이해했다면 Arduino와 함께 사용하고 싶다면 쉽게 할 수 있습니다. 그러기 위해서는 가장 먼저 해야 할 일은 올바르게 연결하다 RF 장치 또는 모듈을 개발 보드에 연결합니다. CC1101은 5v 전압을 허용하지 않으며 손상될 수 있으므로 주의하세요. 따라서 다른 많은 장치에서 했던 것처럼 Arduino의 5v 소켓에 연결되지 않습니다. 제대로 작동하기 위한 연결은 다음과 같습니다.

  • VCC: 이 소켓을 갖기 위해 Arduino 3v3에 연결됩니다. 소켓이 없고 5v만 있는 경우 해당 전압을 공급할 수 있는 배터리나 외부 소스에 연결해야 합니다. 그렇지 않으면 CC1101이 손상될 수 있습니다.
  • SI: Arduino SCK에 연결하게 되는데, 모델에 따라 핀이 바뀔 수 있으나 일반적으로 D13입니다.
  • SO: 이 경우 일반적으로 Arduino의 D2 핀인 GO12에 연결됩니다.
  • CSN: Arduino의 D0인 GO9 핀에 연결해야 합니다.
  • GND: 마지막으로 GND는 Arduino 또는 전원 공급 장치의 GND에 연결됩니다.

이 작업이 완료되면 Arduino IDE에서 테스트하기 위한 코드를 작성할 차례입니다. 이를 위해 여기에서는 매우 기본적인 예를 보여드리지만 원하는 대로 수정할 수 있습니다. 이 경우 CC1101은 다음과 같이 작동합니다. 리시버 RF 신호:

작동하려면 Arduino IDE에 라이브러리를 설치해야 합니다. 해당 라이브러리는 CC1101용 ELECHOUSE 라이브러리입니다. 여기에서 다운로드 할 수 있습니다.
#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. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.