CC1101: เครื่องรับส่งสัญญาณ RF สำหรับใช้กับ Arduino

cc1101

แน่นอนว่าในบางโปรเจ็กต์คุณต้องทำงานกับความถี่วิทยุกับ Arduino หรือกับบอร์ดพัฒนาหรือวงจร DIY อื่น ๆ ถ้าเป็นกรณีของคุณคุณควรรู้ว่าอะไร เครื่องรับส่งสัญญาณความถี่วิทยุ CC1101 (RF). และนั่นคือสิ่งที่เราจะพยายามอธิบายให้คุณฟังในบทความนี้

และอีกอย่างนี้ด้วย ชิ้นส่วนอิเล็กทรอนิกส์ที่เข้าร่วมรายการของเรา, คุณสามารถทำงานกับความถี่สัญญาณที่แตกต่างกัน...

อาร์เอฟคืออะไร?

สเปกตรัมแม่เหล็กไฟฟ้า

กับ ความถี่วิทยุ (RF) เรากำลังหมายถึงส่วนหนึ่งของสเปกตรัมแม่เหล็กไฟฟ้าที่ใช้ในการส่งข้อมูลผ่านอากาศ คลื่น RF เป็นรังสีแม่เหล็กไฟฟ้าประเภทหนึ่ง และเกิดขึ้นเมื่อใดก็ตามที่พลังงานไฟฟ้าถูกส่งผ่านตัวนำ เช่น สายเคเบิล คำว่า RF ใช้กับส่วนที่พลังงานน้อยที่สุดของสเปกตรัมแม่เหล็กไฟฟ้าที่ฉันแสดงให้คุณเห็นในภาพก่อนหน้า ซึ่งอยู่ระหว่าง 3 เฮิรตซ์ (Hz) ถึง 300 กิกะเฮิรตซ์ (GHz)

ความเร็วแสง = ความยาวคลื่น · ความถี่

ความเร็วแสง (ประมาณ 3.000.000 ม./วินาที) ไม่เคยเปลี่ยนแปลง ดังนั้นเมื่อความยาวคลื่นของสัญญาณ RF เพิ่มขึ้น ความถี่จะลดลงตามสัดส่วนและในทางกลับกัน สัญญาณ RF ความถี่สูงจะมีความยาวคลื่นสั้น และสัญญาณ RF ความถี่ต่ำกว่าจะมีความยาวคลื่นยาวกว่า ด้วยเหตุผลเดียวกันนี้ สัญญาณความถี่ที่ต่ำกว่าจึงมีการทะลุทะลวงมากกว่าหรือสามารถครอบคลุมความครอบคลุมได้มากกว่า ตัวอย่างเช่น หากคุณมี WiFi 2.4 Ghz ก็สามารถเข้าถึงได้ไกลกว่าและข้ามสิ่งกีดขวางได้ดีกว่าเมื่อเทียบกับ WiFi 5 Ghz แม้ว่าอย่างหลังจะให้ความเร็วในการรับส่งข้อมูลที่สูงกว่า...

เฮิรตซ์เป็นหน่วยวัดความถี่ของคลื่น และสอดคล้องกับหนึ่งรอบต่อวินาที ยิ่งความถี่ของคลื่นสูง ความยาวคลื่นก็จะสั้นลง นั่นคือสาเหตุที่รังสีแกมมาทะลุผ่านได้มาก เนื่องจากความยาวคลื่นมีขนาดเล็กมากและความถี่ของรังสีก็สูงมาก จึงมีพลังงานสูง

คลื่นแม่เหล็กไฟฟ้าจากบริเวณสเปกตรัมนี้สามารถส่งผ่านได้โดยการใช้กระแสสลับจากเครื่องกำเนิดไฟฟ้าไปยังเสาอากาศ ที่ คลื่นความถี่วิทยุเป็นคลื่นแม่เหล็กไฟฟ้าเดินทางด้วยความเร็วแสง โดยพื้นฐานที่สุด สัญญาณไฟฟ้าที่แตกต่างกันในเสาอากาศสามารถสร้างการสั่นของแม่เหล็กไฟฟ้าได้ (เช่น คลื่น RF) สิ่งเหล่านี้อาจไม่ได้ตั้งใจ (อาจก่อให้เกิดการรบกวนกับอุปกรณ์อื่น ๆ ) หรือโดยเจตนา: สัญญาณมอดูเลตอย่างระมัดระวังซึ่งเสาอากาศอื่นสามารถรับและตีความได้ว่าเป็นข้อมูลที่เป็นประโยชน์

ภายในช่วง RF นี้ เราสามารถส่งข้อมูลด้วยความเร็วสูงได้ เช่น ที่ทำใน การสื่อสารผ่าน Wi-Fi และโทรศัพท์มือถือตลอดจนวิทยุ AM และ FM แบบดั้งเดิม

เครื่องรับส่งสัญญาณคืออะไร?

ทรานสดิวเซอร์คลื่นความถี่วิทยุ

ตัวรับส่งสัญญาณเป็นอุปกรณ์ที่ ผสมผสานความสามารถของเครื่องส่งและเครื่องรับ บนวงจรที่ใช้ร่วมกัน ซึ่งหมายความว่าสามารถส่งและรับสัญญาณได้โดยไม่จำเป็นต้องมีเครื่องส่งในมือข้างหนึ่งและตัวรับสัญญาณอีกข้างหนึ่ง สิ่งที่ค่อนข้างใช้งานได้จริงสำหรับโครงการ DIY มากมาย

ตัวรับส่งสัญญาณก็ได้ สองประเภททั่วไป: ฟูลดูเพล็กซ์และฮาล์ฟดูเพล็กซ์ ในเครื่องรับส่งสัญญาณฟูลดูเพล็กซ์ อุปกรณ์สามารถส่งและรับได้ในเวลาเดียวกัน ตัวอย่างทั่วไปของตัวรับส่งสัญญาณฟูลดูเพล็กซ์คือโทรศัพท์มือถือ ในทางกลับกัน ตัวรับส่งสัญญาณฮาล์ฟดูเพล็กซ์จะปิดเสียงฝ่ายหนึ่งในขณะที่อีกฝ่ายส่งสัญญาณ

ตัวรับส่งสัญญาณคือ รากฐานสำคัญของการสื่อสารไร้สาย และนำไปใช้ในการใช้งานที่หลากหลายตั้งแต่โทรศัพท์มือถือไปจนถึงดาวเทียมสื่อสาร ผ่านเครือข่ายอื่นๆ และวิธีการส่งข้อมูล เช่น วิทยุ โทรทัศน์ เป็นต้น

การประยุกต์ใช้เครื่องรับส่งสัญญาณ

เครื่องรับส่งสัญญาณความถี่วิทยุ (RF) คือ เครื่องมัลติฟังก์ชั่น ซึ่งสามารถใช้งานได้เป็นจำนวนมาก ตัวอย่างเช่น อย่างที่ผมได้กล่าวไว้ก่อนหน้านี้ การมีอยู่ของมันเป็นสิ่งสำคัญในแอพพลิเคชั่นต่างๆ ที่ต้องใช้การสื่อสารไร้สาย ในด้านโทรคมนาคมเคลื่อนที่ ตัวรับส่งสัญญาณใช้ในโทรศัพท์มือถือสำหรับการส่งและรับสัญญาณ นอกจากนี้ ยังมีความจำเป็นในเทคโนโลยี เช่น WiFi และ Bluetooth ที่ใช้ในอุปกรณ์ต่างๆ เช่น เราเตอร์ คอมพิวเตอร์ และอุปกรณ์ Internet of Things (IoT) ซึ่งขึ้นอยู่กับการสื่อสารไร้สายในการทำงาน

ในสาขาวิชาชีพ ตัวรับส่งสัญญาณ RF มีความสำคัญในระบบรักษาความปลอดภัย วิทยุสองทางเช่น วิทยุสองทางที่ใช้ในการใช้งานระดับมืออาชีพ การรักษาความปลอดภัย และบริการฉุกเฉิน อุปกรณ์เหล่านี้ยังพบการใช้งานในระบบการตรวจจับ เช่น เรดาร์ที่ใช้สำหรับการตรวจจับวัตถุ การนำทาง และการควบคุมการจราจรทางอากาศ รวมถึงในระบบโซนาร์สำหรับการใช้งานใต้น้ำ

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 และคุณสามารถสร้างความเสียหายได้ ดังนั้น CC5 จะไม่เชื่อมต่อกับช่องเสียบ XNUMXv ของ Arduino เหมือนที่เราเคยทำกับอุปกรณ์อื่นๆ มากมาย การเชื่อมต่อเพื่อให้ทำงานได้อย่างถูกต้องมีดังนี้:

  • vcc: มันจะต่อเข้ากับ 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. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา