Пультоскоп на Arduino 27МГц!!!

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

VetalST пишет:
 Сейчас скресчиваю ваш 2 в одном Пультоскоп с  своим Помощником получилось 5 в одном

1. осциллограф  2. генератор 3. таймер до 99 часов 59 минут 59 секунд (пользуюсь для засветки фоторезистра с управлением на 9 вывод) 4. термометр - термостат (для нагрева с управлением на 9 вывод) и 5. Тест Акб замер ампер часов от 1 до 12в с авто определением АКБ и 3 режима разряда (выбор подключонного нагрузочного резистра можно менять и сохранять в памяти мк. 

с точки зрения пользования, п.3 и 4 явно лишние в приборе будут - неоаправдано усложнит коммутацию с внешним миром.

а вот тестер АКБ с автоопределением - это неплохая идея.

ИМХО.

bpl
Offline
Зарегистрирован: 15.02.2016

karl2233 подскажите пож.. что делать с Фьюзами при прошивки .HEX чистой 328 и совет как лучше из скетча сделать .HEX и нужен ли .eep

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

фьюзы я узнал так: глянул на рабочей Про Мини в Дудке(тут в теме выкладывал) или их можно гоянуть в файле board в папке ИДЕ.

скетч загружал через ИДЕ(загрузить через программатор) выбрав плату ПроМини 16МГц 5В. так что загрузчика Ардуины у меня не стоит(при загрузке скетча через программатор он затирается) и никаких hex и еер не надо.

а загрузчик, если он надо, можно вгрузить через ИДЕ но надо кварц на 16МГц впаять вместо 27.Хотя со скетчем можно работать (править, вгружать) и без него.

bpl
Offline
Зарегистрирован: 15.02.2016
то есть если  Фьюзы  в Arduino ProMini
LB-3F HF-DA EF-05 LF-FF  их оставить или выставить. 
в IDE  в скетче  в строке  #define overclock 16  //Частота на которой работает Ардуино.
Выставить например 8, 16 или 27  - какой имеется кварц  и  прошить вашим методом.
Спасибо
karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

1. если вгрузить загрузчик(выбрав ПроМини,16 на 5В) через программатор, то фузы станут автоматически. потом загрузить скетч, указав кварц, и всё.

2.можно загрузить скетч через программатор, а потом фузы установить(один раз) через Дудку.

оба варианта идентичны по результату. но следует помнить что когда кварц стоит на 27МГц, то скетч можно залить только через программатор(выбрав в ИДЕ ПроМини и "загрузку через программатор").

bpl
Offline
Зарегистрирован: 15.02.2016

karl2233  ещё раз Спасибо будем пробовать.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Кто хотел не просто Меандр а еще DDS разных форм, пишите какие формы делать?

Желательно с картинкой!

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

да синус, треугольник и прямоугольник. ну можно пилу прямую-обратную ещё(не знаю зачем тока).

зачем усложнять?

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Собрал на макетке, UNO генерирует смгнал, а Пультоскоп его отображает.

Пока скорость максимальная маленькая, возможно из-за библиотек, попробую написать на С чтоб повысить скорость генерации сигнала.

-Меандр до 2МГц

-Синус до 5кГц

-Треугольник 5кГц

-пила 5кГц

-пила обратная 5кГц

И фильтр пока собрал самый простецкий!)

 

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

клёва получилось.

...чую плату переделывать придётся  - хорошо не успел впаять МК =)

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

karl2233 пишет:

клёва получилось.

...чую плату переделывать придётся  - хорошо не успел впаять МК =)

Я этот сигнал делаю, хота где применить еще не знаю))

Со звуком не работаю, использую только меандр.

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

этого никто не знает. но ведь это круто - куча сигналов с генератора =)

Jtest
Offline
Зарегистрирован: 02.06.2015

bodriy2014 пишет:

-Меандр до 2МГц

-Синус до 5кГц

-Треугольник 5кГц

-пила 5кГц

-пила обратная 5кГц

Отлично! Как я понимаю, железо не меняется, а только код. Верно? Форм хватит с головой! Если не получится поднять частоту, то и это очень не плохой результат!

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

Отлично! Как я понимаю, железо не меняется, а только код. Верно? Форм хватит с головой! Если не получится поднять частоту, то и это очень не плохой результат!

Привет, все тоже только выход меандра напрямую, а выход остальных форм через НЧ фильр.

Я гуглил люди для каждой формы сигнала считают и подбирают отдельный фильтр, но я решил это слишком усложняет. Посчитал один фиьтр для всех, кому будет грубо пусть ставит четыре фильтра.

Меня такая форма тоже устраивает.

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

схему фильтра в студию =)

з.ы. придумал куда применить прямую пилу.

надо на выход простенький ламповый УНЧ поставить и слушать.

над применением обратной думаю.

Mining
Offline
Зарегистрирован: 31.01.2016

bodriy2014 пишет:

Собрал на макетке, UNO генерирует смгнал, а Пультоскоп его отображает.

Пока скорость максимальная маленькая, возможно из-за библиотек, попробую написать на С чтоб повысить скорость генерации сигнала.

-Меандр до 2МГц

-Синус до 5кГц

-Треугольник 5кГц

-пила 5кГц

-пила обратная 5кГц

И фильтр пока собрал самый простецкий!)

 

Прекрасно! А вот , если UNO разонать до 27-30мегагерц, то на UNO можно сделать генератор меандр до 2МГЦ и мнимальный шаг регулировки 0,1Гц?

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Mining пишет:

Прекрасно! А вот , если UNO разонать до 27-30мегагерц, то на UNO можно сделать генератор меандр до 2МГЦ и мнимальный шаг регулировки 0,1Гц?

Меандр Уно даст до 2МГц и без разгона, но резулеровку шагом 0,1Гц не дас ни в одном состоянии, есть для такой точности специальные приборы.

Вам для чего такая точность, можно узнать?

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

karl2233 пишет:

схему фильтра в студию =)

з.ы. придумал куда применить прямую пилу.

надо на выход простенький ламповый УНЧ поставить и слушать.

над применением обратной думаю.

Вставлю код в прибор все выложу.отпишу.

Mining
Offline
Зарегистрирован: 31.01.2016

bodriy2014 пишет:

Mining пишет:

Прекрасно! А вот , если UNO разонать до 27-30мегагерц, то на UNO можно сделать генератор меандр до 2МГЦ и мнимальный шаг регулировки 0,1Гц?

Меандр Уно даст до 2МГц и без разгона, но резулеровку шагом 0,1Гц не дас ни в одном состоянии, есть для такой точности специальные приборы.

Вам для чего такая точность, можно узнать?

Да была тут тема про воздушные трансформаторы Tesla , вот решил поэксперементировать, народ пишет что надо иметь DDS генератор используют с шагом 0,1Гц, тогда катушку можно использовать расчетную, а если 1Гц то надо настраивать и генератор и у катушки витки.

Mining
Offline
Зарегистрирован: 31.01.2016

karl2233 пишет:

схему фильтра в студию =)

з.ы. придумал куда применить прямую пилу.

надо на выход простенький ламповый УНЧ поставить и слушать.

над применением обратной думаю.

Есть печатка DDS1300 в Чайна делают, может по печатке сможете скомуниздить ))

Не смог вставить фотку печатки, можете вот по ссылке скачать

https://drive.google.com/open?id=0ByxnYI2rdZocd1RPU0RpUHZUWGM

Jtest
Offline
Зарегистрирован: 02.06.2015

bodriy2014, привет. Есть вопрос. В коде указано:

#define led  9   //пин для генератора сигналов (не менять)

Развел плату, начал проверять. Мои 15v пошли через козу (на SMD резисторе) на 9й пин. В общем, его уже нет с нами((  Все осальное работает. Меняю в настройках на 8й пин - не работает генератор. Где чего нужно подправить?

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

bodriy2014, привет. Есть вопрос. В коде указано:

#define led  9   //пин для генератора сигналов (не менять)

Развел плату, начал проверять. Мои 15v пошли через козу (на SMD резисторе) на 9й пин. В общем, его уже нет с нами((  Все осальное работает. Меняю в настройках на 8й пин - не работает генератор. Где чего нужно подправить?

В библиотеке PWM.h. если и можно поменять то только там.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

bodriy2014 пишет:

Jtest пишет:

bodriy2014, привет. Есть вопрос. В коде указано:

#define led  9   //пин для генератора сигналов (не менять)

Развел плату, начал проверять. Мои 15v пошли через козу (на SMD резисторе) на 9й пин. В общем, его уже нет с нами((  Все осальное работает. Меняю в настройках на 8й пин - не работает генератор. Где чего нужно подправить?

В библиотеке PWM.h. если и можно поменять то только там.

Нужно в схеме добавить >=5К резистор к порту D9, чтоб других уберечь(((

Jtest
Offline
Зарегистрирован: 02.06.2015

В PWM.h нет, ищу инструкций в интернете.

Нужно в схеме добавить >=5К резистор к порту D9, чтоб других уберечь(((

Я в 10 раз больше поставил, но при пайке получилась по торцу резистора оловянная "волосинка". Ее я не увидел. Результат - описан выше.

Jtest
Offline
Зарегистрирован: 02.06.2015

Вычитал. Библиотека работает только с 9м и 10 пином. (на 10м получилось). Теперь кнопнки нужно перебрасывать...(( Ух и нашел себе развлечение.

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

кнопку прекинуть самое лёгкое в этой истории

revlerik
Offline
Зарегистрирован: 26.12.2015

Ух как у вас тут все заворотилось,завтра приедут парочка мини ардуин,буду и я корпус воротить.

Jtest
Offline
Зарегистрирован: 02.06.2015

karl2233 пишет:

кнопку прекинуть самое лёгкое в этой истории

Да, хорошо что только этим обошлось.

Jtest
Offline
Зарегистрирован: 02.06.2015

bodriy2014, поменял кварц на 27, есть два момента.

1) Меняю развертку. 3 - около 20 пиков сигнала, 4 - 10 пиков сигнала, 5 - 5 пиков. Когда нажимаю 6 и дальше по идее должно быть 2,5 пика, 1,5 и 0.5, но на экране появляется полная белеберда. Убираю щуп - на развертке 6-8 белеберда один в один, как и при сигнале. На развертке 5 и меньше - вроде, нормально. Это как на опорном 5, так и на 1.

2) Программная частора отображается не правильно. Аппаратная - правильно. Привожу пример программной:

Подаю 20к - показывает 12.7к, 15к -9.5к, 10к -6.1к.

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

про п.2 можно подробнее? где программная отображается, а где аппаратная?

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

bodriy2014, поменял кварц на 27, есть два момента.

1) Меняю развертку. 3 - около 20 пиков сигнала, 4 - 10 пиков сигнала, 5 - 5 пиков. Когда нажимаю 6 и дальше по идее должно быть 2,5 пика, 1,5 и 0.5, но на экране появляется полная белеберда. Убираю щуп - на развертке 6-8 белеберда один в один, как и при сигнале. На развертке 5 и меньше - вроде, нормально. Это как на опорном 5, так и на 1.

2) Программная частора отображается не правильно. Аппаратная - правильно. Привожу пример программной:

Подаю 20к - показывает 12.7к, 15к -9.5к, 10к -6.1к.

счас работаю, ночью гляну.

Jtest
Offline
Зарегистрирован: 02.06.2015

karl2233, в версии прошивки автора частота сигнала напряжением до 2,5v считается программным способом, свыше - аппаратным.

bodriy2014, хорошо, спасибо.

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

 Jtest, понял. спасибо за пояснение

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

karl2233, в версии прошивки автора частота сигнала напряжением до 2,5v считается программным способом, свыше - аппаратным.

bodriy2014, хорошо, спасибо.

Еще работаю, но с подсчетом частоты сразу ясно.

Эти строки замените

  if (razv>=6){Frec=1000000/((y-Frec1)*3.27*(overclock/16.0));}//delitel 4
  if (razv==5){Frec=1000000/((y-Frec1)*3.27*(overclock/16.0))/2;}//delitel 8
  if (razv==4){Frec=1000000/((y-Frec1)*3.27*(overclock/16.0))/4;}//delitel 16
  if (razv==3){Frec=1000000/((y-Frec1)*3.27*(overclock/16.0))/8;}//delitel 32
  if (razv==2){Frec=1000000/((y-Frec1)*3.27*(overclock/16.0))/16;}//delitel 64
  if (razv==2){Frec=1000000/((y-Frec1)*3.27*(overclock/16.0))/32;}//delitel 128
  if (razv==1){Frec=1000000/((y-Frec1)*3.27*(overclock/16.0))/32;}//delitel 128
  if (razv==0){Frec=1000000/((y-Frec1)*500*(overclock/16.0));}//delitel 128

На эти

  if (razv>=6){Frec=1000000/((y-Frec1)*3.27*(16.0/overclock));}//delitel 4
  if (razv==5){Frec=1000000/((y-Frec1)*3.27*(16.0/overclock))/2;}//delitel 8
  if (razv==4){Frec=1000000/((y-Frec1)*3.27*(16.0/overclock))/4;}//delitel 16
  if (razv==3){Frec=1000000/((y-Frec1)*3.27*(16.0/overclock))/8;}//delitel 32
  if (razv==2){Frec=1000000/((y-Frec1)*3.27*(16.0/overclock))/16;}//delitel 64
  if (razv==2){Frec=1000000/((y-Frec1)*3.27*(16.0/overclock))/32;}//delitel 128
  if (razv==1){Frec=1000000/((y-Frec1)*3.27*(16.0/overclock))/32;}//delitel 128
  if (razv==0){Frec=1000000/((y-Frec1)*500*(16.0/overclock));}//delitel 128

Провтыкал что у времени от скорости обратная зависимость)))

Jtest
Offline
Зарегистрирован: 02.06.2015

bodriy2014, теперь на 70% больше))). При 1к - 1.7к, при 10к - 17к.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

bodriy2014, теперь на 70% больше))). При 1к - 1.7к, при 10к - 17к.

Х.З. Нужно смотреть.

Okmor
Okmor аватар
Offline
Зарегистрирован: 16.10.2015

Испробовал схему смещения нуля на макетке. Все прекрасно работает.

Схема переворачивает сигнал и усиливает его в десять раз. Можно поставить согласованный делитель по емкости 1/10 и коефициент регулировать внутри каскада. 

Тогда входное сопротивление можно будет поднять к 0,5-1 мОм.

Усилитель mc33078n - 0,3$ 

Инвертор питания ICL7660SC - 0,44$

 

karl2233
karl2233 аватар
Offline
Зарегистрирован: 05.07.2015

ого! так это уже осцилоскоп получается. да и повышение входного сопротивления может только радовать.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

bodriy2014, поменял кварц на 27, есть два момента.

1) Меняю развертку. 3 - около 20 пиков сигнала, 4 - 10 пиков сигнала, 5 - 5 пиков. Когда нажимаю 6 и дальше по идее должно быть 2,5 пика, 1,5 и 0.5, но на экране появляется полная белеберда. Убираю щуп - на развертке 6-8 белеберда один в один, как и при сигнале. На развертке 5 и меньше - вроде, нормально. Это как на опорном 5, так и на 1.

2) Программная частора отображается не правильно. Аппаратная - правильно. Привожу пример программной:

Подаю 20к - показывает 12.7к, 15к -9.5к, 10к -6.1к.

При 20кГц измеряемого сигнала, опорное 5В, кварц 27МГц.

--шаг 4=12 пиков

--шаг 5=6 пиков

--шаг 6=3 пика

--шаг 7=2 пика

--шаг 8=1 пик

Визуально все нормально и апаратно считает правильно.

А вот с програмным подсчетом лажа и пока не решил.

Дело в том что увеличение скорости АЦП не линейно от разгона.

16МГц=3,25микросекунды один замер

27МГц=1,68микросекунды один замер

Кварц ставим в 1,68раза быстрее а АЦП делает замеры в 1,93 раза быстрее, с другими пока не тестировал.

Как вариант через If для каждого значения кварца считать по своему частоту програмно, или ввести поправочный коефициент для всех оверклок кварцев.

П.С. Чтоб отловить нестыковку запарился перепаивать кварцы заливая скетч на 16 и перепаивать 27 проверять((((

 

 

Evg-Chugunov
Evg-Chugunov аватар
Offline
Зарегистрирован: 22.08.2015

Здравствуйте. 

Добрался наконец то до пультоскопа. Залил прошивку PULTOSCOPE_LCD5110_final_2. Начальное меню стало отображаться какими то кракозябрами:

До этого была прошивка PULTOSCOPE_LCD5110_v2 Все работало и отображалось нормально. Из за чего это может быть? Где поправить?

И ещу вопрос:

Почему то есть мерцание экрана полосами. На фотке сложно передать, но попробую:

Вот эти темные полосы хаотично перемещаются по экрану вверх - вниз. У кого нибудь есть что то подобное? Похоже на аппаратную проблему. Может брак экрана?

И в качестве хотелок:

Может быть есть возможность добавить регулировку контрастности кнопками?

Спасибо.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Evg-Chugunov Привет.

---В версии PULTOSCOPE_LCD5110_final_2 добавлен русский язык. Замените свою библиотеку  на ту что в архиве с скетчем.

---Контарсность пробовали уменьшать  или увеличивать. Если не дает результата значит или наводки по питанию, или конденсатор на дисплее заменить.

Наводки по питанию отследить легко запитайте дисплей отдельно от другого источника например литиевого АКБ.

Регулировку контрастности можно добавить, но зачем вы когда компилируете выставляете оптимальную и потом она не меняется?Или у вас уплывает контрастность?

Evg-Chugunov
Evg-Chugunov аватар
Offline
Зарегистрирован: 22.08.2015

Спасибо, про библиотеку не знал.

Контрастность разную пробовал. Полосы не убираются, а пропорционально меняют яркость. Какой конденсатор заменить? На плате индикатора у меня только один конденсатор керамический. Его? А по питанию попробую добавить. 

Про регулировку контрастности просто пришла мысль, когда подбирал коэффициент. У меня получилось 50 примерно. И иногда после перезагрузки контрастность меняется немного. Может это одна и таже проблема, связанная с полосами, хез.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Evg-Chugunov пишет:

Спасибо, про библиотеку не знал.

Контрастность разную пробовал. Полосы не убираются, а пропорционально меняют яркость. Какой конденсатор заменить? На плате индикатора у меня только один конденсатор керамический. Его? А по питанию попробую добавить. 

Про регулировку контрастности просто пришла мысль, когда подбирал коэффициент. У меня получилось 50 примерно. И иногда после перезагрузки контрастность меняется немного. Может это одна и таже проблема, связанная с полосами, хез.

---по контрастности у кого-то с форума на китайском дисплее плавала, он зашунтировал конденсатор мегоомным резистором перестало.(он там один)

---Наводки по питанию добавочным конденсаторм не убрать, проверьте если есть-нужно индуктивность последовательно цеплять и после нее паралельно керамику.

Jtest
Offline
Зарегистрирован: 02.06.2015

bodriy2014 пишет:

П.С. Чтоб отловить нестыковку запарился перепаивать кварцы заливая скетч на 16 и перепаивать 27 проверять((((

Зачем столько действий? Я запаял 27, а когда перепрошиваю, подставляю к контактам (с другой стороны платы) кварц на 16. Можно со стороны контактов подпоять коннектор для вставки кварца, тогда будет еще проще.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

Зачем столько действий? Я запаял 27, а когда перепрошиваю, подставляю к контактам (с другой стороны платы) кварц на 16. Можно со стороны контактов подпоять коннектор для вставки кварца, тогда будет еще проще.

--Перезалил скетч, подправил и проверил на кварцах 16МГц и 27МГц.

---Проверил возможности разгона, Arduino Pro Mini легко взяла 35МГц, но толку от этого нет. Если кварц выше 27МГц то АЦП на максимальной скорости не работает.

Смысла ставить кварц выше 27МГц нет!(

 

Evg-Chugunov
Evg-Chugunov аватар
Offline
Зарегистрирован: 22.08.2015

Замена библиотеки помогла. Меню нормальное. А вот экран победить не могу. Мерцает. С изменением емкости конденсатора (родной 0,1 мкф) меняется только частота мерцания. Пробовал кондденсаторы от 0,047 до 4,7 мкф. На большой емкости явно видно периодическое повышение и уменьшение яркости с частотой примерно 1 Гц. По питанию емкость не помогает. 

Кстати, контрастность у меня зависит от напряжения питания.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Evg-Chugunov пишет:

Замена библиотеки помогла. Меню нормальное. А вот экран победить не могу. Мерцает. С изменением емкости конденсатора (родной 0,1 мкф) меняется только частота мерцания. Пробовал кондденсаторы от 0,047 до 4,7 мкф. На большой емкости явно видно периодическое повышение и уменьшение яркости с частотой примерно 1 Гц. По питанию емкость не помогает. 

Кстати, контрастность у меня зависит от напряжения питания.

Я выше вам писал и о конденсаторе по питанию и о контрастности. 493

Jtest
Offline
Зарегистрирован: 02.06.2015

bodriy2014, с частотой стало по лучше, а с разверткой проблема осталась. Я не говорил, что нужно повышать частоту кварца, только рассказал как можно прошивать не перепаивая обратно кварц на 16МГц.

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Jtest пишет:

bodriy2014, с частотой стало по лучше, а с разверткой проблема осталась. Я не говорил, что нужно повышать частоту кварца, только рассказал как можно прошивать не перепаивая обратно кварц на 16МГц.

Сам хотел попробовать что можно выжать из АЦП.

Как лучше переключаться между формами сигнала?

Jtest
Offline
Зарегистрирован: 02.06.2015

bodriy2014 пишет:
Как лучше переключаться между формами сигнала?

А какие есть варианты?

Заменил строку

if (razv>=6){ADCSRA = 0b11100010;}//delitel 4
на:
if (razv>=6){ADCSRA = 0b11100011;}//delitel 4

Развертка 7,8 заработала. 6, соответственно, стала дублировать 5. Но это не выход. Я в АЦП глух, может есть у кого-то есть идеи с проблемной разверткой?

Менял кварц разных производителей 27 на 27 (думал брак по частоте), не помогло.

Заменил на 0b11100001 - показывает напряжение 15v и полоса графика под "потолком". При 0b11100010 - шум в районе 14.3-14.5v