Просмотр полной версии : Панорамный SWR на базе Ардуино
Простой для повторения АА ;-)
Инфу брал тут http://www.kh-gps.de/ant_analyzer.htm
Под "мелкий" дисплей поправил скетч http://infotex58.ru/forum/index.php?topic=971. 0
Собирается за вечер ))
http://infotex58.ru/infot/aa27_1.jpg
gudzon-m
07.09.2015, 16:39
Здравствуйте! Подскажите пожалуйста, такой (http://ru.aliexpress.com/item/1-44-128x128-Serial-Port-SPI-TFT-Screen-LCD-Screen-Panel-PCB-Board-Driver-IC-ST7735/32458812469.html?spm =2114.03020208.3.11. yiK4gr&ws_ab_test=201407_2, 201444_5,201409_3) дисплей подойдет?
Скорее всего нет...
Библиотечка UCGLIB поддерживает следующие дисплеи:
//Ucglib8BitPortD ucg(ucg_dev_ili9325_ 18x240x320_itdb02, ucg_ext_ili9325_18, /* wr= */ 18 , /* cd= */ 19 , /* cs= */ 17, /* reset= */ 16 );
//Ucglib8Bit ucg(ucg_dev_ili9325_ 18x240x320_itdb02, ucg_ext_ili9325_18, 0, 1, 2, 3, 4, 5, 6, 7, /* wr= */ 18 , /* cd= */ 19 , /* cs= */ 17, /* reset= */ 16 );
//Ucglib_ST7735_18x128 x160_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_ST7735_18x128 x160_HWSPI ucg(/*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_ILI9341_18x24 0x320_SWSPI ucg(/*sclk=*/ 7, /*data=*/ 6, /*cd=*/ 5 , /*cs=*/ 3, /*reset=*/ 4);
//Ucglib_ILI9341_18x24 0x320_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_ILI9341_18x24 0x320_HWSPI ucg(/*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_ILI9341_18x24 0x320_SWSPI ucg(/*sclk=*/ 4, /*data=*/ 3, /*cd=*/ 6 , /*cs=*/ 7, /*reset=*/ 5); /* Elec Freaks Shield */
//Ucglib_SSD1351_18x12 8x128_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_SSD1351_18x12 8x128_HWSPI ucg(/*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_SSD1351_18x12 8x128_FT_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_SSD1351_18x12 8x128_FT_HWSPI ucg(/*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
//Ucglib_PCF8833_16x13 2x132_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cs=*/ 9, /*reset=*/ 8); /* linksprite board */
//Ucglib_PCF8833_16x13 2x132_HWSPI ucg(/*cs=*/ 9, /*reset=*/ 8); /* linksprite board */
Скетч я редактировал под такой дисплей http://www.ebay.com/itm/1-8-inch-1-8-TFT-LCD-Display-module-ST7735S-128x160-51-AVR-STM32-ARM-8-16-bit-/400520986066
Простой для повторения АА
1.сделай хороший снимок, не вижу метки на дисплее
2. как называется антенна? она дуал?
gudzon-m
07.09.2015, 18:08
Отлично, пошел заказывать, спасибо.
1.сделай хороший снимок, не вижу метки на дисплее
http://infotex58.ru/infot/aa27.jpg
. как называется антенна? она дуал?
Антенна штатная от MAYCOM SH-27 DTMF
ну вот видно, а поначалу, я думал что ты 2-ку показываешь,
он позволяет посмотреть 145?
он позволяет посмотреть 145?
Нее это только КВ 1-30 МГц
Есть идея прикрутить умножитель после DDS http://html.alldatasheet.co m/html-pdf/65417/ICST/ICS512M/81/1/ICS512M.html
По сути до 200 МГц должно завестись :smile:
Или конвертер забацать :-P Но лучше наверное синтезатор сделать более другой, схем и печаток хватает, правда и цена несколько другая получится.
Comandante
07.09.2015, 18:52
Подобный проект с выводом информации на ПК https://lima05web.wordpress. com/2014/03/22/arduino-antennen-analysator-dg7eao/ может кому сгодится.
По сути до 200 МГц должно завестись
есть у меня "игрушка" потому и хотелось сравнить, но она от 138 MHz и выше
Comandante
07.09.2015, 18:59
Это оно и есть! согласен, только к нему дисплей прикрутили.
Нее это только КВ 1-30 МГц
Надо наверно си570 прикручивать или более новую СИзабыл_какая, которая вроде дешевле и продается как альдруино шилд...
Надо наверно си570 прикручивать или более новую СИзабыл_какая, которая вроде дешевле и продается как альдруино шилд...
да синтез прикрутить не проблема))) высокочастотную часть придётся делать уже не на макетке)) да и резюки безиндукционные нужны, диоды также менять...
Во сколько все обошлось по денежке?
С учётом нынешнего курса бакса в районе 1000р.
Тоже немного экспериментировал с этим антенным анализатором на Arduino + модуль AD9850,
как с программой для вывода информации на дисплей монитора компьютера, так и с вариантом
на TFT 2.2" 240x320 (ILI9341). Индикаторы здесь брал http://ru.aliexpress.com/item/Wholesale-1PC-2-2-Inch-240-320-Dots-SPI-TFT-LCD-Serial-Port-Module-Display-ILI9341/1762539997.html
Правда обновление информатизации происходит не очень быстро. С применением программы и
просмотров на компе более понравилось.
Есть еще такой вариант http://blog.riyas.org/2015/04/a-simple-standalone-antenna-analyzer-with-ili9341tft.html
Только этот проект отображается на экране перевернутым на 90гр. и отображается половина информации.
Так больше и не очень разбирался. Может если посидеть, то можно поправить. Последний вариант быстрее
работает. Наверное потому, что там немного другая библиотека применяется. Но нужно разбираться с кодом
и допиливать.
Explorer
07.09.2015, 22:51
RA4FHE,
А вот интересно, не пробовали разные старые диоды как например Д18, ГД507, Д311 ?
Explorer, Под руки попались Д9Д их и поставил, другие не пробовал.
С применением программы и просмотров на компе более понравилось.
Отличный "прибор"... В некоторых местах, КСВ меньше 1.0 на графике...
210636
Наверное, антенна с КСВ 0.7... Вообще бомба... Даже РТТ не надо нажимать... так отвечают.:ржать:
.. Вообще бомба...
ну зачем-же флудить?
у Вас лично есть,что показать ?
спасибо
gudzon-m
08.09.2015, 15:26
В некоторых местах, КСВ меньше 1.0 на графике...
А действительно, с чем это связано? Не откалиброван?
А действительно, с чем это связано?
Скорее всего с разрядностью представления данных и округлением под нее
Почему меньше 1.0 ? Может это и есть 1.0 ?
Comandante
09.09.2015, 13:56
Это и есть единица, гляньте фото на второй странице, там не урезанный график и все станет на свои места.
На самом деле это не антенный анализатор, а широкополосный измеритель КСВ. Для того, чтобы он стал анализатором, ему нужно добавить еще одну микросхемку - фазовый детектор (например, AD8302). Только в этом случае прибор будет уметь показывать не только КСВ, но и импеданс с реактансом. А так это просто игрушка, которая будет показывать КСВ=1 на 5-омной нагрузке с огромным реактансом... В общем, во время использования этого прибора нужно понимать, что низкое значение КСВ не всегда обозначает, что антенна будет эффективна (импедансы всех частей АФУ примерно одинаковы) и настроена в резонанс (почти нулевой реактанс).
А так это просто игрушка, которая будет показывать КСВ=1 на 5-омной нагрузке с огромным реактансом...
Как-то не совсем так...
КСВ характеризует режим работы линии передачи с учетом отражения электромагнитных волн от ее концов.
При КСВ = 1 вся энергия волн поступающая на вход линии поглощается на противоположном конце линии нагрузкой.
Это происходит только в том случае, если:
- сопротивление нагрузки в конце линии чисто активное,
- это сопротивление нагрузки равно волновому сопротивлению линии.
В любой другой ситуации возникнет отраженная волна от нагрузки, часть энергии будет распространяться к
началу линии и КСВ будет больше единицы. Т.е. КСВ не будет равен единице ни при каком сочетании активного
и реактивного сопротивлений нагрузки кроме описанного.
Поэтому КСВ-метр это прибор, показывающий настроена ли антенна подключенная к противоположному
концу линии передачи в резонанс на данной частоте и равно ли ее входное сопротивление волновому сопротивлению линии.
Добавлено через 5 минут(ы):
Отличный "прибор"... В некоторых местах, КСВ меньше 1.0 на графике...
Наверное, антенна с КСВ 0.7... Вообще бомба... Даже РТТ не надо нажимать... так отвечают.:ржать:
На графике не обозначено на каком уровне КСВ нарисована ось абсцисс... А на графике в сообщении №18 видно, что эта ось проходит на уровне КСВ = 1. Если это верно и для обсуждаемого графика, то все нормально и никаких вопросов не возникает. ;-)
Explorer
09.09.2015, 18:28
Есть тема для Arduino на AD8302 т.е. тот же miniVna http://ra4nal.qrz.ru/vna.shtml , Реализовал на UNO и модуль китайский на AD9850, плату изменил под имеющийся корпус.
А так это просто игрушка, которая будет показывать КСВ=1 на 5-омной нагрузке с огромным реактансом
КСВ 1 не может быть при наличии реактивностей. Правильней сказать - это панорманый КСВ метр. Всяко удобней, чем обычным снимать десяток значений и по точкам линию рисовать.
Explorer, Вы давали ссылку на французский проект, но она исчезла!:shock: Если не затруднит, повторите пожалуйста.
Т.е. КСВ не будет равен единице ни при каком сочетании активного
и реактивного сопротивлений нагрузки кроме описанного.
Вот здесь Вы глубоко заблуждаетесь.
КСВ 1 не может быть при наличии реактивностей.
Ещё как может!
Вспомните формулу Z=R+/jX/. Все обычные КСВ метры реагируют на комплексное сопротивление Z. Допустим, активное волновое сопротивление R=25 Ом, реактивное jX так же равно +25 Ом или -25 Ом. Тогда КСВ метр покажет ту же единицу, что и при полном согласовании, когда Z=R и равняется 50 Ом. Сколько уже можно писАть об этом ? :roll:
Поэтому КСВ-метр это прибор, показывающий настроена ли антенна, подключенная к противоположному
концу линии передачи в резонанс на данной частоте и равно ли ее входное сопротивление волновому сопротивлению линии.
Ну, наверное, не совсем удачное выражение.
А как быть если длинна линии равна лямбда/2 ?
Ведь в этом случае, линия начинает работать как повторитель и какое сопротивление самой линии абсолютно без разницы.
Ещё как может
Совершенно верно. При настройке антенны КСВметром можно и не понять какой из нескольких провалов КСВ "правильный", а какие "ложные" ;-)
Совсем другое дело - векторный анализатор, там четко видно где резонанс... Хм, хотя у некоторых векторных анализаторов другая проблема - путается знак реактивности:roll:
По проекту:
1. Зря используется "классическая" схема детектора КСВ-метра. Ее обязательно требуется калибровать - на схеме немца конденсатор C2 (100пф) должен быть подстроечным и для его настройки надо менять вход с выходом, что проблематично в этой схеме, где синтезатор подключен напостоянку т.е. явно никто из повторяющих этого не делал, а без этой операции КСВ может быть и меньше единицы :ржач:
Есть простые схемы КСВ-детекторов, где какой-либо настройки делать не надо. Собрал аккуратно и все сразу работает. К примеру, очень рекомендую простой Tandem-match, особенно если его сделать не на двух кольцах, как обычно делают, а на одном бинокле. Он даже проще, и не только не требует настройки, но и в нем можно просто изменив число витков добавить получаемое выходное напряжение. Что очень актуально для слабенького выхода синтезатора и малой разрядности АЦП.
2. Очень мне как-то сомнительно, что мощности выхода AD9850, да еще после ФНЧ (на модуле) и КСВ-метра достаточно, что-бы верить результатам таких "измерений". Уровень сигнала сравним с принимаемым антенной мусором, погрешности получаются слишком велики. Думаю, надо минимум добавить хоть один буферный каскад с низким выходным сопротивлением. К примеру, классическую схему, что обычно ставят на выходах многих синтезаторов и ГПД: один транзистор, ферритовое колечко и несколько резисторов\конденсат оров обвязки.
3. Мост по "методу трех вольтметров" не намного сложнее измерения КСВ. Хоть и придется задействовать еще один АЦП в ардуинке и добавить несколько деталек, но зато получится полноценный векторный анализатор. Смотрите схему SARK-100. С измерением отдельно активного и реактивного сопротивлений (и любимый КСВ по ним-же получается)
активное волновое сопротивление R=25 Ом, реактивное jX так же равно +25 Ом или -25 Ом. Тогда КСВ метр покажет ту же единицу
Не совсем верно. Модуль полного сопротивления равен SQRT(R2+jX2) и в вашем примере будет равен 35,4 Ом, КСВ в этом случае не будет равен единице.
Buckfast
10.09.2015, 11:24
Допустим, активное волновое сопротивление R=25 Ом, реактивное jX так же равно +25 Ом или -25 Ом. Тогда КСВ метр покажет ту же единицу
Совсем не верно. Отрываем Манну, ставим R=25, J=25 (или -25), получаем КСВ=2, 618
Евгений240
10.09.2015, 11:36
А если R=25, J=43,3 ?
Buckfast
10.09.2015, 11:39
Евгений240, не поленитесь откройте Манну:
КСВ=3.732
Отрываем Манну, ставим R=25, J=25
попробуйте к примеру R=95 и J=-80.777
не в конкретных цифрах проблема, а в том, что КСВ=1 (показываемый прибором), в принципе, не обязательно означает, что J=0 (резонанс) и R=50
Buckfast
10.09.2015, 11:52
R4AAD,
Блин, и вам тоже рекомендую запустить Манну.
КСВ=3.б516
И давайте уже хватит гнать пургу что при раективности ксв может быть 1.:bad:
не поленитесь
Есть MMANA-GAL basic, как в ней задать R+jX нагрузку - знаю, как расчитать СУ - знаю
Отрываем Манну, ставим R=25, J=25
куда "ставим" не понял
попробуйте к примеру R=95 и J=-80.777
не в конкретных цифрах проблема, а в том, что КСВ=1, в принципе, не обязательно означает, что J=0 (резонанс) и R=50
И что, в этом случае будет только прямая волна в нагрузку - 50 ом (активного сопротивления)? Не будет отраженной?...
Что-то тоже в манне не нашел , где ксв вычисляется. Может вы путаете с программой -APAK-EL: http://cqham.ru/komp.html
Buckfast
10.09.2015, 12:14
куда "ставим" не понял
А вот не скажу:-P. Сами подумайте , за одно еще чего полезного узнаете...
Добавлено через 10 минут(ы):
R0SBD,
Открываете Line match 1
Zo ставите 50
ZL ставите чего надо
SWR смотрите ниже
Никто не спорит, что если есть реактивное (т.е. нет резонанса), то и отраженка будет. Понятно, что ничего хорошего. Но нельзя КСВ измерить напрямую, его меряют основываясь на чем-то другом, косвенно. О чем я и писал, называя провалы КСВ "ложными". Речь изначально была о том, что такой КСВ метр, в отличии от векторных анализаторов, не определяют отдельно реактивное и активное. Вот в датчиках разных военных СУ кроме датчика меряющего сопротивление, отдельно датчик фазы используется, что позволяет знать и реактивность и ее знак.
Добавлено через 6 минут(ы):
а ну да, сначала в квадрат, потом складываем. Т.е. знак теряем. Логично. Подзабыл, спасибо, что подправили.
Более наглядно, наверное, оценить влияние реактивности на КСВ можно в программе RFSimm. Во вложении модель нагрузки из активного сопротивления 45 Ом и катушки 991nH, реактивное сопротивление ее на частоте 3,5 МГц равно 21,8 Ом, значит полное сопротивление нагрузки на этой частоте составит 50 Ом. Запустив симуляцию, увидим параметр S11=0,23, а КСВ=(1+S11)/(1-S11)=1.6. Выполнив свиппирование по разбросу индуктивности от +100% до -100% заметим, что минимум КСВ будет наблюдаться при реактивности равной нулю210777. Извиняюсь за увод от темы, хочется разобраться в вопросе:roll:
UB0CAH, ну слава богу, разобрались, вот еще готовая таблица для перевода S11 в ксв: http://ra6foo.narod.ru/RFSimm99/S11SWR.gif
Explorer
10.09.2015, 19:28
VSergio,
Вы давали ссылку на французский проект, но она исчезла! Если не затруднит, повторите пожалуйста.
Зайдите вот сюда https://hamprojects.wordpres s.com/20...f-arduino-vna/ (https://hamprojects.wordpres s.com/2015/06/21/hf-arduino-vna/)
Как я думаю, спорить по поводу КСВ здесь бесполезно т.к. многие радиолюбители не любят читать книги по электродинамике. И это можно понять, потому что это не самое увлекательное чтиво...
Чтобы попытаться обойти эту трудность, я приведу несколько результатов моделирования длинной линии, нагрузочного сопротивления и простейшего мостового измерителя КСВ. Кто захочет, может посмотрит. Может кому-то эти результаты помогут что-то понять.
В расчетах применена линия длиной около 20 метров (задержка 100нс при скорости распространения волны 2*10+8 м/с), сообщаю для полноты сведений, хотя длина линии, в данном случае, и не важна.
На графиках зеленым цветом показано напряжение пропорциональное амплитуде падающей волны, желтым цветом - амплитуде отраженной волны, голубым - расчетное значение КСВ.
Графики напряжений становятся горизонтальными после 350-400 мкс. До этого времени графики отображают переходные процессы от включения напряжения генератора в цепях фильтров С1R5C2R7 и C3R6C4R8.
На Рисунке 1. линия нагружена на сопротивление 50 Ом, равное ее волновому сопротивлению. КСВ равен единице. Это видно на графике на рисунке 2.
210794
210795
На рисунке 3. линия нагружена на сопротивление 150 Ом. КСВ около трех, как видно из рисунка 4. Этот расчет сделан для подтверждения, что моделирование работает, КСВ изменяется ожидаемым образом.
210796
210797
На рисунке 5 нагрузка линии комплексная с активным и емкостным сопротивлением. Причем, номиналы сопротивлений выбраны так, чтобы модуль комплексного сопротивления был равен 50 омам. Несмотря на это, КСВ на рисунке 6 равен примерно 1,9, а не единице, как утверждают некоторые собеседники...
210798
210799
Аналогичная картина видна и на рисунках 7 и 8. Здесь линия нагружена на комплексное сопротивление, состоящее из активной и индуктивной компонент, причем модуль сопротивления также равен 50 омам. КСВ также примерно 1,9.
210800
210801
Чтобы не смущали два одинаковых предыдущих значения КСВ=1,9, проведен еще один дополнительный расчет (схема - на рисунке 9), где индуктивное сопротивление удвоено. Результаты - на рисунке 10. КСВ равен примерно 3,8.
210802
210803
Таким образом, приведенные расчеты подтверждают, что КСВ на входе длинной линии равен единице тогда и только тогда, когда она нагружена на чисто активное сопротивление, равное волновому.
Хотя иначе и быть не могло...
я приведу несколько результатов
хотелось бы в тексте сообщить,выложенные тут графики на чем получены? "ключевое слово" моделирование?
спасибо
Интересно, как Вы при помощи КСВ метра выясните, чем вызван повышенный коэффициент КСВ - чисто активным сопротивлением, но отличным от 50 Ом, или наличием реактивного сопротивления со стороны антенны? КСВ в обоих случаях может быть одинаков, например, тот же пресловутый 1.9.
хотелось бы в тексте сообщить,выложенные тут графики на чем получены?
Такой вопрос "на засыпку"...
Легче всего ответить: "У товарища есть какая-то программа для моделирования электрических схем..." или " Программа на основе Spice..." :smile:
Добавлено через 5 минут(ы):
Интересно, как Вы при помощи КСВ метра выясните, чем вызван повышенный коэффициент КСВ
Если вопрос ко мне, то, строго говоря, НИКАК. Но здесь мы обсуждаем КСВ-метр.
То, что измерители полного сопротивления имеют неоспоримые преимущества перед КСВ-метрами, очевидно.
yl2gl, а какая в этом разница, надо просто манипулировать антенной до получения 1-1.3, что собственно всю жизнь и делали до появление всяких MFJ, AA или навороченных мостов, которые реактивность умеют показывать.
Безусловно, при наличии нескольких измеренных параметров интересней и лучше, но все-таки и такой панорамный КСВ метр уже ого-го может облегчить настройку, чем крутить туда-сюда трансивер и измерять ксв в 3-5 местах вручную еще бегая при этом в квартиру, если проблемно на крышу вынести аппарат.
to RZ3TJ
Легче всего ответить
извините, но вопрос я задал Вам, а не товарищу........
вот он:выложенные тут графики на чем получены?
спасибо
2 vfc
В схеме все правильно? Каким образом считаете SWR? Токи, напряжения,фазы и т.д.
Что скажите о уравнение (6), #31.
73, удачи!
Я для моделирования никакой новой семотехники не "изобретал", а взял известный мостовой измеритель КСВ.
На подобные измерители полно ссылок в сети. Например:
http://www.rigexpert.com/index?f=panoramicswr meter&l=ru&s=articles
http://radionavigator.ucoz. ru/publ/1-1-0-8
http://us3iat.qrz.ru/shems/anten/izmer_kw/izmer_kw.htm
http://forum.cxem.net/index.php?showtopic= 79676
и т.д.
При желании Вы найдете намного больше.
Формула для расчета:
КСВ = (Uпад. + Uотр.)/(Uпад. - Uотр.)
также общеизвестна и есть в указанных источниках.
Да и суть вопроса не в измерителе. Он взят мной для иллюстрации. Можно было использовать при моделировании другой.
Суть в том, что КСВ равный единице свидетельствует об отсутствии в сопротивлении нагрузки реактивной компоненты и,
одновременно, о равенстве сопротивления нагрузки волновому сопротивлению линии.
О формуле (6) в #13 могу сказать, что это коэффициент отражения волны в линии с волновым сопротивлением Z0,
нагруженной на сопротивление Z1. Еще могу сказать, посмотрев в литературу, что формула правильная.
взял известный мостовой измеритель КСВ.
за ссылки спасибо,только Вы так и не захотели "услышать" мой вопрос
Вы так и не захотели "услышать" мой вопрос
Я не знаю как in Deutsсhland, а у нас закон о защите авторских прав распространяется и на использование программных продуктов...
Могу сказать, что программа моделирования есть на этом сайте.
а у нас закон о защите авторских прав
вот только не надо ерничать
что программа моделирования есть на этом сайте.
мне она не нужна,достаточно было в вашем посте #49 об этом сказать.(или назвать)
Что то не могу понять, от сименса S65 и тому подобных жки пойдёт? Если пойдёт, то буду паять, как раз всё для этого есть, приборчик простой и нужный, а вы тут оффтоп подняли
Что то не могу понять, от сименса S65 и тому подобных жки пойдёт?
От "Семёнов" не пойдёт.
Видос прицепил на всякий пожарный :smile:
http://www.youtube.com/watch?v=DvU33ipfZ_w
Жаль, что такая инерционность вывода инфо, на ходу не подстроишь что-нибудь, например КПЕ в гамма-согласовании...
Жаль, что такая инерционность вывода инфо, на ходу не подстроишь что-нибудь, например КПЕ в гамма-согласовании...
Дисплей работает по SPI тут уж не прыгнешь :smile:
Значит надо делать софтовый вывод в комп, но это уже получится почти NWT7...
Хотя, может медлительность связана с не совсем оптимальным написанием кода или излишним числом точек отсчетов? На других SPI экранах, к примеру, с-метры в SW2013 бегают довольно резво.
gudzon-m
12.09.2015, 22:34
Значит надо делать софтовый вывод в комп
Дык есть же.
В ардуинах свет клином на авр не сошелся, есть по большей части совместимые среды программирования под платы на stm32 или более экзотические модули esp8266 (с ним девайс можно сразу беспроводным сделать) - они в разы шустрее авр, который и на монохромный то 128x64 не сказать что быстро выводит и есть в таких же компактных вариантах, как -micro / -nano (стоит приблизительно столько же, esp так и поменьше, но для него usb-com шнурок отдельный нужен будет). Доработка кода будет незначительная.
stm32 https://github.com/rogerclarkmelbourne/Arduino_STM32
esp8266 http://esp8266.ru/category/esp8266/esp8266-%D0%B8-arduino-ide/
плясок с бубном нужно несколько побольше, чем с avr
(https://github.com/rogerclarkmelbourne/Arduino_STM32)
прицепил на всякий пожарный
для такой "игрушки" вполне соответствующая видео-монитор-картинка,
ps
если бы, еще и камеру при сьемке фиксировать?.
а видео сделать с показом тестируемой антенны,"панаромируя" самой камерой
Дисплей работает по SPI тут уж не прыгнешь
Судя по схеме подключения, SPI используется не аппаратный, а софтовый.
Для аппаратного SPI в Nano надо использовать другие цифровые входо\выходы: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
А софтовый ведь заметно больше тормозит. Очень заметно. Настолько заметно, что сами авторы графических библиотек (которые у них, в принципе, могут работать и так и этак) честно пишут: "Using software SPI is really not suggested, its incredibly slow"
Кроме того, использование вместо удобных универсальных функций - узкоспециализированн ой ("заточенной" только для быстрого заполнение такого графика) тоже позволяет ускорить работу. К примеру, я сейчас АЧХ-метр на базе подобных модулей доделываю, так заполнение видеопамяти экрана "вручную" позволило прилично ускорить вывод графика. А всякие менюшки и прочее, не требующее высокой скорости, отображаю как обычно.
Заинтересовал проект. Побегал по ссылкам - не увидел полную схему подключения с дисплеем.
не понятно как происходит управление ( кнопки)
С Ардуино не работал, хочется попробовать (заказал Уно и Нано), может кто даст полную схему?
Поддержу, интересуют подробности проекта, особенности программирования
К примеру, я сейчас АЧХ-метр на базе подобных модулей доделываю, так заполнение видеопамяти экрана "вручную" позволило прилично ускорить вывод графика.
Любопытно будет ознакомится с Вашими наработками :пиво:
С Ардуино не работал, хочется попробовать (заказал Уно и Нано), может кто даст полную схему?
Ну тут всё просто:
Дисплей:
SCLK 10
DATA 11
CD 6
CS 5
RESET 4
DDS Модуль:
FQ_UD 9
SDAT 11
SCLK 10
RESET 12
Кнопки подключаем на D2 и D3 относительно массы.
Ну тут всё просто:
Дисплей:
SCLK 10
DATA 11
CD 6
CS 5
RESET 4
DDS Модуль:
FQ_UD 9
SDAT 11
SCLK 10
RESET 12
Кнопки подключаем на D2 и D3 относительно массы.
Доброе время суток!!!
Вы знаете это не всем просто. Мне кажется надо по подробней объяснить, что за ноги и для чего и куда видно по схеме. Без обид, просто у всех разный уровень подготовки и знаний, а хотят это попробовать очень многие.
С уважением Виктор R2PM
rd3pq, Обычно все выводы промаркированны на плате. Например сигнал RESET дисплея подключаем на 4й вывод ардуины а сигнал CS на 5й вывод и так далее...
212188
212189
Uno не знаю, может SPI отличаться, смотреть инфу надо, нередки различия.
А на Nano, SPI должны быть на тех-же ножках как на ProMini, что я обычно везде использую.
Возможности ножек:
212287
тут всё просто
думаю, ради аппаратного SPI очень стоит выводы "перетасовать" (ножки 10,11,12,13 использовать для экрана) и разобраться где поправить соответственно в исходниках. Запускал как-то раз один и тот-же тестовый пример из графической библиотеки с аппаратным SPI и с софтовым - разница не просто есть, а очень даже внушает.
Любопытно будет ознакомится
доведу немного до ума, могу выслать исходники.
Вкрадце о текущем состоянии: модуль Arduino, модуль DDS, валкодер (недавно еще были кнопки, но убрал т.к. одной ручкой показалось удобнее... хм, теперь думаю чем дырки от кнопок заткнуть :) ), логарифмический детектор на AD8307 (пора китайцам и такой модуль выпускать :) ) детектор обязательно экранировать. Модуль дисплейчика сейчас чернобелый Nokia5110 совместимый. Есть в наличии цветной, как в этом проекте, попробовал его... хм, наверное зря т.к. очень понравился. Настолько, что приходится теперь чесать затылок - "менять или не менять?" на стадии когда почти все готово...
Вкрадце о недоделаном: даже грубо не калибровал шкалу по уровню сигнала - показывает "попугаи" т.к. не решил окончательно "применить отдельный опорник для АЦП или оставить как есть?"; не могу найти гайку закрепить валкодер :) ; не закрепил нормально в корпусе ардуинку и синтезатор; сейчас "играюсь" с усилителем мощности на одном транзисторе на выходе синтезатора - получил на 50 омах больше полватта, но греется эта сволочь и жрет батарейки пачками... теперь чешу затылок "а надо-ли оно тут?" но все-равно собираюсь поиграться еще и с АРУ для стабильности уровня выходного сигнала, заодно аппетит убавлю... Хм, или доделать в простейшем виде, а все остальные "прибабахи" потом, в другой конструкции? :crazy: Вот в панорамном SWR или другом антенном анализаторе, думаю, имеет смысл повысить выходной сигнал.
Добавлено через 17 минут(ы):
проект отображается на экране перевернутым на 90гр. и отображается половина информации.
у ili9341 можно задать режим поворота
в библиотеке Ucglib, используемой в обсуждаемом проекте, это функции undoRotate(); setRotate90(); setRotate180(); setRotate270();
в исходнике проекта есть строка с заданным setRotate90(); нужно исправить на какой надо.
Добавлено через 22 минут(ы):
Есть идея прикрутить умножитель
ничего хорошего не выйдет. Разве только если применить на выходе контур на какую-то определенную частоту и около нее мерять...
Можно применить смеситель и взять сигнал с имеющегося на модуле DDS кварцевого генератора на 125МГц. 125+19=144 получится. Но, все-равно, наличие 125-19=106МГц с таким-же уровнем - будет мешать мерить достоверно. Только как-то фильтровать...
Как вариант, т.к. трудно сделать очень широкий и равномерный полосовой на 144, то можно ФВЧ на частоту примерно 130МГц, он и остатки от пролезания 125 уберет. Пару звеньев минимум imho надо.
gudzon-m
13.10.2015, 18:49
Здравствуйте коллеги. Вот выдала среда ошибку:
Arduino: 1.6.1 (Windows 7), Плата"Arduino Nano, ATmega328"
DDS_sweeper1_TFT_ST7 735_128x160.ino:50:1 : error: 'Ucglib_ST7735_18x12 8x160_SWSPI' does not name a type
DDS_sweeper1_TFT_ST7 735_128x160.ino: In function 'void setup()':
DDS_sweeper1_TFT_ST7 735_128x160.ino:57:3 : error: 'ucg' was not declared in this scope
DDS_sweeper1_TFT_ST7 735_128x160.ino:57:1 3: error: 'UCG_FONT_MODE_SOLID ' was not declared in this scope
DDS_sweeper1_TFT_ST7 735_128x160.ino: In function 'void Perform_sweep()':
DDS_sweeper1_TFT_ST7 735_128x160.ino:197: 3: error: 'ucg' was not declared in this scope
DDS_sweeper1_TFT_ST7 735_128x160.ino: In function 'void CreateGrid()':
DDS_sweeper1_TFT_ST7 735_128x160.ino:318: 3: error: 'ucg' was not declared in this scope
Ошибка компиляции.
Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки
подскажите пожалуйста, в чем дело?
gudzon-m, http://infotex58.ru/forum/index.php?topic=971. msg7308#msg7308
gudzon-m
13.10.2015, 20:38
gudzon-m, http://infotex58.ru/forum/index.php?...sg7308# msg7308
Спасибо, у меня была старая библиотека, скачал новую. Сейчас ругается на шрифты:
Arduino: 1.6.1 (Windows 7), Плата"Arduino Nano, ATmega328"
DDS_sweeper1_TFT_ST7 735_128x160.ino: In function 'void setup()':
DDS_sweeper1_TFT_ST7 735_128x160.ino:61:1 5: error: 'ucg_font_9x15' was not declared in this scope
DDS_sweeper1_TFT_ST7 735_128x160.ino: In function 'void CreateGrid()':
DDS_sweeper1_TFT_ST7 735_128x160.ino:318: 15: error: 'ucg_font_5x8' was not declared in this scope
Ошибка компиляции.
Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки
Подскажите пожалуйста, где брать шрифты и куда их класть.
И что это за ошибка In function 'void CreateGrid()':
Спасибо.
Я компилировал с этой либой. Проблем не было.
213743
gudzon-m
13.10.2015, 21:52
с этой либой
С вашей библиотекой все заработало, спасибо.
213749
Заметил мерцание дисплея, так и должно быть?
И еще одна хотелка, при сканировании добавить бы простенький прогресс бар, можно ли такое осуществить?
Добавлено через 11 минут(ы):
Или просто надпись "SCAN"
gudzon-m, Пробуйте ;-) Цвет и положение надписи найдёте тут
ucg.setFont(ucg_font _courB14);
ucg.setColor(255, 0, 100);
ucg.setPrintPos(50,6 0);
ucg.print("Scan...");
213753
gudzon-m
13.10.2015, 23:48
RA4FHE, Большое спасибо. Уже играюсь :crazy:
Заметил мерцание дисплея, так и должно быть?
У меня такого глюка не было :smile:
gudzon-m
14.10.2015, 00:06
У меня такого глюка не было
Ну тут может я слишком глазастый. В общем мерцание как от старого ЭЛТ монитора. Если двигать головой или прибором, очень отчетливо видно.
У меня платка вроде более менее промышленная от терраэлектроники - так там тоже дисплей как то помаргивает и немного как бы "снежок" иногда виден, может придираемся ? Хотя oled и ч/б lcd у меня никак не мерцают.
gudzon-m
14.10.2015, 00:43
может придираемся ?
Может и придираемся :crazy:
Коллеги, подскажите вот что: У моего модуля синтезатора четыре выхода: ZOUT1, ZOUT2, QOUT1, QOUT2. Какой подключать то?
Спасибо.
gudzon-m, На 9й вывод модуля ZOUT1
http://static1.squarespace. com/static/54db885de4b0da00562b 30c7/t/5529f736e4b026cc27b7 7047/1428813622244/DDS_AD9850.pdf
gudzon-m
14.10.2015, 14:42
Добрый день!
Коллеги, у меня ступор, когда хочу переназначить кнопки с 2 и 3 ноги ардуины.
Нашел первый кусок кода который отвечает за кнопки, и переделал его вот так:
//Tasten Interrupt an PIN 11
pinMode(11,OUTPUT);
digitalWrite(11, HIGH);
attachInterrupt(0, key11, FALLING);
unsigned long milliold = millis();
//Tasten Interrupt an PIN 12
pinMode(12,OUTPUT);
digitalWrite(12, HIGH);
attachInterrupt(1, key12, FALLING);
//milliold = millis();
И второй кусок кода:
// Interrupt Service Routine
// Abfrage Low an Pin 11
void key11()
{
//ignoriere Startup Interrupts > counter
counter = counter + 1;
//Entprellen mit millis()
millinew = millis();
if (millinew - milliold < 1000)
{
milliold = millinew;
return;
}
milliold = millinew;
Fstart_MHz = 1; // Start Frequency for sweep
Fstop_MHz = 30; // Stop Frequency for sweep
num_steps = 102; // Steps
Freq1 = 1; // Unterste Zeile Display Freq. Links
Freq2 = 15; // Unterste Zeile Display Freq. Mitte
Freq3 = 30; // Unterste Zeile Display Freq. Recht
//Perform_sweep();
flag = 1;
}
// Interrupt Service Routine
// Abfrage Low an Pin 12
void key12()
{
//ignoriere Startup Interrupts > counter
counter = counter + 1;
//Entprellen mit millis()
millinew = millis();
if (millinew - milliold < 1000)
{
milliold = millinew;
return;
}
milliold = millinew;
int x = SwrFreq + 0.5; //Runde auf Mhz
Fstart_MHz = x-1; // Start Frequency for sweep
Fstop_MHz = x+1; // Stop Frequency for sweep
num_steps = 102; // Steps
Freq1 = x-1; // Unterste Zeile Display Freq. Links
Freq2 = x; // Unterste Zeile Display Freq. Mitte
Freq3 = x+1; // Unterste Zeile Display Freq. Rechts
//Perform_sweep();
flag = 1;
}
Предварительно эти выводы были освобождены как от дисплея так и от DDS. Но не работает....
Подскажите пожалуйста, что я упустил?
Добрый день!
Коллеги, у меня ступор, когда хочу переназначить кнопки с 2 и 3 ноги ардуины...
... что я упустил?
читаем букварь (http://arduino.ru/Reference/AttachInterrupt)
gudzon-m
21.10.2015, 20:07
Дорогие друзья! Собрал и я такой приборчик:
214625
Так как питание автономное, напрашивается индикатор батареи питания. После гугления нашел вот эту статью: http://tim4dev.com/arduino-secret-true-voltmeter/
Если кратко, то здесь используется сравнение с внутренним опорным напряжением 1.1 вольта. Программировать я не умею вообще, поэтому за три часа я вот таким образом скорректировал скетч под наше железо:
#include <SPI.h>
#include "Ucglib.h"
Ucglib_ST7735_18x128 x160_SWSPI ucg(/*sclk=*/ 12, /*data=*/ 11, /*cd=*/ 10 , /*cs=*/ 8, /*reset=*/ 9);
// резисторы делителя напряжения
const float r1 = 99700; // 100K
const float r2 = 9870; // 10K
// эту константу (typVbg) необходимо откалибровать индивидуально
const float typVbg = 1.179; // 1.0 -- 1.2
float Vcc = 0.0;
float MaxVoltage = 0.0;
#define A_PIN 2
#define COUNT 5
int i;
float curVoltage;
char *stime;
void setup(){
analogReference(DEFA ULT); // DEFAULT INTERNAL использовать Vcc как AREF
delay(100);
Vcc = readVcc();
MaxVoltage = Vcc / (r2 / (r1 + r2));
analogWrite(A_PIN, 0);;
ucg.begin(UCG_FONT_M ODE_SOLID);
ucg.clearScreen();
ucg.setRotate90();
ucg.setFont(ucg_font _9x15);
ucg.setColor(255, 255, 255);
ucg.setPrintPos(10,2 0);
ucg.print("DC VOLTMETER");
}
void loop(){
Vcc = readVcc();
// считываем точное напряжение с A0, где будет находиться наш вольтметр с делителем напряжения
curVoltage = 0.0;
for (i = 0; i < COUNT; i++) {
curVoltage = curVoltage + analogRead(A_PIN);
delay(10);
}
curVoltage = curVoltage / COUNT;
float v = (curVoltage * Vcc) / 1024.0 / 10;
float v2 = v / (r2 / (r1 + r2));
{
ucg.setPrintPos(28,1 00);
ucg.print("Bat V = ");
ucg.print(v2);
ucg.print(" ");
}
}
/******************** ******************** ******************** ****************
* Функции
******************** ******************** ******************** ****************/
float readVcc() {
byte i;
float result = 0.0;
float tmp = 0.0;
for (i = 0; i < 5; i++) {
// Read 1.1V reference against AVcc
// set the reference to Vcc and the measurement to the internal 1.1V reference
#if defined(__AVR_ATmega 32U4__) || defined(__AVR_ATmega 1280__) || defined(__AVR_ATmega 2560__)
ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny 44__) || defined(__AVR_ATtiny 84__)
ADMUX = _BV(MUX5) | _BV(MUX0);
#elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny 45__) || defined(__AVR_ATtiny 85__)
ADMUX = _BV(MUX3) | _BV(MUX2);
#else
// works on an Arduino 168 or 328
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#endif
delay(3); // Wait for Vref to settle
ADCSRA |= _BV(ADSC); // Start conversion
while (bit_is_set(ADCSRA,A DSC)); // measuring
uint8_t low = ADCL; // must read ADCL first - it then locks ADCH
uint8_t high = ADCH; // unlocks both
tmp = (high<<8) | low;
tmp = (typVbg * 1023.0) / tmp;
result = result + tmp;
delay(5);
}
result = result / 5;
return result;
}
На мое удивление все хорошо заработало. Тогда было принято решение внедрить этот код в код нашего анализатора. Вот что у меня вышло:
214626
Краткое описание того что вышло:
При включении, на заставке, в самой нижней строчке появляется надпись со значением напряжения питания, тоже самое при экране "Scan..." И еще добавил надписью с версией прошивки, но это так, баловство.
214627 214628
Конечно понимаю, что вышло у меня не очень хорошо, поэтому попрошу местных гуру помочь в оптимизации. А, может, есть другой, более изящный, вариант?
Спасибо.
Добавлено через 36 минут(ы):
И появилась проблема. Теперь все время кажет, что SWR=1.05 но график рисует примерно правильно. Подскажите пожалуйста, где я накосячил?
gudzon-m, Тут посмотрите http://arrduinolab.blogspot .ru/2014/07/arduino.html Всё доходчиво и понятно ;-)
gudzon-m
21.10.2015, 22:11
RA4FHE, Попробовал ваше предложение, не работает. Пишет "V inf" и все тут...
gudzon-m, Код в примере рабочий ;-)
Так как вывод инфы нужно сделать только при включении прибора, добавляем:
В void setup()
analogReference(INTE RNAL);
float Vbat = (analogRead(A5) * 1.1) / 1023.0;
float Vin = Vbat / (89.8 / (783.0 + 89.8)); // R2/(R1+R2)
и печать на дисплей
ucg.setPrintPos(5,12 8);
ucg.print("VBat=");
ucg.setPrintPos(50,1 28);
ucg.print(Vin);
Контроль "напруги" по A5
gudzon-m, :shock: Ловите код...
214641
Подскажите, что за диоды АА112 используются в схеме. Чем их можно заменить?
RA4FHE, собрал прибор. С компьютером, через VNA работает отлично. С дисплеем полный затык.
Дисплей ILI9341, подключил как на www.kh-gps.de. Была ругань на шрифт-ncenR14... Исправил. Загрузка
проходит, а экран белый. С VNA при этом работает, но медленнее.
Программирование пытаюсь вспоминать, но кажется дисплей не так подключил...
Я тоже собрал - работает, но медленно обновляется экран (ILI9341). В общем показания совпадают с фабричным АА.
Дисплей ILI9341 Может у дисплея 3,5 в управляющие напр. Попробовать поставить делитель. У меня так.
RA9CHT, Добрый день. Так у меня стоят делители (10К\4.7К) на SCK, MOSI, D/C.
Так у меня стоят делители (10К\4.7К) на SCK, MOSI, D/C.
Что то ни так.
SCK, MOSI, D/C. , а остальные?
Powered by vBulletin® Version 4.1.12 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot