Последние сообщения

#1
Проекты на Arduino / От: Генератор сигналов на Si5...
Последний ответ от Doloto - Сен. 17, 2024, 08:37
Здравия! Всё понятно. Благодарю за отзывчивость. Будут вопросы, отпишусь. Удачи!
#3
Радиолаборатория "Импульс" / ДООП "Основы Ардуино"
Последний ответ от R9AL - Сен. 08, 2024, 06:49
ДООП "Основы Ардуино" - https://r9al.ru/2021/arduino/index.htm
#5
Скоро начало учебного года, и есть проблема, которую хотелось бы решить. Итак, задача продемонстрировать работу детекторного приемника. И тут возникает сразу несколько проблем. Во-первых, сделать в условиях нашей радиолаборатории полноценную антенну для детекторного приемника – проблематично (есть много причин, которые не позволяют это сделать. Например, одна из причин – историческое здание, в котором мы находимся – скинуть кабель с крыши нельзя, портит исторический фасад). Но решение этой проблемы есть (см. Детекторный приёмник с рамочной антенной). Во-вторых, практически отсутствует вещание на длинных и средних волнах. Эта проблема тоже решается – создаем свою маломощную вещательную станцию, которая располагается в этом же (соседнем) помещении. И вот здесь есть над чем подумать. Из личного опыта, самодельные маломощные АМ-передатчики прекрасно работают в связке с обычным вещательным приемником, даже на кусок провода вместо антенны, но для приема на детектор – слабовато. Есть решение – использование в выходном каскаде передатчика рамочной антенны (такой-же, как выше по ссылке). В сети попалась вот такая схема:

Появилась мысль сделать нечто концептуально похожее. А именно, получать АМ используя мощный УНЧ, для управления питанием выходного каскада. Вопрос к читателям, возможно кто-то уже решал такую задачу – поделитесь опытом. Ну или может кто-то может дать полезный совет или подключиться к разработке такого передатчика?
#6
Макет однолампового усилителя на лампе 6П9 - https://r9al.ru/2024/6p9/index.htm

Также, для обсуждения можно подключиться к нашему телеграмм-каналу: https://t.me/+O-Iw0nLtWHJmZWVi
#7
Проекты на Arduino / От: Генератор сигналов на Si5...
Последний ответ от R9AL - Авг. 07, 2024, 08:53
например так:

#define CLK 4 // Логический пин на энкодере
#define DT  2 // Логический пин на энкодере
#define SW  5 // Кнопка на энкодере

#include <GyverEncoder.h>
#include <LiquidCrystal_I2C.h>
#include <si5351mcu.h>

Si5351mcu Si; // Инициализация синтезатора
LiquidCrystal_I2C lcd(0x38, 16, 2); // Инициализация дисплея
Encoder enc1(CLK, DT, SW); // Инициализация энкодера

unsigned long kHz = 145000; // Перемена для частоты
boolean sw; // переменые
int flag_1 = 0;

void setup() {
  Serial.begin(9600);
  Si.init(25000000L); // Ставим частоту процессора синтезатора
  Si.correction(2392); // Коректируем радио-частоту
  Si.setFreq(0, kHz * 1000); // Устанавливаем радио-частоту
  Si.reset(); // Обновляем синтезатор
  Si.enable(0); // Включаем синтезатор
  lcd.init(); // Инициализация дисплея
  lcd.setCursor(0, 0); // Выводим частоту первоначальную
  lcd.print(kHz);
  lcd.print("kHz");
  pinMode(CLK, INPUT_PULLUP); // Открываем пины энкодера
  pinMode(DT, INPUT_PULLUP);
  enc1.setType(TYPE1);
}

void loop() {
  enc1.tick(); // Считываем энкодер
  sw = enc1.isClick();
  if (sw) flag_1 += 1; // Меняем шаг по нажатию кнопки...
  if (flag_1 == 0) {
    lcd.setCursor(0, 1);
    lcd.print("step 50   "); // на 50kHz
  }
  else if (flag_1 == 1) {
  lcd.setCursor(0, 1);
    lcd.print("step 250   "); // на 250kHz
  }
  else if (flag_1 == 2) {
  lcd.setCursor(0, 1);
    lcd.print("step 500   "); // на 500kHz
  }
  if (flag_1 == 0 and (enc1.isRight() || enc1.isFastR()))kHz += 50 ; // при повороте изменяем частоту на 50 больше
  if (flag_1 == 0  and (enc1.isLeft() || enc1.isFastL())) kHz -= 50; // при повороте изменяем частоту на 50 меньше
  if (flag_1 == 1 and (enc1.isRight() || enc1.isFastR()))kHz += 250 ; // при повороте изменяем частоту на 250 больше
  if (flag_1 == 1 and (enc1.isLeft() || enc1.isFastL())) kHz -= 250; // при повороте изменяем частоту на 250 меньше
  if (flag_1 == 2 and (enc1.isRight() || enc1.isFastR()))kHz += 500 ; // при повороте изменяем частоту на 500 больше
  if (flag_1 == 2  and (enc1.isLeft() || enc1.isFastL())) kHz -= 500; // при повороте изменяем частоту на 500 меньше
  if (enc1.isTurn()) { // Выводим и изменяем её частоту
    lcd.setCursor(0, 0);
    lcd.print(kHz);
    lcd.print("kHz");
    Si.setFreq(0, kHz * 1000);
  }
}
#9
Проекты на Arduino / От: Генератор сигналов на Si5...
Последний ответ от Doloto - Июль 15, 2024, 05:37
Да, это понятно. А как например, к этим имеющимся шагам, добавить третий шаг, например 500КГц?
#10
Проекты на Arduino / От: Генератор сигналов на Si5...
Последний ответ от R9AL - Июль 14, 2024, 08:49
enc1.tick(); // Считываем энкодер 
  sw = enc1.isClick();
  if (sw) flag_1 = !flag_1; // Меняем шаг по нажатию кнопки...
  if (flag_1){
    lcd.setCursor(0,1);
    lcd.print("step 50   "); // на 50kHz
  }
  else{
    lcd.setCursor(0,1);
    lcd.print("step 250   "); // на 250kHz
  }
  if (!flag_1) if (enc1.isRight() || enc1.isFastR() )kHz += 250 ; // при повороте изменяем частоту на 250 больше
  if (!flag_1) if (enc1.isLeft() || enc1.isFastL() ) kHz -= 250; // при повороте изменяем частоту на 250 меньше
  if (flag_1) if (enc1.isRight() || enc1.isFastR() )kHz += 50 ; // при повороте изменяем частоту на 50 больше
  if (flag_1) if (enc1.isLeft() || enc1.isFastL() ) kHz -= 50; // при повороте изменяем частоту на 50 меньше
  if (enc1.isTurn()) { // Выводим и изменяем её частоту