Генератор

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#1

Сообщение DerAlex » 01.03.2016{, 08:33}

Представляю схему генератора с использованием скоростного счетчика в режиме управляемой линии задержки.Обратная связь замкнута через внешний инвертор.Второй инвертор служит для запуска генератора.Ожидалось , что частота будет стабильная , так как используются прерывание и внешний инвертор, но в некоторых положения переменного резистора явно слышна какая то нестабильность.У кого ни будь есть предложения по повышению стабильности частоты ?
Вложения
5578270.flp
(52.32 КБ) 44 скачивания
9301219.jpg
Последний раз редактировалось DerAlex 01.03.2016{, 08:35}, всего редактировалось 1 раз.
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#2

Сообщение DerAlex » 02.03.2016{, 07:31}

Посмотрел колебания.Фото выкладываю.
Вложения
5131803.jpg
6704606.jpg
8397486.jpg
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#3

Сообщение DerAlex » 02.03.2016{, 12:42}

Вложения
8853987.jpg
6167130.jpg
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#4

Сообщение DerAlex » 03.03.2016{, 05:24}

1143862.jpg
Последний вариант программы генератора . Без использования внешнего инвертора.Диапазон перестройки 190 гц - 900 гц.

Добавлено (03.03.2016, 05:24)
---------------------------------------------
Хочу обратиться с вопросом к автору программы.Есть возможность дополнить функцию линии задержки? Чтобы можно было организовать работу генератора без внешних связей.
Последний раз редактировалось DerAlex 02.03.2016{, 12:50}, всего редактировалось 1 раз.
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#5

Сообщение DerAlex » 06.03.2016{, 08:26}

Вложение 2998162.jpg больше недоступно
Удалось написать кодовый пользовательский блок ГЕНЕРАТОРА.Диапазон от 30 герц до 7812 герц.
В основном все происходило с использованием метода научного тыка , так как не силен в программировании.
На удивление блок работает и параметры соответствуют насколько мог об этом судить после наблюдения
за работой генератора  на китайском осциллографе.

Добавлено (06.03.2016, 00:49)
---------------------------------------------
За основу генератора взял программу ГЕНЕРАТОРА СТС вот отсюда .

http://easymcu.ru/publ/12-1-0-107

Генерация сигналов в режиме CTC.

Добавлено (06.03.2016, 08:26)
---------------------------------------------
Внимательно проверил работу генератора.Есть расхождения с прототипом.Во первых при максимальном коэффициенте деления 256 выходная частота 120 герц.
Во вторых - Коэффициент меняется с шагом 4.То есть ряд чисел 1-5-9-13-17-21-25-29-33 и так далее до 256. Непонятно где ошибка.
А вот по выходному сигналу претензий нет.Четкие прямоугольные импульсы со скажностью равной 2.На слух воспринимается как чистый тон меандра без
призвуков и биений.
Вложения
2998162.jpg
GENERATOR-CODE-.ubi
(16.56 КБ) 59 скачиваний
Последний раз редактировалось DerAlex 06.03.2016{, 00:42}, всего редактировалось 1 раз.
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#6

Сообщение DerAlex » 06.03.2016{, 08:31}

Вот фото с экрана осциллографа



Вложения
3668593.jpg
0398996.jpg
Последний раз редактировалось DerAlex 06.03.2016{, 08:38}, всего редактировалось 1 раз.
аврора

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Генератор

#7

Сообщение Airis » 06.03.2016{, 09:43}

Секция loop в Вашем блоке выполняет функцию преобразование диапазонов из стандартного диапазона аналогового входа 0-1023 в 0-255. То есть на вход можно подавать от 0 до 1023. И вооще-то это преобразование в данном блоке ненужно - кому надо будет что-то преобразовывать может это сделать наружным блокам Scale.
Секцию loop можно удалить, а вход In сделать типом byte.

Добавлено (06.03.2016, 09:43)
---------------------------------------------
В Секции loop наверно должно быть

Код: Выделить всё

OCR2A = IN;
Последний раз редактировалось Airis 06.03.2016{, 09:44}, всего редактировалось 1 раз.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#8

Сообщение DerAlex » 06.03.2016{, 13:47}

Спасибо Airis . Попробую разобраться.
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#9

Сообщение DerAlex » 06.03.2016{, 17:53}

Сделал исправления в блоке ГЕНЕРАТОР. На выходе прямоугольные импульсы .Частота выходная имеет 255 значений от 30 до 7812 герц.
Выходные импульсы должны обязательно выводиться с PIN 11.
Вложения
9983607.ubi
(18.09 КБ) 50 скачиваний
Последний раз редактировалось DerAlex 06.03.2016{, 17:56}, всего редактировалось 1 раз.
аврора

DWD
Лейтенант
Сообщения: 346
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Генератор

#10

Сообщение DWD » 06.03.2016{, 20:29}

А почему такая жёсткая привязка?
Изображение

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Генератор

#11

Сообщение Airis » 06.03.2016{, 20:42}

Цитата от автора образца данного генератора:
Для этого я использую вывод Digital с номером 11, который соответствует выводу OCR2A, то есть выводу Compare Match A таймера-счётчика 2.

Аватара пользователя
Kocтик
Рядовой
Сообщения: 75
Зарегистрирован: 07.09.2015{, 23:51}
Репутация: 0

Генератор

#12

Сообщение Kocтик » 06.03.2016{, 23:40}

DerAlex, Спасибо. Я неделю мучаю похожую тему никак. Изображение
К стати, если уменьшить коэффициент деления наверное можно поднять частоту.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#13

Сообщение DerAlex » 07.03.2016{, 06:01}

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

http://easymcu.ru/publ/12-1-0-107

Добавлено (07.03.2016, 05:11)
---------------------------------------------
Я этим генератором занимался в четыре ночи.Как у меня получилось сделать кодовый блок рассказать не могу.Буду разбираться чтобы хоть что то понять.
:D

Добавлено (07.03.2016, 05:50)
---------------------------------------------
=Поэтому чаще в нормальном режиме применяется второй метод, который состоит в том, по прерыванию в регистр
TCNTn записывается новое значение счётчика, и таким образом количество
частот, которые могут быть сгенерированы, увеличивается     
  / в 255 раз для 8-битных таймеров/
и в               /65535 раз для 16-битного таймера/.=

Добавлено (07.03.2016, 05:53)
---------------------------------------------
Нужно внимательно прочитать все о чем автор говорит в статье . Он добился очень интересных результатов. Может кому то из нас удастся повторить в FLProg .

Добавлено (07.03.2016, 06:01)
---------------------------------------------
Хочу также обратить ваше внимание на категорию раздела СКЕТЧИ ARDUINO на этом сайте . Можно найти много интересного.
Последний раз редактировалось DerAlex 07.03.2016{, 05:54}, всего редактировалось 1 раз.
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#14

Сообщение DerAlex » 09.03.2016{, 07:33}

0824225.flp
(97.49 КБ) 53 скачивания
Программа выдает ряд частот из 16 значений.Частоты равномерно распределены .

Добавлено (09.03.2016, 07:33)
---------------------------------------------
На Arduino Nano ,блок работает отлично.А вот на Меге совсем не работает.Кто ни будь сталкивался с подобным ?
Вложения
2204435.png
Последний раз редактировалось DerAlex 07.03.2016{, 12:22}, всего редактировалось 1 раз.
аврора

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

Генератор

#15

Сообщение Airis » 09.03.2016{, 08:22}

http://astro.neutral.org/arduino/arduin ... ency.shtml
Which Arduino Mega pins map to which registers in the ATMEL microcontroller?

The following table gives the Arduino pin number and the corresponding register for controlling the duty cycle

Arduino Pin Register
2 OCR3B
3 OCR3C
4 OCR4C
5 OCR3A
6 OCR4A
7 OCR4B
8 OCR4C
9 OCR2B
10 OCR2A
11 OCR1A
12 OCR1B
13 OCR0A
44 OCR5C
45 OCR5B
46 OCR5A
Последний раз редактировалось Airis 09.03.2016{, 08:23}, всего редактировалось 1 раз.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#16

Сообщение DerAlex » 09.03.2016{, 10:02}

Еще раз спасибо Airis за информацию.Сделал перевод компьютерный.Информация  ценная.
Вложения
Arduino_PWM.doc
(21.5 КБ) 55 скачиваний
аврора

Аватара пользователя
Kocтик
Рядовой
Сообщения: 75
Зарегистрирован: 07.09.2015{, 23:51}
Репутация: 0

Генератор

#17

Сообщение Kocтик » 09.03.2016{, 14:37}

Вот, попробуйте. Генератор на прерываниях.
Вложения
GEN-CODE-.ubi
(14.17 КБ) 62 скачивания

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#18

Сообщение DerAlex » 10.03.2016{, 08:37}

Отлично. Завтра соберу , подключу и опробую .
Хочу задать вопрос - Возможно работа одновременно трех таких генераторов?
Дело в том , что для 3D принтера нужно независимое движение по трем осям,так
мне кажется, может я заблуждаюсь.

Добавлено (10.03.2016, 06:13)
---------------------------------------------
Kocтик писал(а):Вот, попробуйте. Генератор на прерываниях.Прикрепления: GEN-CODE-.ubi(14Kb)
Наверное можно этот блок выложить в раздел БЛОКИ ПОЛЬЗОВАТЕЛЕЙ.

Добавлено (10.03.2016, 08:37)
---------------------------------------------
Блок работает но с небольшими оговорками.Пришлось удалить выход данных на дисплей и строку вычисления реальной частоты.При компиляции скетча выводилось несколько строк с ошибками.После удаления компиляциия и заливка прошла нормально.Генератор работает отлично.На слух практически незаметна дискретность изменения частоты.Больше проблем с переменным резистором задающим частоту.Нужен другой , более качественный.
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#19

Сообщение DerAlex » 10.03.2016{, 17:38}

8355308.ubi
(13.3 КБ) 41 скачивание
Вот программа .В блоке =GEN= удалил выход Fr и строку вычисления Fr.

Добавлено (10.03.2016, 17:38)
---------------------------------------------
Заменил переменный резистор энкодером. Использовал еще один
пользовательский блок ENCODER.Получился звуковой генератор.
На выходе D9 прямоугольные колебания.  Энкодер подключен
к D2 и D3. Кнопка энкодера подключена к D11.
Вложения
Encoder-CODE-.ubi
(117.59 КБ) 34 скачивания
4962687.jpg
4493278.flp
(78.22 КБ) 49 скачиваний
Последний раз редактировалось DerAlex 10.03.2016{, 17:54}, всего редактировалось 1 раз.
аврора

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 391
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 4
Откуда: Новосибирск

Генератор

#20

Сообщение DerAlex » 10.03.2016{, 17:56}

Схема соединений.
Вложения
2595786.jpg
аврора

Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость