Моя версия генератора сигналов+плюшка!

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

Всем привет.

Понимаю что на форуме и в сети полно генераторов сигнала на ардуино.

Но ничего не могу с собой поделать!))

Будут желающие повторить, сниму ролик как собрать и прошить.

Естественно все материалы  выложу.

https://www.youtube.com/watch?v=nd6cz5sVn1s&feature=youtu.be

 

Joiner
Offline
Зарегистрирован: 04.09.2014

bodriy2014 пишет:

...........................................

Будут желающие повторить, сниму ролик как собрать и прошить.

Естественно все материалы  выложу.

................................

Желающие будут :). Выкладывай. Хочу повторить.

Генератор с осцилоскопом очень понравился!

Заказал такую штуку

Думаю для этого неплохо подойдет.

sansanych
Offline
Зарегистрирован: 23.08.2015

Понравился ваш генератор с осциллографом.

Жду с нетерпением проекта.

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

Joiner пишет:

Желающие будут :). Выкладывай. Хочу повторить.

Генератор с осцилоскопом очень понравился!

Заказал такую штуку

Думаю для этого неплохо подойдет.

[/quote]

Прикольный шилд.

А что там рядом с кнопкой, джойстик или энкодер или маленький потенциометр?

sansanych
Offline
Зарегистрирован: 23.08.2015

Похоже джойстик там, как на старых мобилах, типа семена С65. 4 позиции и нажатие.

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

sansanych пишет:

Похоже джойстик там, как на старых мобилах, типа семена С65. 4 позиции и нажатие.

Отличная вещь если джойстик!

Верх вниз регулировать скважность ШИМ можно.

Вправо-влево частоту.

ОК-переключать разряды регулировки частоты.

Joiner
Offline
Зарегистрирован: 04.09.2014

http://www.ebay.com/itm/272034213963?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Там джойстик, по типу аналоговой клавиатуры. Заказал у первого попавшегося продавца...но есть и у продавцов со званием "Лучший продавец" :)

А вот обзор, где я этот шилд увидел

http://www.youtube.com/watch?v=eUaS_m3E5TI

sansanych
Offline
Зарегистрирован: 23.08.2015

Нашел в своих железках и прозвонил подобный джойстик(не на шилде) - эквивалент 5 кнопок, 1 общий контакт и 5 выводов на замыкание.

Судя по картинке на шилде именно такого типа и стоит.

Joiner
Offline
Зарегистрирован: 04.09.2014

В ролике с утуба выше, есть схема этого шилда и джойстика.

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

Мной был проведен ПРЕДпоследний шаг по ускорению АЦП Ардуино.Видео  ниже.

Напомню какие были предприняты шаги ранее

--Прямыми настройками регистров был ускорен АЦП до 300 000 замерв в секунду.

--Поднята частота работы микроконтроллера с 16МГц до 27МГц что дало 600 000 замеров в секунду.

Следующим шагом получится перевалить за 1 000 000 сознаю ветку и начинаем с учетом ваших советов собирать!!!

https://www.youtube.com/watch?v=FqzYla3gIcg

 

Joiner
Offline
Зарегистрирован: 04.09.2014

Мне кажется....нужно еще сделать возможность  использовать устройство в качестве генератора или в качестве осцилоскопа. Буду ждать окончания разработки. Попробую повторить на своей печатке с припаянным микроконтроллером.

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

Joiner пишет:

Мне кажется....нужно еще сделать возможность  использовать устройство в качестве генератора или в качестве осцилоскопа. Буду ждать окончания разработки. Попробую повторить на своей печатке с припаянным микроконтроллером.

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

Joiner
Offline
Зарегистрирован: 04.09.2014

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

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

Joiner пишет:

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

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

Можно и просто Atmega328 использовать вместо ардуино, прошивка будет та-же только печатку развести нужно.

Joiner
Offline
Зарегистрирован: 04.09.2014

Понятно.. А я думал, что при совместной работе осцилоскоп и генератор немного мешают друг-другу.

Жду твой проект, буду делать.

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

Собрал все по генератору на страничке проекта

Вместо долгого описание снял видео!

https://youtu.be/EsuMn6RRrOg

По просьбам трудящихся возможны изменения в прошивке.

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

bodriy2014, а что ж вы о недостатках  вашего  генератора умолчали? Начиная от частоты примерно 2800Гц  отображаемая частота уже не соответствует той, что генерится фактически. Всё это из-за того, что таймер не может генерить произвольные частоты, а может только по целочисленным делителям тактовой частоты контроллера. Соответссно чем выше частота, тем больше получается минимальный шаг в регулировке. На 3х килогерцах шаг ещё немногим больше герца, на 10кГц -шаг уже где-то 10Гц, на 50кГц -шаг 300Гц, на100кГц шаг 1 кГц. А между 1МГц и 2 МГц вообще 4 шага.

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

dimax Привет.

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

Для правильной работы частот нужна именно та библиотека что я приложил, там кое что изменил под себя.

вот ситуация по погрешностям прибора, они связанны с тем что вы сказали по двум таймерам, но это все равно лучшее что можно получить за 4бакса(ардуино китай+дисплей китай)

погрешности 
-100Гц   выдает 101Гц   врет на 1
-1000Гц  выдает 106Гц   врет на 6
-2000Гц  выдает 2013Гц  врет на 13
-3000Гц  выдает 3021Гц  врет на 21
-4000Гц  выдает 4027Гц  врет на 27
-5000Гц  выдает 5034Гц  врет на 34
-10000Гц выдает 10067Гц врет на 67
-15000Гц выдает 15110Гц врет на 110
-20000Гц выдает 20135Гц врет на 135
-23000Гц выдает 23210Гц врет на 210

 

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

bodriy2014, не знаю, что могут улучшить 2 таймера, да и не столь важно это. Людей предупреждать нужно обо всех недостатках, я соббсно к этому )

PS: В моём генераторе отображаемая и фактическая частота соответствуют точно:)

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

dimax пишет:

bodriy2014, не знаю, что могут улучшить 2 таймера, да и не столь важно это. Людей предупреждать нужно обо всех недостатках, я соббсно к этому )

PS: В моём генераторе отображаемая и фактическая частота соответствуют точно:)

Я же написал, более мелкий шаг дают(почти тот что выставили)

Спасибо что предупредили(серьезно без сарказма.)

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

bodriy2014 пишет:

Для правильной работы частот нужна именно та библиотека что я приложил, там кое что изменил под себя.

Сравнил свою библу pwm, и из вашего архива -они идентичны. С маленькой разницей, что в файле BTIMERDEFS.CPP вставлен вот такой блок:

//--------------------------------------------------------------------------------
//							8 Bit Timer Functions
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
//--------------------------------------------------------------------------------

Я дважды перепроверил -отличаются только этим :)

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

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

В видео я говорил что это вторая прошивка первую так и не нашел, так вот я на осциллографе хорошем точном проверял только первую версию из поста №1.

То что выложил пост №15 вторая версия писал по памяти и еще не проверял.((

 

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

bodriy2014, я вам и без проверки могу точно сказать для любой частоты. К примеру запросите 70кГц -генератор даст либо 69.565 либо 70.175   В принципе в  #16  уже описал суть. Чем выше частота -тем больше "пробелы" в генерируемых частотах. Можно сделать "распечатку" всех высоких частот, которые может сгенерить ардуина таймером :

uint16_t n;
void setup() {
Serial.begin(9600); 
}
void loop() {
Serial.print(F_CPU/2/(n+1));
Serial.println(" Hz");
delay(500);
n++;  
  }

Что вы там делали с двумя таймерами что б уменьшить шаг - для меня пока загадка.

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

Всем С Новым Годом! Здоровья и денег! :)
Уважаемый Joiner, собирали ли вы какой прибор на том Nokia-LCD/Joystick шилде, который сдесь выше упомнинали? Если да, можете поделитса всякими техническими подробностями? Заранее Спасибо!

Joiner
Offline
Зарегистрирован: 04.09.2014

Juris пишет:

Всем С Новым Годом! Здоровья и денег! :)
Уважаемый Joiner, собирали ли вы какой прибор на том Nokia-LCD/Joystick шилде, который сдесь выше упомнинали? Если да, можете поделитса всякими техническими подробностями? Заранее Спасибо!

Купил два таких шилда, один подарил, другой валяется где-то в ящике. Шилд не впечатлил. Очень не понравилась неприятно-синяя подсветка монитора, не понравилось, что на мониторе во время работы появляется какой-то мусор в виде пикселов, которые сами по себе появляются. Задумка шилда неплохая. Очень понравился джойстик на 5 положений, на котором реализована аналоговая клавиатура (компактно заменяет 5 кнопок), понравилилось как сделаны выводы (на каждый пин комплект +5в и GND). Но вот дисплей все испортил.

Ни чего на шилде не делал.

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

Спасибо, Joiner, понятно :)

spektr
Offline
Зарегистрирован: 30.01.2017

Добрый день! а чтобы форму импульсов менять сделать можно ?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Нет. Нужно взять другой микроконтроллер, в котором есть ЦАП.

Александр Спицын
Offline
Зарегистрирован: 06.03.2017

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

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

Александр Спицын пишет:

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

Вот отличный генератор сигралов и на первых старницах автор для кого-то уже делал такое.

Отправляешь частоту в ком порт, а ардуино ее генерирует.

http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-a...

Александр Спицын
Offline
Зарегистрирован: 06.03.2017

Спасибо , сейчас посмотрю

Александр Спицын
Offline
Зарегистрирован: 06.03.2017
помогите разобраться со скетчем, если я правильно понял , то тут описана работа генератора?
//Моя версия генератора сигналлов, разработанна для рабочих целей.
//Страница проэкта  http://srukami.inf.ua/signalgenerator.html
#include <PWM.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#define led  9   //пин для генератора сигналов (не менять)
//#################№№№№№№####пользовательские настройки
#define levo 10  //кнопка ЛЕВО(можно любой пин)
#define ok 11    //кнопка ОК(можно любой пин)
#define pravo 12 //кнопка ПРАВО(можно любой пин) 
Adafruit_PCD8544 display = Adafruit_PCD8544(2, 3, 4, 6, 7);//пины к которым у вас подключен дисплей          
int PWM = 100;//стартовое значение ШИМ от 0 до 255        
int32_t frequency = 6000; //стартовое значение частоты в Гц
byte cont=40;//контрастность дисплея
//###########################################################
Александр Спицын
Offline
Зарегистрирован: 06.03.2017
здесь уже вывод на дисплей сигналов?
byte hag=0;
int mnog=0;
boolean flag=0;
byte mass[85];
byte x=0;     
void setup(){
InitTimersSafe(); 
display.begin();
display.setContrast(cont);
display.display();
ADCSRA = 0b11100010;
ADMUX = 0b01100100;
bool success = SetPinFrequencySafe(led, frequency);
delay(50);
      }
      
void Zamer(){
  for(byte i=0;i<84;i++){ 
  while ((ADCSRA & 0x10)==0);
  ADCSRA|=0x10;
  mass[i]=ADCH;
  }
}
void Zamer1(){
  for(byte i=0;i<84;i++){ 
  while ((ADCSRA & 0x10)==0);
  ADCSRA|=0x10;
  mass[i]=ADCH;
  delayMicroseconds(5);
  }
}
void Zamer2(){
  for(byte i=0;i<84;i++){ 
  while ((ADCSRA & 0x10)==0);
  ADCSRA|=0x10;
  mass[i]=ADCH;
  delayMicroseconds(50);
  }
}
 

 

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

Александр Спицын нет

arDubino
Offline
Зарегистрирован: 12.01.2017

я просто не пойму в чем смысл рисования сигналов на экране?!!

градуировки там все равно нет. реального сигнала там тоже нет.

дял чего все ЭТО?!! :))))) ну бежит там какой то сигнал и что?!! какую информацию то он вам в мозг дает?!!

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

igan
Offline
Зарегистрирован: 03.07.2017

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

подскажите пожалуста где в вашем скетче поменять А4 на А3. 

всё перелазил на так и не нашол.

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

и ещё подскажите, библиотеки Adafruit_GFX_Library от My_SignalGenerator и PULTOSCOPE_LCD5110_final2_DDS_Z отличаются?

я пытаюсь залить прошивку генератора на плату пультоскопа в финальной версии, изображенте нет. Arduino pro mini 328,3v, 8MHz. кнопки подправил, а остальное кроме входа осацила вроде одинаково. и АКБ 5V показывает (врёт) float Vcc выставил по мультиметру 3.31v .

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

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

igan пишет:

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

подскажите пожалуста где в вашем скетче поменять А4 на А3. 

всё перелазил на так и не нашол.

.....

Эта строка.

ADMUX = 0b01100100;

igan
Offline
Зарегистрирован: 03.07.2017

спасибо, хоть и туманно. буду курить гугла.

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

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

igan пишет:

спасибо, хоть и туманно. буду курить гугла.

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

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

Чтоб сменить А4 на А3

Нужно эту строку

ADMUX = 0b01100100;

Заменить на эту.

ADMUX = 0b01100011;

igan
Offline
Зарегистрирован: 03.07.2017

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

вы ответили правельно, это в моих понятиях туманно, но свет в переди)))

что-то я могу найти в гугл, а если не найду, тогда уж спрашивать придётся.

но всёровно огромное спасибо за ответ.

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