И если можно принципиальную схему.
Вот и я о том. Делал датчики на этих кольцах 1000нн. По класической схеме. . Вроде работает калибруешь прибор на одной частоте показывает вроде 100ватт и ксв . Выше диапазон включаешь 150ватт еще выше 200. Ну образно . Вобщем на разных частотах поразнтму все. Вот и думаю а тандем матч не будет температуру на марсе показывать на разных диапазонах?
Не замечал такого.
1кВт должен легко выдержать. Поскольку у меня больше 200Вт нет, на кольцах достаточно 12 витков. Для большей мощности возможно необходимо увеличить число витков.
Да какая тут схема, 10 деталей. По монтажке платы датчика легко представить. Добавил схему из другого проекта, номиналы чуть другие, но сути это не меняет:
Единственное что необходимо предусмотреть, увеличить мощность резисторов 51Ом при увеличении проходящей мощности. При 200Вт эти резисторы 1206 нормально себя чувствуют. И удвоение возможно лишнее, лишние детали просто не ставить.
По классике так и есть, показания разъезжаются по краям КВ диапазонов (160 и 10м), в Тандеме несколько лучше. По крайней мере до КСВ=5 более-менее адекватно.
Добавлено через 17 минут(ы):
Реализовал, уже работает. А вот с
пока не получается, ни более толстые, ни высокие. Делать его из нескольких кусков не хотелось, теряется скорость. Пока оставил эту затею до прихода умных мыслей.
Последний раз редактировалось Integral; 28.01.2020 в 00:50.
Спасибо за оперативный ответ. буду испытывать свои 1000нн, о результатах доложим. И если не затруднит печатку в лау)))
Так постом выше #400 в архиве.
Добавлено через 30 минут(ы):
Погонял контроллер с прошивкой 1.0.9CG несколько дней на стенде. В общем получилось хорошо. Выбор выходной мощности и напряжения анода делает устройство достаточно универсальным. Наверно сделаю то же самое по току анода и сетки, придется чуть изменить схему - добавить подстроечные резисторы в цепях ОС операционников LM358.
Что не нравится. Отсутствует оперативный перевод усилителя в обход. Т.е. чтобы временно отключить усилитель сейчас нужно прогнать его через охлаждение. Это не правильно. При двух кнопках в управлении придется жертвовать выбором ручного диапазона "вниз". Это короткое нажатие s1. Оставлю ручной выбор диапазона по s2, будет работать по кольцу. Несколько не удобно, что придется прощелкивать остальные диапазоны, но это плата за простоту в управлении. Первая кнопка по короткому нажатию будет сбрасывать защиту от высокого КСВ, а в случае отсутствия аварии оперативно переводить в обход усилитель и обратно в рабочий режим без снятия анодного напряжения.
Последний раз редактировалось Integral; 28.01.2020 в 01:41.
сори не заметил вкладок в лау. Без снятия анодного тут надо подумать чтоб все правильно коммутировалось тогда. с определенной последовательностью. а иначе релюшек на долго не хватит.
Так тут коммутировать нечего, только одно анодное напряжение. Просто придется блокировать сигнал PTT на период быстрого перехода в режим обхода, чтобы усилитель не переходил на передачу. Накал и анодное будут поданы. Здесь я еще подумаю как лучше сделать, то ли ввести еще один таймер для отключения анодного и блокировки PTT. Ну и по кнопке конечно переход в обход. Это нужно например, при демонстрации усилителя в эфире. Поэтому лишний раз дергать анодное напряжение не желательно.
Спасибо от tomcat
Сергей, доброго дня!
Домашние дела отвлекают, сегодня тоже скорее всего занят буду.
Я уже сделал основное.
Переработал алгоритм чтения и записи EEPROM. Теперь идет побайтовое чтение и запись. В дальнейшем это будет удобнее. Можно 8-16-32-64 битные значения читать и писать. Пришлось изучать битовые операции в Delphi. Переработал интерфейс. Версия утилиты для 1.0.9CG. Пока подробного описания работы программы нет, но там ничего сложного. Всё подписано и подсказки есть. Правда на английском. Можно русифицировать, если есть большая надобность.
Нужно процедуры чтения и записи добавить в ваш скетч. Если получится сегодня до компа добраться, то добавлю сам. В режим соединения с ПК из меню будем входить? Пока реализован вход как в прошлой версии зажатая кнопка "меню".
Версия 1.0.8.1 не окончательная? В неё будем меню добавлять как в версию CG? Насколько я понял это можно сделать из версии CG. Тогда доработаю утилиту для новой прошивки.
Утилиту можно сделать универсальную для разных версий прошивки. Для этого и используется команда "ID;" У разных версий прошивки будет разный ID. При этом утилита сама определит какие настройки можно изменять в данной версии прошивки.
Код, который нужно добавить в скетч.
Скрытый текст
Код:void setup(){ ....... /*Вход в режим настройки*/ if (!digitalRead(3)) { lcd.setCursor(0,0); for (uint8_t i = 0; i < 20; i ++) { lcd.print('.'); delay(150); } if (!digitalRead(3)){ lcd.setCursor(0, 0); lcd.print(" Configuration Mode "); lcd.setCursor(0, 1); lcd.print(" Connecting to PC..."); delay(2000); settings_uart(); } } ... } .... void settings_uart(void) { uint8_t numByte; config_loop = 1; Serial.begin(9600); while (config_loop) { /** Прием команды **/ if (Serial.available() > 0) { commandByte[numByte] = Serial.read(); if (commandByte[numByte] == ';') {// End command numByte = 0; decode_command(); }else { numByte ++; } if (numByte > 9) {// error numByte = 0; for (uint8_t i = 0; i < 10; i ++) commandByte[i] = 0; } } if (connect_to_pc) { lcd.setCursor(1, 2); lcd.print("Connect Status: OK"); connect_to_pc = 0; } switch(button1.Loop()){ case SB_CLICK: config_loop = 0; lcd.setCursor(1, 2); lcd.print(" Exit Config Mode..."); break; case SB_LONG_CLICK: //default_set(); config_loop = 0; lcd.setCursor(1, 2); lcd.print(" Default Setup... "); break; } } delay(3000); lcd.clear(); Serial.end(); } //************************************************************************************ Приём команд void decode_command() { uint16_t addr; uint16_t set_data; if (commandByte[0] == 'I' && commandByte[1] == 'D') { if (commandByte[2] == ';'){ Serial.print("ID200;"); connect_to_pc = 1; } } if (commandByte[0] == 'D' && commandByte[1] == 'I') { if (commandByte[2] == ';') { Serial.print("DI200;"); connect_to_pc = 0; config_loop = 0; lcd.setCursor(1, 2); lcd.print(" Disconnecting... "); } } if (commandByte[0] == 'E' && commandByte[1] == 'R') { if (commandByte[2] == ';') { Serial.print("ER1;"); for (uint16_t i = 0; i < 1024; i++) EEPROM[i] = 0xFF; } } if (commandByte[0] == 'S' && commandByte[1] == 'T') { addr = 0; for (uint8_t i = 2; i < 6; i ++) { addr *= 10; addr += commandByte[i] - '0'; } set_data = EEPROM[addr]; if (commandByte[6] == ';') { if (addr < 10) Serial.print("ST000"); else if (addr < 100) Serial.print("ST00"); else if (addr < 1000) Serial.print("ST0"); else Serial.print("ST"); Serial.print(addr); if (set_data < 10) Serial.print("00"); else if (set_data < 100) Serial.print("0"); Serial.print(set_data); Serial.print(';'); } else if (commandByte[9] == ';'){ set_data = 0; for (uint8_t i = 6; i < 9; i ++) { set_data *= 10; set_data += commandByte[i] - '0'; } if (EEPROM[addr] != set_data) EEPROM[addr] = set_data; if (addr < 10) Serial.print("ST000"); else if (addr < 100) Serial.print("ST00"); else if (addr < 1000) Serial.print("ST0"); else Serial.print("ST"); Serial.print(addr); if (set_data < 10) Serial.print("00"); else if (set_data < 100) Serial.print("0"); Serial.print(set_data); Serial.print(';'); } } }
Спасибо от Integral
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)