Das CC1101 RF-Modul ist ein stromsparendes Sub-1-GHz-RF-Transceivermodul für die drahtlose Datenkommunikation. Es wird typischerweise von einem Mikrocontroller über SPI (SCK, MISO, MOSI, CSN) gesteuert und kann GDO0/GDO2 als digitale Interrupt-/Statusleitungen verwenden.
| Pin | Signal | Beschreibung |
|---|---|---|
CSN |
chip-select | Active-low SPI chip select for the CC1101 transceiver. |
GND |
ground | Ground reference for the CC1101 module and SPI interface. |
VCC |
power | 3.3 V supply input for the CC1101 RF transceiver module. |
GDO0 |
interrupt | Programmable CC1101 digital output, often used as packet/IRQ signal. |
SCK |
SCK | SPI clock input from the host microcontroller. |
MISO |
MISO | SPI data output from the CC1101 to the host controller. |
MOSI |
MOSI | SPI data input to the CC1101 from the host controller. |
GDO2 |
digital | Programmable CC1101 digital output for status, sync, or interrupt functions. |
| Von | Nach | Kabel |
|---|---|---|
board:5V |
x1:VCC |
red |
board:GND |
x1:GND |
black |
board:D10 |
x1:CSN |
green |
board:D2 |
x1:GDO0 |
blue |
board:D13 |
x1:SCK |
yellow |
board:D12 |
x1:MISO |
purple |
board:D11 |
x1:MOSI |
cyan |
Dieses Beispiel wurde für das arduino-uno geschrieben und kompiliergeprüft. Codey Online passt es für jedes andere unterstützte Board an.
#include <SPI.h>
#include <ELECHOUSE_CC1101_SRC_DRV.h>
const byte PIN_CC1101_CS = 10;
const byte PIN_CC1101_GDO0 = 2;
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
pinMode(PIN_CC1101_GDO0, INPUT);
// Configure the library to use the Uno's hardware SPI pins and our CS pin.
ELECHOUSE_cc1101.setSpiPin(PIN_CC1101_CS, MISO, MOSI, SCK);
ELECHOUSE_cc1101.setGDO0(PIN_CC1101_GDO0);
ELECHOUSE_cc1101.setCCMode(1); // Packet mode
ELECHOUSE_cc1101.setModulation(2); // ASK/OOK mapping in this library
ELECHOUSE_cc1101.setMHZ(433.92); // Common sub-GHz ISM frequency
ELECHOUSE_cc1101.setPA(10); // Moderate output power
ELECHOUSE_cc1101.Init();
Serial.println("CC1101 initialized. Listening for packets on 433.92 MHz...");
}
void loop() {
if (ELECHOUSE_cc1101.CheckRxFifo(10)) {
byte buffer[64];
byte len = ELECHOUSE_cc1101.ReceiveData(buffer);
Serial.print("Received ");
Serial.print(len);
Serial.print(" byte(s): ");
for (byte i = 0; i < len; i++) {
if (buffer[i] < 16) Serial.print('0');
Serial.print(buffer[i], HEX);
Serial.print(' ');
}
Serial.println();
}
}
Beschreib einfach, was du bauen willst. Codey Online schreibt den Code, zeichnet den Schaltplan, kompiliert alles und flasht dein Board direkt aus dem Browser.
Kostenlos starten