Этот макет был собран с целью изучения работы
модулей DRA-818V и DRA-818U — это готовые модули приёмопередатчиков на основе чипа
RDA1846.
Сначала, для проверки работоспособности модуля, был собран просто приемник:
void setup() { Serial.begin(9600); Serial.print("AT+DMOSETGROUP=0,145.5000,145.5000,0000,0,0000"); } void loop() { }
#define CLK 4 // Логический пин на энкодере #define DT 2 // Логический пин на энкодере #define SW 5 // Кнопка на энкодере #includeEncoder enc1(CLK, DT, SW); // Инициализация энкодера int kHz; // Перемена для long freq_VHF = 1440000; double ftx; // tx frequency in MHz (134.0000 - 174.0000) double frx; // rx frequency in MHz (134.0000 - 174.0000) String tx_ctcss = "0000"; // ctcss frequency ( 0000 - 0038 ); 0000 = "no CTCSS" String rx_ctcss = "0000"; // ctcss frequency ( 0000 - 0038 ); 0000 = "no CTCSS" int squ = 1; int bw = 0; void setup() { Serial.begin(9600); // Serial.println("AT+DMOSETGROUP=0,145,145,0000,1,0000"); pinMode(CLK, INPUT_PULLUP); // Открываем пины энкодера pinMode(DT, INPUT_PULLUP); pinMode(10, OUTPUT); enc1.setType(TYPE1); } void Hz() { ftx = freq_VHF / 10000.0; frx = ftx; Serial.print("AT+DMOSETGROUP="); // begin message but don't send yet.. Serial.print(bw); Serial.print(","); Serial.print(ftx, 4); Serial.print(","); Serial.print(frx, 4); Serial.print(","); Serial.print(tx_ctcss); Serial.print(","); Serial.print(squ); Serial.print(","); Serial.println(rx_ctcss); } void loop() { enc1.tick(); // Считываем энкодер if (enc1.isClick()) Hz(); if (enc1.isRight() || enc1.isFastR() ) { freq_VHF += 2500 ; Serial.println(freq_VHF); } else if (enc1.isLeft() || enc1.isFastL()) { freq_VHF -= 2500 ; Serial.println(freq_VHF); } //Serial.println(kHz); }
#define CLK 4 // Логический пин на энкодере #define DT 2 // Логический пин на энкодере #define SW 5 // Кнопка на энкодере #include#include #include Encoder enc1(CLK, DT, SW); // Инициализация энкодера LiquidCrystal_I2C lcd(0x27, 16, 2); long freq_VHF = 1450000; double ftx; // tx frequency in MHz (134.0000 - 174.0000) double frx; // rx frequency in MHz (134.0000 - 174.0000) String tx_ctcss = "0000"; // ctcss frequency ( 0000 - 0038 ); 0000 = "no CTCSS" String rx_ctcss = "0000"; // ctcss frequency ( 0000 - 0038 ); 0000 = "no CTCSS" int squ = 1; int bw = 0; void setup() { Serial.begin(9600); pinMode(CLK, INPUT_PULLUP); // Открываем пины энкодера pinMode(DT, INPUT_PULLUP); pinMode(10, OUTPUT); enc1.setType(TYPE1); lcd.init(); // Инициализация дисплея lcd.backlight(); Hz(); } void Hz() { ftx = freq_VHF / 10000.0; frx = ftx; Serial.print("AT+DMOSETGROUP="); // begin message but don't send yet.. Serial.print(bw); Serial.print(","); Serial.print(ftx, 4); Serial.print(","); Serial.print(frx, 4); Serial.print(","); Serial.print(tx_ctcss); Serial.print(","); Serial.print(squ); Serial.print(","); Serial.println(rx_ctcss); lcd.setCursor(0, 0); lcd.print(freq_VHF); lcd.setCursor(0, 1); lcd.print("save "); } void loop() { enc1.tick(); // Считываем энкодер if (enc1.isClick()) Hz(); if (enc1.isRight() || enc1.isFastR() ) { freq_VHF += 2500 ; Serial.println(freq_VHF); lcd.setCursor(0, 0); lcd.print(freq_VHF); lcd.setCursor(0, 1); lcd.print("no save"); } else if (enc1.isLeft() || enc1.isFastL()) { freq_VHF -= 2500 ; Serial.println(freq_VHF); lcd.setCursor(0, 0); lcd.print(freq_VHF); lcd.setCursor(0, 1); lcd.print("no save"); } delay(100); }