Текущее время: Пт 29 мар 2024 09:42

Часовой пояс: UTC + 3 часа [ Летнее время ]






Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Пн 04 мар 2019 21:37 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
Поделюсь с коллегами своим творчеством. Собственно, в названии темы все сказано :)


Вложения:
Antenna Tuner.jpg
Antenna Tuner.jpg [ 47.71 Кб | Просмотров: 15383 ]

_________________
73, Влад RM1F
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Пн 04 мар 2019 21:51 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
Тюнер собран по стандартной Т-образной схеме. Рефлектометр также по стандартной схеме. Измеритель КСВ реализован на Arduino-совместимой плате RobotDyn Nano v3, напряжения падающей и отраженной волн подаются на входы встроенного АЦП, и программным способом вычисляется значение КСВ. Значение КСВ индицируется стрелочным прибором, шкала которого проградуирована непосредственно в значениях КСВ. Автоматический цифровой вычислитель позволяет добиться того, что индицируемое значение КСВ стабильно в диапазоне мощностей от 10 Вт до примерно 300 Вт.


Вложения:
IMG_0665.jpg
IMG_0665.jpg [ 72.36 Кб | Просмотров: 15377 ]

_________________
73, Влад RM1F
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Пн 04 мар 2019 22:11 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
Ну и прошивка (скетч) ардуинки:
Код:

/*  Измеритель КСВ на ардуинке.
*  Аппаратура: RobotDyn Nano v3, ATMega 328P
*  (c) RM1F 2019
*/

// Для моей платы настройки:
// плата Arduino Nano
// процессор ATMega328 (old bootloader) - это важно!
// программатор ArduinoISP.org
// порт COM84

#include "Arduino.h" // for digitalRead and digitalWrite
#include <limits.h>

// ====== START CONFIGURATION SETTINGS ========
// Скорость порта для отладки
#define BAUD_RATE           (115200)

// I/O pin definitions

// встроенный синий светодиод на плате: (13) for built-in LED on UNO
// #define LED_BUILTIN     (13)

// аналоговый вход для падающей волны (FWD)
#define FWD_PIN             (0)
// аналоговый вход для отраженной волны (REF)
#define REF_PIN             (1)
// выходной контакт на прибор, будет использоваться ШИМ выход
#define OUT_PIN             (3)
// индикатор включения или перегрузки
#define LED_PIN             (7)
#define LED_FLASH_PERIOD    (250)

// максимальный SWR
#define MAX_SWR             (20)
// длительность цикла поллинга в миллисекундах
#define TIME_SLOT           (50)

// максимальное значение АЦП
const int AD_MAX = 1023;

// когда включать индикацию перегрузки ADC (90% max)
const int ADC_OVERLOAD = 920;

// не реагировать на слишком маленькие значения FWD и REF - могут быть наводки
const int ADC_LOW_LIMIT = 4;

// константы для сглаживания
const float alphaFwd = 0.5;
const float alphaRef = 0.5;

// измеренные значения падающей и отраженной волн
int forward = 0;
int reflected = 0;

// фиксируем момент перегрузки
bool overload = false;
int overloadCount = 0;

int math_round(float x);

//===================== собственно работа =======================

void setup()
{
   // put your setup code here, to run once:
    Serial.begin(BAUD_RATE);

    // the A/D inputs
    pinMode(FWD_PIN, INPUT);
    pinMode(REF_PIN, INPUT);
    // выход
    pinMode(OUT_PIN, OUTPUT);
    // индикатор включения
    pinMode(LED_PIN, OUTPUT);
   
    analogWrite(OUT_PIN, 0);
    digitalWrite(LED_PIN, HIGH);
}

void loop()
{
    // put your main code here, to run repeatedly:

    forward = (alphaFwd * analogRead(FWD_PIN)) + ((1.0 - alphaFwd) * forward);
    reflected = (alphaRef * analogRead(REF_PIN)) + ((1.0 - alphaRef) * reflected);

    // что вывести на приборчик - соотношение ref/fwd
    float ratio = 0.;
    if (reflected <= ADC_LOW_LIMIT)
    {
        ratio = 0.;
    }
    else if (reflected >= forward)
    {
        ratio = 1.0;
    }
    else
    {
        ratio =  (float)reflected / (float)forward;
    }
   
    // индикация перегрузки
    overload = (forward >= ADC_OVERLOAD || reflected >= ADC_OVERLOAD);
    if (overload)
    {
        overloadCount = ++overloadCount % 10;
        if (overloadCount == 0)
            digitalWrite(LED_PIN, digitalRead(LED_PIN)^1);
    }
    else
    {
        digitalWrite(LED_PIN, HIGH);
        overloadCount = 0;
       
        // ШИМ выходного пина
        int val = math_round(ratio * UCHAR_MAX);
        analogWrite(OUT_PIN, val);
    }
    delay(TIME_SLOT);
}

int math_round(float x)
{
    return (int)(x + 0.5);
}

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Пн 04 мар 2019 22:53 
Не в сети

Зарегистрирован: Вт 22 ноя 2011 00:44
Сообщений: 1423
Откуда: Eastside Murino
Как ведет себя МК, при большом КСВ и мощности 100 Вт?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Вт 05 мар 2019 10:13 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
Прекрасно ведет себя даже при 300 Вт и КСВ (СУ не настроено) порядка 8...10. Даже в этом случае наводок не отмечаю.
Хотя более правильным мне представляется следующий подход: сначала при сравнительно небольшой мощности (порядка 30-40 Вт) добиться хорошего согласования с антенной, чтобы КСВ был где-нибудь 1,1 ... 1,5, затем увеличить мощность и при необходимости подстроить СУ. Хотя пока такой необходимости не возникало, настройка СУ при мощности 30-40 Вт и 300 Вт совпадает.

Раньше была другая проблема: я использовал несколько другую схемотехнику рефлектометра - вот там да, при большой мощности и солидном КСВ иногда "выгорали" элементы рефлектометра. (Был другой делитель и диоды 1Д507 - вот они и выгорали... всего 30 В обратного напряжения. :( ) Ну да сам рефлектометр первоначально был рассчитан на меньшую мощность, 20-30 Вт. Сейчас я его пересчитал и перебрал.

(Ну и ежели модераторы читают эту ветку, вопрос: как спрятать под кат код скетча?)

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Ср 06 мар 2019 16:37 
Не в сети
Аватар пользователя

Зарегистрирован: Чт 25 дек 2008 01:00
Сообщений: 117
Откуда: С. Перербург
А кто нибудь применял КСВ метры отсюда - https://www.rv3yf.com/shop-8 ??

_________________
Всё будет так, как должно быть, даже если будет иначе. (восточная мудрость)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Вт 19 мар 2019 17:21 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
RA1AGX писал(а):
А кто нибудь применял КСВ метры отсюда - https://www.rv3yf.com/shop-8 ??


Ну, выглядит оно на фото вполне прилично. Если все сделано по фен-шую, то не думаю, что с КСВ-метрами от RV3YF будут какие-нибудь проблемы.

Вообще же КСВ-метр по моему скромному мнению не шибко сложная штука, отнюдь не рокет сайенс :) Самый "хитрый" узел - это первичный датчик, рефлектометр. Если он дает правильные показания падающей и отраженной волн, то посчитать КСВ - это уже детская забава. А вот если он врет - то никакими ухищрениями уже не поможешь.

Я сначала изготовил рефлектометр точно "по расчету". Ну, думаю, если что - подстроечниками "слабину" выберу. Ан нет! Пришлось подбирать дополнительные конденсаторы в нижних плечах (на схеме по 56 пФ). Вот после этого рефлектометр сбалансировался на удивление хорошо и в широком диапазоне - проверял от 3,5 до 28 МГц.

Балансировал, кстати, по настоящему олдскульному советскому еще стрелочному прибору ТЛ-4М, потому что на китайский тестер 830 пошли наводки (даже при небольшой мощности), и он показывал все, что угодно, вплоть до температуры на Марсе, но только не величину отраженной волны :)

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Вт 19 мар 2019 22:01 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1084
Откуда: Славянка
RM1F писал(а):
RA1AGX писал(а):
А кто нибудь применял КСВ метры отсюда - https://www.rv3yf.com/shop-8 ??



Балансировал, кстати, по настоящему олдскульному советскому еще стрелочному прибору ТЛ-4М, потому что на китайский тестер 830 пошли наводки (даже при небольшой мощности), и он показывал все, что угодно, вплоть до температуры на Марсе, но только не величину отраженной волны :)

Я по 830 нормально балансировал, нет ни каких наводок. На фото один из моментов настройки.


Вложения:
DSC_0041.JPG
DSC_0041.JPG [ 229.89 Кб | Просмотров: 14777 ]
DSC_0040.JPG
DSC_0040.JPG [ 229.24 Кб | Просмотров: 14777 ]

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Вт 19 мар 2019 22:36 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
RL1L писал(а):
Я по 830 нормально балансировал, нет никаких наводок.


Вполне допускаю, значит, это у меня звезды так неудачно сошлись :) Но у меня 830-й чуточку другой.... возможно, это и сыграло роль?

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Ср 16 сен 2020 13:04 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
По просьбе одного из (более молодых) коллег небольшое дополнение:

Измеритель индицирует на самом деле соотношение отраженной и падающей волн - Uотр/Uпад, однако это соотношение однозначно определяет КСВ. В соответствии с этим и отградуирована шкала прибора P1.
Вложение:
Шкала.jpg
Шкала.jpg [ 9.41 Кб | Просмотров: 11198 ]


Настройка измерителя проста:
Подайте от вспомогательного источника напряжения (например, "пальчиковой" батарейки или от резистивного делителя) напряжение порядка 1.5-4 В одновременно на оба входа измерителя и вращением движка резистора R9 установите стрелку на конец шкалы (КСВ=бесконечности). Снимите напряжение со входа отраженной волны и убедитесь, что стрелка прибора установилась на начало шкалы (КСВ=1). Все!

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Чт 21 янв 2021 11:35 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1084
Откуда: Славянка
Владимир, а можно к схеме кнопку или тумблер приладить, что бы в основном КСВ метр показывал прямую волну, а КСВ только при замыкании кнопки (тумблера)?

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Пт 22 янв 2021 11:18 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 196
Откуда: KO59FW
Разумеется. Например, так:
Вложение:
RL1L mini.jpg
RL1L mini.jpg [ 4.25 Кб | Просмотров: 9487 ]

Ну и немного изменить прошивку, чтобы реализовать два переключаемых режима работы:
Код:
/*  Измеритель КСВ на ардуинке.
*  Аппаратура: RobotDyn Nano v3, ATMega 328P
*  (c) RM1F 2019-2021
*  Версия с индикацией падающей волны для RL1L
*/

// Для моей платы настройки:
// плата Arduino Nano
// процессор ATMega328 (old bootloader) - это важно!
// программатор ArduinoISP.org
// порт COM6

#include "Arduino.h" // for digitalRead and digitalWrite
#include <limits.h>

// ================== START CONFIGURATION SETTINGS ==================
// Скорость порта для отладки
#define BAUD_RATE           (115200)

// I/O pin definitions

// встроенный синий светодиод на плате: (13) for built-in LED on UNO
// #define LED_BUILTIN     (13)

// analog input pin for FORWARD power reading
#define FWD_PIN             (0)
// analog input pin for REFLECTED power reading
#define REF_PIN             (1)
// выходной контакт на прибор, будет использоваться ШИМ выход
#define OUT_PIN             (3)
// индикатор включения или перегрузки
#define LED_PIN             (7)
// контакт выбора режима: SWR или индикатор падающей волны
#define MODE_PIN            (5)
#define LED_FLASH_PERIOD    (250)

// максимальный SWR
#define MAX_SWR             (20)
// длительность цикла поллинга в миллисекундах
#define TIME_SLOT           (50)

// Maximum Arduino A/D reading; used only to scale the power readings.
const int AD_MAX = 1023;

// когда включать индикацию перегрузки ADC (90% max)
const int ADC_OVERLOAD = 920;

// не реагировать на слишком маленькие значения FWD и REF - могут быть наводки
const int ADC_LOW_LIMIT = 1;

// константы для сглаживания
const float alphaFwd = 0.5;
const float alphaRef = 0.5;

// измеренные значения падающей и отраженной волн
float forward = 0.;
float reflected = 0.;

// фиксируем момент перегрузки
bool overload = false;
int overloadCount = 0;

int math_round(float x);

//===================== собственно работа =======================

void setup()
{
   // put your setup code here, to run once:
    Serial.begin(BAUD_RATE);

    // the A/D inputs
    pinMode(FWD_PIN, INPUT);
    pinMode(REF_PIN, INPUT);
    // выход
    pinMode(OUT_PIN, OUTPUT);
    // индикатор включения
    pinMode(LED_PIN, OUTPUT);
    // пин выбора режима
    pinMode(MODE_PIN, INPUT_PULLUP);
   
    analogWrite(OUT_PIN, 0);
    digitalWrite(LED_PIN, HIGH);
    digitalWrite(MODE_PIN, HIGH);
}

void loop()
{
    // измеренные значения падающей и отраженной волн со сглаживанием
    forward = (alphaFwd * analogRead(FWD_PIN)) + ((1.0 - alphaFwd) * forward);
    reflected = (alphaRef * analogRead(REF_PIN)) + ((1.0 - alphaRef) * reflected);

    float ratio = 0.;
   
    if (digitalRead(MODE_PIN) == LOW)
    {   // режим измерения КСВ
        // что вывести на приборчик - соотношение ref/fwd
        if (reflected <= ADC_LOW_LIMIT)
        {
            ratio = 0.;
        }
        else if (reflected >= forward)
        {
            ratio = 1.0;
        }
        else
        {
            ratio =  reflected / forward;
        }
    }
    else
    {   // режим измерения падающей волны
        ratio = forward / static_cast<float>(AD_MAX);
    }
    // индикация перегрузки
    overload = (forward >= ADC_OVERLOAD || reflected >= ADC_OVERLOAD);
    if (overload)
    {
        overloadCount = ++overloadCount % 10;
        if (overloadCount == 0)
            digitalWrite(LED_PIN, digitalRead(LED_PIN)^1);
    }
    else
    {
        digitalWrite(LED_PIN, HIGH);
        overloadCount = 0;
       
        // ШИМ выходного пина
        int val = math_round(ratio * UCHAR_MAX);
        analogWrite(OUT_PIN, val);
    }
    delay(TIME_SLOT);
}

int math_round(float x)
{
    return (int)(x + 0.5);
}


Настройку прибора необходимо по-прежнему производить в режиме измерения КСВ, как описано выше.

Необходимо учесть, что максимальное допустимое напряжение, подаваемое на входы АЦП Ардуинки, составляет 5 В. Поэтому они защищены стабилитронами VD2, VD4. Кроме этого, в прошивке реализована программная индикация перегрузки - при напряжении на любом из входов АЦП, превышающем 90% максимально допустимого, светодиод HL1 начнет мигать.

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Пт 22 янв 2021 12:39 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1084
Откуда: Славянка
Огромное спасибо!

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Вс 31 янв 2021 13:40 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1084
Откуда: Славянка
Не удается с компилировать, программа выдает это.


Вложения:
скрин.jpg
скрин.jpg [ 83.18 Кб | Просмотров: 9170 ]

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Согласующее устройство с автоматическим КСВ-метром
СообщениеДобавлено: Вс 31 янв 2021 22:29 
Не в сети

Зарегистрирован: Вт 03 фев 2015 16:12
Сообщений: 215
Откуда: KO59ar Красное Село
Скопировал текст, все скомпилировалось. Вы наверно не в пустое окно вставляли и там есть "рыба" компилятора.Надо просто после delay(TIME_SLOT);
}

все прибить.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Анализ сайта онлайн
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB