Генератор

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

Представляю схему генератора с использованием скоростного счетчика в режиме управляемой линии задержки.Обратная связь замкнута через внешний инвертор.Второй инвертор служит для запуска генератора.Ожидалось , что частота будет стабильная , так как используются прерывание и внешний инвертор, но в некоторых положения переменного резистора явно слышна какая то нестабильность.У кого ни будь есть предложения по повышению стабильности частоты ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DerAlex 01 мар 2016, 08:35, всего редактировалось 1 раз.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

Посмотрел колебания.Фото выкладываю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

У вас нет необходимых прав для просмотра вложений в этом сообщении.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

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

Добавлено (03.03.2016, 05:24)
---------------------------------------------
Хочу обратиться с вопросом к автору программы.Есть возможность дополнить функцию линии задержки? Чтобы можно было организовать работу генератора без внешних связей.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DerAlex 02 мар 2016, 12:50, всего редактировалось 1 раз.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение 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.На слух воспринимается как чистый тон меандра без
призвуков и биений.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DerAlex 06 мар 2016, 00:42, всего редактировалось 1 раз.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

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



У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DerAlex 06 мар 2016, 08:38, всего редактировалось 1 раз.
аврора
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Генератор

Сообщение Airis »

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

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

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

OCR2A = IN;
Последний раз редактировалось Airis 06 мар 2016, 09:44, всего редактировалось 1 раз.
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

Спасибо Airis . Попробую разобраться.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

Сделал исправления в блоке ГЕНЕРАТОР. На выходе прямоугольные импульсы .Частота выходная имеет 255 значений от 30 до 7812 герц.
Выходные импульсы должны обязательно выводиться с PIN 11.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DerAlex 06 мар 2016, 17:56, всего редактировалось 1 раз.
аврора
DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18 окт 2015, 13:51
Откуда: Кривой Рог

Генератор

Сообщение DWD »

А почему такая жёсткая привязка?
Изображение
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Генератор

Сообщение Airis »

Цитата от автора образца данного генератора:
Для этого я использую вывод Digital с номером 11, который соответствует выводу OCR2A, то есть выводу Compare Match A таймера-счётчика 2.
Аватара пользователя
Kocтик
Рядовой
Сообщения: 75
Зарегистрирован: 07 сен 2015, 23:51

Генератор

Сообщение Kocтик »

DerAlex, Спасибо. Я неделю мучаю похожую тему никак. Изображение
К стати, если уменьшить коэффициент деления наверное можно поднять частоту.
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение 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 на этом сайте . Можно найти много интересного.
Последний раз редактировалось DerAlex 07 мар 2016, 05:54, всего редактировалось 1 раз.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

2204435.png
Программа выдает ряд частот из 16 значений.Частоты равномерно распределены .

Добавлено (09.03.2016, 07:33)
---------------------------------------------
На Arduino Nano ,блок работает отлично.А вот на Меге совсем не работает.Кто ни будь сталкивался с подобным ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DerAlex 07 мар 2016, 12:22, всего редактировалось 1 раз.
аврора
Airis
Сержант
Сообщения: 175
Зарегистрирован: 24 сен 2015, 07:27

Генератор

Сообщение 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
Последний раз редактировалось Airis 09 мар 2016, 08:23, всего редактировалось 1 раз.
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

Еще раз спасибо Airis за информацию.Сделал перевод компьютерный.Информация  ценная.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
аврора
Аватара пользователя
Kocтик
Рядовой
Сообщения: 75
Зарегистрирован: 07 сен 2015, 23:51

Генератор

Сообщение Kocтик »

Вот, попробуйте. Генератор на прерываниях.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

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

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

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

Генератор

Сообщение DerAlex »

4962687.jpg
Вот программа .В блоке =GEN= удалил выход Fr и строку вычисления Fr.

Добавлено (10.03.2016, 17:38)
---------------------------------------------
Заменил переменный резистор энкодером. Использовал еще один
пользовательский блок ENCODER.Получился звуковой генератор.
На выходе D9 прямоугольные колебания.  Энкодер подключен
к D2 и D3. Кнопка энкодера подключена к D11.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось DerAlex 10 мар 2016, 17:54, всего редактировалось 1 раз.
аврора
Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06 сен 2015, 08:39
Откуда: Новосибирск

Генератор

Сообщение DerAlex »

Схема соединений.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
аврора
Ответить

Вернуться в «Таймеры»

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

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