Корзина пуста
Описание
Модули трансивера SI4432 на основе микросхемы SI4432 позволяют реализовать устойчивую двустороннюю радиосвязь в диапазоне частот от 240 до 930 МГц на расстоянии до 1 км на открытой местности и 100 - 300м в помещении. Скорость передачи данных 0.123-256 kbps, виды модуляции - FSK, GFSK, OOK. Мощность передатчика до +20 dBm. Модули имеют малый размер.
Характеристики:
-
Частотный диапазон: 240 –930 МГц;
-
Чувствительность приемника: до 121 дБм;
-
Модуляция сигнала: FSK (ЧМн), GFSK (ГЧМн), OOK (АМн);
-
Максимальная выходная мощность: 20 дБм;
-
Скорость передачи данных: 0.123-256 Кбит/с;
-
Напряжение питания: 1.8-3.6 В;
-
Рабочая температура: от -20 до 60 °C.
Примечание
-
VDD — питание модуля;
-
GND — общий;
-
NSEL — вывод разрешения интерфейса SPI;
-
SCLK — вывод синхронизации интерфейса SPI;
-
SDI — вывод получения данных интерфейса SPI;
-
SDO — вывод отправки данных интерфейса SPI;
-
NIRQ — вывод прерываний по получению данных;
-
SDN — вывод перехода в режим энергосбережения (HIGH);
-
GPIO0, GPIO1, GPIO2 — программируемые порты ввода/вывода.
SI4432 |
Arduino UNO |
Arduino Mega |
GND |
GND |
GND |
SDN |
GND |
GND |
NIRQ |
D2 |
D2 |
NSEL |
D10 |
D53 |
SCLK |
D13 |
D52 |
SDI |
D11 |
D51 |
SDO |
D12 |
D50 |
Прошивка передатчика
#include <SPI.h>
#include <RH_RF22.h> // http://www.airspayce.com/mikem/arduino/RF22/index.html
RH_RF22 rf22(10, 2); // СS, INT .. по умолчанию 10, (D2)
void setup() {
Serial.begin(9600);
if (!rf22.init()) // по умолчанию, мощьность 8DBM, частота 434.0MHz, 0.05MHz AFC pull-in, modulation FSK_Rb2_4Fd36
Serial.println("init failed");
rf22.setTxPower(RH_RF22_RF23B_TXPOW_1DBM); // RH_RF22_TXPOW_1DBM
// RH_RF22_TXPOW_2DBM
// RH_RF22_TXPOW_5DBM
// RH_RF22_TXPOW_8DBM
// RH_RF22_TXPOW_11DBM
// RH_RF22_TXPOW_14DBM
// RH_RF22_TXPOW_17DBM
// RH_RF22_TXPOW_20DBM
rf22.setFrequency(446.0); // частота 466.0мгц, шаг 0.05мгц.
// rf22.setFrequency(446.0, 0.1); // тоже, но с автоподстройкой в 100кгц (по умолчанию 0,05)
rf22.setModemConfig(RH_RF22::GFSK_Rb2_4Fd36); // скорость и модуляция, Rb = 2.4kbs, Fd = 36kHz.
// http://www.airspayce.com/mikem/arduino/RF22/classRF22.html#a76cd019f98e4f17d9ec00e54e5947ca1
}
void loop() {
uint8_t data[] = "Hello!"; // заполняем массив
rf22.send(data, sizeof(data)); // отправляем
rf22.waitPacketSent(); // ждем пока пакет будет отправлен
delay(500); // просто ждем
}
Прошивка приемника:
#include <SPI.h>
#include <RH_RF22.h>
RH_RF22 rf22;
void setup() {
Serial.begin(9600);
if (!rf22.init())
Serial.println("init failed");
// Defaults after init are 434.0MHz, 0.05MHz AFC pull-in, modulation FSK_Rb2_4Fd36
rf22.setTxPower(RH_RF22_RF23B_TXPOW_1DBM); //
rf22.setFrequency(446.0);
rf22.setModemConfig(RH_RF22::GFSK_Rb2_4Fd36);
}
void loop() {
if (rf22.available()) {
uint8_t buf[RH_RF22_MAX_MESSAGE_LEN]; // буфер
uint8_t len = sizeof(buf); // вычесляем размер буфера
rf22.recv(buf, &len);
Serial.print("buf: "); // отправляем в Serial содержимое буфера
Serial.println((char*)buf);
Serial.print(" RSSI: "); // отправляем уровень сигнала последнего пакета
Serial.println(rf22.lastRssi(), DEC);
}
}
Обзор модуля на канале arduinoLab
Обзор модуля на канале Dmitry OSIPOV
Полезные ссылки:
Datasheet
https://www.silabs.com/documents/public/data-sheets/Si4430-31-32.pdf
Сообщения не найдены