Страница 1 из 2

Генератор

Добавлено: 01.03.2016{, 08:33}
DerAlex
Представляю схему генератора с использованием скоростного счетчика в режиме управляемой линии задержки.Обратная связь замкнута через внешний инвертор.Второй инвертор служит для запуска генератора.Ожидалось , что частота будет стабильная , так как используются прерывание и внешний инвертор, но в некоторых положения переменного резистора явно слышна какая то нестабильность.У кого ни будь есть предложения по повышению стабильности частоты ?

Генератор

Добавлено: 02.03.2016{, 07:31}
DerAlex
Посмотрел колебания.Фото выкладываю.

Генератор

Добавлено: 02.03.2016{, 12:42}
DerAlex

Генератор

Добавлено: 03.03.2016{, 05:24}
DerAlex
1143862.jpg
Последний вариант программы генератора . Без использования внешнего инвертора.Диапазон перестройки 190 гц - 900 гц.

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

Генератор

Добавлено: 06.03.2016{, 08:26}
DerAlex
Вложение 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.На слух воспринимается как чистый тон меандра без
призвуков и биений.

Генератор

Добавлено: 06.03.2016{, 08:31}
DerAlex
Вот фото с экрана осциллографа




Генератор

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

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

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

OCR2A = IN;

Генератор

Добавлено: 06.03.2016{, 13:47}
DerAlex
Спасибо Airis . Попробую разобраться.

Генератор

Добавлено: 06.03.2016{, 17:53}
DerAlex
Сделал исправления в блоке ГЕНЕРАТОР. На выходе прямоугольные импульсы .Частота выходная имеет 255 значений от 30 до 7812 герц.
Выходные импульсы должны обязательно выводиться с PIN 11.

Генератор

Добавлено: 06.03.2016{, 20:29}
DWD
А почему такая жёсткая привязка?

Генератор

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

Генератор

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

Генератор

Добавлено: 07.03.2016{, 06:01}
DerAlex
=Использование микроконтроллера 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 на этом сайте . Можно найти много интересного.

Генератор

Добавлено: 09.03.2016{, 07:33}
DerAlex
0824225.flp
(97.49 КБ) 87 скачиваний
Программа выдает ряд частот из 16 значений.Частоты равномерно распределены .

Добавлено (09.03.2016, 07:33)
---------------------------------------------
На Arduino Nano ,блок работает отлично.А вот на Меге совсем не работает.Кто ни будь сталкивался с подобным ?

Генератор

Добавлено: 09.03.2016{, 08:22}
Airis
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

Генератор

Добавлено: 09.03.2016{, 10:02}
DerAlex
Еще раз спасибо Airis за информацию.Сделал перевод компьютерный.Информация  ценная.

Генератор

Добавлено: 09.03.2016{, 14:37}
Kocтик
Вот, попробуйте. Генератор на прерываниях.

Генератор

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

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

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

Генератор

Добавлено: 10.03.2016{, 17:38}
DerAlex
8355308.ubi
(13.3 КБ) 73 скачивания
Вот программа .В блоке =GEN= удалил выход Fr и строку вычисления Fr.

Добавлено (10.03.2016, 17:38)
---------------------------------------------
Заменил переменный резистор энкодером. Использовал еще один
пользовательский блок ENCODER.Получился звуковой генератор.
На выходе D9 прямоугольные колебания.  Энкодер подключен
к D2 и D3. Кнопка энкодера подключена к D11.

Генератор

Добавлено: 10.03.2016{, 17:56}
DerAlex
Схема соединений.