El módulo RF CC1101 es un transceptor RF sub-1 GHz de bajo consumo para comunicación de datos inalámbrica. Normalmente se controla con un microcontrolador por SPI (SCK, MISO, MOSI, CSN) y puede usar GDO0/GDO2 como líneas digitales de interrupción/estado.
| Pin | Señal | Descripción |
|---|---|---|
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. |
| Desde | Hasta | Cable |
|---|---|---|
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 |
Este ejemplo se escribió y verificó por compilación para arduino-uno. Codey Online lo adapta a cualquier otra placa compatible.
#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();
}
}
Describe lo que quieres construir. Codey Online escribe el codigo, dibuja el esquema de conexiones, lo compila y graba tu placa directamente desde el navegador.
Empieza gratis