Il modulo RF CC1101 è un ricetrasmettitore RF sub-1 GHz a basso consumo per la comunicazione dati wireless. Di solito viene controllato da un microcontrollore tramite SPI (SCK, MISO, MOSI, CSN) e può usare GDO0/GDO2 come linee digitali di interrupt/stato.
| Pin | Segnale | Descrizione |
|---|---|---|
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. |
| Da | A | Filo |
|---|---|---|
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 |
Questo esempio è stato scritto e verificato in compilazione per arduino-uno. Codey Online lo adatta a qualsiasi altra scheda supportata.
#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();
}
}
Descrivi cosa vuoi realizzare. Codey Online scrive il codice, disegna lo schema di collegamento, lo compila e programma la tua scheda direttamente dal browser.
Inizia gratis