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

Electronik83
Offline
Зарегистрирован: 06.12.2015

Все как у автора. Дисплей тока пересажен на другие пины.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

а3 и d5 ?

Electronik83
Offline
Зарегистрирован: 06.12.2015

Да

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

а почему если к выходу ддс генератора прицепить базер - начинает перелистываться меню формы сигнала ?

Electronik83
Offline
Зарегистрирован: 06.12.2015

Гм... не знаю...

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

и уровень синала раза в три ниже чем у обычного генератора. осцилограф заработал - провод земли отвалился. но врёт частотомер . сигнал 1кгц на развёртке 0 -показывает NHz или CHz. на других развёртках 33Hz. сама форма сигнала сооветствует 1кгц

Electronik83
Offline
Зарегистрирован: 06.12.2015

Амплитуда сигнала на входе сколько?
Там с частотомером есть косяк, не так давно сам обнаружил...

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

у меня генератор программный 0.95. на экране 1.1

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

1000 Гц

Electronik83
Offline
Зарегистрирован: 06.12.2015

Поправил измерение частоты...

Попробовал запустить АЦП на максимальной частоте, с делителем в 2 - на экране сплошная линия вверху.

Никто не замечал, что в программном рассчете частоты два раза условие (razv==2) повторяется?

Надо так, потестил - работает:

      if (razv==6) Freq=1000000/((y-Freq1-1)*3.27);   // делитель 4
      if (razv==5) Freq=1000000/((y-Freq1)*3.27)/2;   // делитель 8
      if (razv==4) Freq=1000000/((y-Freq1)*3.27)/4;   // делитель 16
      if (razv==3) Freq=1000000/((y-Freq1)*3.27)/8;   // делитель 32
      if (razv==2) Freq=1000000/((y-Freq1)*3.27)/16;  // делитель 64
      if (razv==1) Freq=1000000/((y-Freq1)*3.27)/32;  // делитель 128
      if (razv==0) Freq=1000000/((y-Freq1)*500);      // делитель 128
 
Или еще лучше сделать через switch() case.... что и сделаю....
 
А, и от разверток 7 и 8 я отказался - это растянутый сигнал из шестой развертки.
 
И ещё - максимальная частота, с которой видны импульсы на экране - 50КГц, даешь больше - всякая бяка появляется на экране.
Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

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

Electronik83
Offline
Зарегистрирован: 06.12.2015

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

syncLevel = ((Vmax - Vmin) / 2) + Vmin;

, где 

synсLevel - уровень синхры,

Vmax и Vmin - соответсвенно максимум и минимум амплитуды сигнала.

Electronik83
Offline
Зарегистрирован: 06.12.2015

Stashevskiy68 пишет:

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

Я говорил про импульсы, а не форму сигнала:)

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для  Dimax. Уважаемый со-форумник не моглибы Вы "прикрутить" к пультоскопу  код генератора ШИМ из вашего генератора с энкодером чтобы отображало при выборе не ту частоту что вводим  с кнопок , а действительную.  пусть не полный диаппазон частот, но честный.  

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

Electronik83 пишет:

Поправил измерение частоты...

Попробовал запустить АЦП на максимальной частоте, с делителем в 2 - на экране сплошная линия вверху.

Никто не замечал, что в программном рассчете частоты два раза условие (razv==2) повторяется?

Надо так, потестил - работает:

      if (razv==6) Freq=1000000/((y-Freq1-1)*3.27);   // делитель 4
      if (razv==5) Freq=1000000/((y-Freq1)*3.27)/2;   // делитель 8
      if (razv==4) Freq=1000000/((y-Freq1)*3.27)/4;   // делитель 16
      if (razv==3) Freq=1000000/((y-Freq1)*3.27)/8;   // делитель 32
      if (razv==2) Freq=1000000/((y-Freq1)*3.27)/16;  // делитель 64
      if (razv==1) Freq=1000000/((y-Freq1)*3.27)/32;  // делитель 128
      if (razv==0) Freq=1000000/((y-Freq1)*500);      // делитель 128
 
Или еще лучше сделать через switch() case.... что и сделаю....
 
А, и от разверток 7 и 8 я отказался - это растянутый сигнал из шестой развертки.
 
И ещё - максимальная частота, с которой видны импульсы на экране - 50КГц, даешь больше - всякая бяка появляется на экране.

тут надобы проверить какая конструкция быстрее работает!

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для Electronik83. будь добр скинь последнюю версию своего кода. можешь на почту  Stashevskiy68@Gmail.com. 

заранее благодарен

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для Elektronik83.

"Увеличить кол-во условий кейсов до 9 .Что уже выдает неоспоримое преимущество switch c результатом : switch - 1172 milliseconds, if - 4171 milliseconds". 

по факту Switch быстрее !!!

Electronik83
Offline
Зарегистрирован: 06.12.2015

В данном месте скорость особо не нужна. Вся соль в скорости заключается в цикле считывания данных с АЦП (Zamer() - у автора, и readAdc() - у меня).

И я тоже давно уже думаю про энкодер - магнитол на разборе/распае на работе дофига. Удобно будет, но блин... с кнопками как то лучше, и повторяемость выше.

А каким образом вы так замерили время выполнения кода?

И вам интересна моя версия для oled ssd1306? Я просто именно ей сейчас занимаюсь...

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

измерить скорость конструкций  Google помог.

У меня сейчас задача разобраться с имеющимися дисплеями, а их гора (с разбоки телефонов, сотрудник подогнал) и побыстрей сделать рабочий вариант пультоскопа. а енкодер в носимой конструкции  пультоскопа будет неудобен. для кнопок нужен один палец , а для энкодера как минимум 2 и еще усилие для нажатия кнопки да и торчать сильно будет из корпуса, а в моих условиях работы это порой кретично.

Electronik83
Offline
Зарегистрирован: 06.12.2015

Electronik83 пишет:

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

syncLevel = ((Vmax - Vmin) / 2) + Vmin;

, где 

synсLevel - уровень синхры,

Vmax и Vmin - соответсвенно максимум и минимум амплитуды сигнала.

Нет предположений?

Спать пойду. завтра скину.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Stashevskiy68 пишет:

для  Dimax. Уважаемый со-форумник не моглибы Вы "прикрутить" к пультоскопу  код генератора ШИМ из вашего генератора с энкодером чтобы отображало при выборе не ту частоту что вводим  с кнопок , а действительную.  пусть не полный диаппазон частот, но честный.  

Симбиоз возможен, да. Но у меня нет интереса возиться с показометрами, т.к. полноценный осиллограф есть..

Electronik83
Offline
Зарегистрирован: 06.12.2015

to Stashevskiy68

Stashevskiy68 пишет:

У меня сейчас задача разобраться с имеющимися дисплеями, а их гора (с разбоки телефонов, сотрудник подогнал) и побыстрей сделать рабочий вариант пультоскопа.

У меня тоже гора дисплеев от телефонов. Но практика показала, что применимы только от Нокии 3310, 3410, и от более современных звонилок типа 1100 и типа 6100 (но у них разъем надо распаивать, шаг мелкий). Так же применимы от сименсов типа СХ65 и С65. Остальные экранчики (ИМХО) - ничего с ними не сделать.

Хотел подцепить экранчики от самсунгов раскладушек - но инфы ваще нету. Распиновку то сложно найти, не говоря уже о протоколе общения.

Я бы порекомендовал дисплей заказать oled ssd1306 - уж больно очень мне он нравится. И стоит 300 рублей на али.

P.S. Проверь почту...

sirota
Offline
Зарегистрирован: 18.08.2015

Лупиться в такую песалку? Вообще не представлю даже пультоскоп на таком экранчике.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

согласен на счет олед дисплея, размер на любителя=)

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

для Electronik83. до 1000гц частоту показывает +- 1-2гц. после 1000 показывает целые единицы кГц. сигнал отображает хорошо. вольтметр на 0.2 показывает 0.25, 0.4 - 0.51, 0.8 - 1.03. 1- 1.25

Electronik83
Offline
Зарегистрирован: 06.12.2015

Надо замерить напряжение питания на атмеге и прописать его в коде. Тогда он будет точно мерять напряжения.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

у меня питание 5.03в. разницы нет менять в скетче

Electronik83
Offline
Зарегистрирован: 06.12.2015

Это питание входит на плату. А там же еще линейный стабилизатор. Он понижает немного.

ywor
Offline
Зарегистрирован: 16.01.2017

Ткните меня носом ,есть ли какая версия под дисплей 480х320 на ili9481 или на HX8357 

Electronik83
Offline
Зарегистрирован: 06.12.2015

Будет, когда мне придет такой дисплей. Заказал. Жду...

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

я замерял на самой атмеге

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

сейчас на 555 соберу на соплях гену. посмотрю на уровнях 5в

Electronik83
Offline
Зарегистрирован: 06.12.2015

.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

на режиме 1.1 вольт без изменений. режим 5в превратился в 4в. показывает вольтаж верно, на сигнал не разглядеть и частотаа 0 показывает

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

покрутил с генератором на кр1006ви1. на ТТЛ уровнях вольтметр практически точен. форму сигнала прикинуть вполне реально. одно пожелание - отображение частоты после 1000гц сделать например 1.25кгц или 1250гц. а то что 1500, что 1900 - всё 1кгц показывает. и так далее. потом показывает 10кгц и сразу 20кгц

Electronik83
Offline
Зарегистрирован: 06.12.2015

Ок. Поправлю. Спасибо большое за тесты. Очень приятно, что это все интересно кому нибудь, кроме меня.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

Electronik83 пишет:
Ок. Поправлю. Спасибо большое за тесты. Очень приятно, что это все интересно кому нибудь, кроме меня.

не за что. мне по-кайфу это всё. жаль сам толком не догоняю как писать. мигаю лампочками :(

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

dimax пишет:

Stashevskiy68 пишет:

для  Dimax. Уважаемый со-форумник не моглибы Вы "прикрутить" к пультоскопу  код генератора ШИМ из вашего генератора с энкодером чтобы отображало при выборе не ту частоту что вводим  с кнопок , а действительную.  пусть не полный диаппазон частот, но честный.  

Симбиоз возможен, да. Но у меня нет интереса возиться с показометрами, т.к. полноценный осиллограф есть..

у меня тоже дома есть С-68 и на работе С-112  и С-114  но к сожалению их в карман не положить и  возле конвертера или среди поля  в розетку не воткнуть (я занимаюсь весовым оборудованием),  а пультоскоп это огромная помощь с локализацией и выявлением неисправности.  хотябы определите  какой куск вашего кода возвращает действительную частоту,  дальше мы сами попробуем разобраться.

sirota
Offline
Зарегистрирован: 18.08.2015

Stashevskiy68 пишет:

я занимаюсь весовым оборудованием

Стеснуюсь спросить. а зачем вам там осцил вообще? У меня 3 весовых (я сисадмин и моя часть - пк, но я плотно общаюсь с тем кто занимается оставшейся частью). И как бы осцил там не упал. Тем паче в поле. Датчики детектятся и так на ура, а уж из-за чего он умер и что умерло - уже дома. За центральный блок молчу, там вообще в поле нет смысла лезть, проще иметь при себе так же как и датчик запасной. Тем паче весовая во время уборки. Сбоит, парень приехал, деигностика, ага, с такой-то датчик занижает или завышает, его и провода к нему под замену. По времени весовая стояла то пока он ехал + 1 час. За этот час зерно возили в другое зернохранилище. Потеряли за час под 50 тысяч только на салярке на камазах. Я молчу то что им пришлось ехать дальше и соответственно комбайны и все их ждали. А пока вы там осцилом съкономите 1000 рублей...

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

 есть разное оборудование. у меня в большем кол-ве используются "Тензод-200" там вес преобразуется в частоту и передается на вторичное устройство. вот эту частоту и ее уровень и требуется контролировать + с него передается инфа и по  токовому, и по  RS-232,и по  RS-485. к тому-же   у меня нет времени ждать максимум 15 мин. иначе плавка застынет или  не добавят ферросплав и запорят плавку.  у меня оборудование  от КСТ-4  до SIWAREX U  и FTA  от SIEMENS, RL920i, RL355   очень разношерстное.  а одна плавка это 160т металла да по $400 = $64000. и плавка длится в среднем 40 мин.  оборудования 70 единиц   а обслуживает 4 дежурных и  инженер -  в  день 2 чела, а после 15 -1 чел  а должно быть по расчета 23!!! поэтому и требуются такие приборчики что-бы всегда в кармане был.  

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Stashevskiy68, даже что бы просто отображать фактическую частоту нужно знать, в какой режим загоняет таймер применённая библиотека управления таймером. То есть нужно анализировать нутро библиотеки, что -бы написать функцию делающую обратный расчёт частоты из считанных регистров. А по трудоёмкости это выйдет совсем не проще, чем имплантировать весь мой алгоритм, а в нём уже принципиально невозможно ввести частоту, которую не сможет сделать таймер.

А вообще я не вижу проблемы -ну собирите отдельный генератор и делов-то.. Можно даже вставить в один корпус с пультоскопом. Будет и DDS настоящий и точный PWM и все плюшки ..

sirota
Offline
Зарегистрирован: 18.08.2015

Stashevskiy68 пишет:

 есть разное оборудование. у меня в большем кол-ве используются "Тензод-200" там вес преобразуется в частоту и передается на вторичное устройство. вот эту частоту и ее уровень и требуется контролировать + с него передается инфа и по  токовому, и по  RS-232,и по  RS-485. к тому-же   у меня нет времени ждать максимум 15 мин. иначе плавка застынет или  не добавят ферросплав и запорят плавку.  у меня оборудование  от КСТ-4  до SIWAREX U  и FTA  от SIEMENS, RL920i, RL355   очень разношерстное.

ну тады ясно. У нас в поле именно что все по проще. По сему я так и удвилися. На грузовых весовых от 4-х датчикаов. По сему легко выявить кто гонит просто прокладывая груз.

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для Sirota.  из опыта - лучше всего записать коеффициенты АЦП при первичной установке датчика.  и  когда весы начинают врать за 10 -15 мин отключая датчики моджно 100% выявить вышедший из строя и ничего не надо перекладывать -это не даст правильного результата- может от температуры или от продолжительного механического  воздействия  "крутануть" металлоконструкцию. а РКП (рабочий коэф. передачи) у современных датчиков совпадает до 4 знака после 0. в 70% после замены датчика даже каллибровать неприходится весы в допуске !.

 на алиэкспрес  есть АЦП  24 битное для тензодатчиков . прикрути его к Ардуинке и смотри код АЦП .там наверняка диференциальный вход защитит от помех да  можно будет мерять напряжение от датчика от 0 до 50 мВ. прикинь точность при 24 битах .стоит херню 17-20 грн. я парочку заказал .буду применять.

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

dimax пишет:

Stashevskiy68, даже что бы просто отображать фактическую частоту нужно знать, в какой режим загоняет таймер применённая библиотека управления таймером. То есть нужно анализировать нутро библиотеки, что -бы написать функцию делающую обратный расчёт частоты из считанных регистров. А по трудоёмкости это выйдет совсем не проще, чем имплантировать весь мой алгоритм, а в нём уже принципиально невозможно ввести частоту, которую не сможет сделать таймер.

А вообще я не вижу проблемы -ну собирите отдельный генератор и делов-то.. Можно даже вставить в один корпус с пультоскопом. Будет и DDS настоящий и точный PWM и все плюшки ..

пожалуй вы правы.  но копание в вашем РАБОЧЕМ  коде поможет начинающему разобратся  с работой таймеров.  я ранше лет 15 (до 2000г)  работал с базами данных , с контроллерами только начинаю.     

sirota
Offline
Зарегистрирован: 18.08.2015

Stashevskiy68 пишет:

для Sirota.  из опыта - лучше всего записать коеффициенты АЦП при первичной установке датчика.  и  когда весы начинают врать за 10 -15 мин отключая датчики моджно 100% выявить вышедший из строя и ничего не надо перекладывать -это не даст правильного результата- может от температуры или от продолжительного механического  воздействия  "крутануть" металлоконструкцию. а РКП (рабочий коэф. передачи) у современных датчиков совпадает до 4 знака после 0. в 70% после замены датчика даже каллибровать неприходится весы в допуске !.

 на алиэкспрес  есть АЦП  24 битное для тензодатчиков . прикрути его к Ардуинке и смотри код АЦП .там наверняка диференциальный вход защитит от помех да  можно будет мерять напряжение от датчика от 0 до 50 мВ. прикинь точность при 24 битах .стоит херню 17-20 грн. я парочку заказал .буду применять.

там все проще. Контроллер имеет меню калибровки где есть вывод показаниц АЦП. И ни чего не надо. Выставил он гирьку пудовую как при калибровке, раз 3 датчик не показывает того что должен - замена его вместе с проводкой. УБорка дело такое - сегодня начали - завтра закончили - значит велика вероятность не попасть под дождь или ветер которые собьют зерно на землю. Я понимаю что его работа не технологична, но экономична. Он экономит серьезную сумму денег многим людям. ПО сему по факту в багажнике у меня электроники на 3-4 весовых ) А там сам знаешь как на такое оборудование бабки накручивают.

Stashevskiy68
Offline
Зарегистрирован: 09.01.2017

для Sirota. накручивают не слабо   у меня один датчик стоит 150 тыс.грн а их 8 штук.  а если заливают металлом... из строя как правило выходит  сразу 2шт и ждешь потом покупки год.  но нашь диалог   не для данного форума :)

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

Electronik83 пишет:

 

P.S. заказал шилд с дисплеем 320 на 480 под мегу 2560 - будет пультоскопище!

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

Electronik83
Offline
Зарегистрирован: 06.12.2015

Только что получил. Буду писать....

Juris
Juris аватар
Offline
Зарегистрирован: 28.10.2016

"320 на 480 под мегу 2560 - будет пультоскопище"
если можно, дайте наводку на конкретный "комплект". На случай, если надумаю, чтоб именно такой же попасть приобрести. Спасибо.

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017