• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Генератор на Ардуино

  • Автор темы Автор темы v1ct0r
  • Дата начала Дата начала

v1ct0r

СпецШирокПрофНоУзкПонятия
Почётный участник
Регистрация
13 Мар 2015
Сообщения
2,948
Реакции
102
Баллы
0
Генератор на Ардуино

Всех приветствую!
во времена первого локдауна делать особо было нечего - два раза в неделю появлялся на работе, решил я сделать эту игрушку :)) идея взята отсюда.
Запустил "на проводах" на столе, поигрался и забыл на время.
Прошедшим летом вспомнил, решил доработать.
Доработал схему, русифицировал прошивку, поигрался, надоело и опять забыл :)))
И вот на конец то решил все это безобразие запихать в какой ни будь корпус.
нашлась какая то коробка, от какого то проводного пульта, не известно от чего и получился довольно симпатичный приборчик.
оригинальная схема из первоисточника и внешний вид
 

Вложения

  • 0_dbaf6_2a797110_orig.webp
    0_dbaf6_2a797110_orig.webp
    37.7 KB · Просмотры: 94
  • 20211211_212757.webp
    20211211_212757.webp
    175.3 KB · Просмотры: 52
  • 20211211_212913.webp
    20211211_212913.webp
    122.7 KB · Просмотры: 52
  • 20211211_213109.webp
    20211211_213109.webp
    189.5 KB · Просмотры: 62
  • 20211211_213813.webp
    20211211_213813.webp
    143.2 KB · Просмотры: 62
  • 20211211_213953.webp
    20211211_213953.webp
    167 KB · Просмотры: 64
  • 20211211_214114.webp
    20211211_214114.webp
    186.5 KB · Просмотры: 61
Характеристики прибора:
- частота сигнал прямоугольника "ШИМ" от 1 Гц до 4 мГц
- заполнение ШИМ(скважность) от 0 до 100% с шагом 1%
- частота DDS генератора от 1 Гц до 200 кГц(в родной прошивке до 100) с шагом 1 Гц
- формы сигналов DDS генератора
синус
треугольник
меандр(при желании возможна замена на трапецию)
пила прямая
пила обратная
- напряжение от 0 до напряжения питания с точностью 1 мв
- частота до 8 мГц

Доработка схемы и прошивки заключается в следующем :
1. Удалены резисторы "подтяжки" кнопок и энкодера, подтяжка входов к "1"
выполнена программно встроенными в ардуино резистрами
2. Для увеличения нагрузочной способности выхода генератора в режиме DDS изменены
резисторы ЦАПа - уменьшены в 10 раз
3. После сборки схемы при перепрошивках приходилось освобождать вход D1
от резистора ЦАПа, т.к. он не позволял нормально прошивать контроллер
и было замечено, что наличие или отсутствие резисторов на D0 и D1 визуально
ни как не влияет на вид сигнала на экране осциллографа, поэтому было
принято решение убрать их совсем.
4. Были выполнены схемные решения повысившие удобство в работе с прибором
- оформлен единый вход для вольтметра и частотомера
- добавлена возможность плавной регулировки DDS сигналов
- для повышения чувствительности частотомера выхода DDS сигналов и
прямоугольника были развязаны по постоянному току и установлен переключатель
5. При экспериментах с вольтметром при умышленной подаче на один из входов
отрицательного напряжения ардуина была благополучно спалена :sv:
но потом успешно реанимирована, путем выжигания пробитого входа большим током.
Поэтому на оставшемся входе установлен резистор 1 мегом, который
не позволит вывести этот вход из строя.
Но нет худа без добра :) . Целесообразность в наличии 2 входов по напряжению
в этой игрушке на мой взгляд сомнительна. Вход был программно удален,
что позволило увеличить шрифт для индикации величины напряжения и позволило
обойтись одним входным гнездом и для вольтметра и для частотомера.
6. Путем соответствующих изменений в прошивке все надписи на экране русифицированы.
7. Для удобства смены режимов работы на панель прибора установлена кнопка сброс,
т.к. программная смена режимов не предусмотрена и выбор режима осуществляется
при включении или при сбросе прибора.
8. Частота сигналов DDS генератора программно увеличена со 100 до 200 кГц
9. В коде прошивки предусмотрена возможность в DDS генераторе на выбор при
прошивке установить желаемую форму сигнала меандр или трапеция
10.Питание прибора внешнее 5 вольт через ЮСБ гнездо, или 9 - 12 вольт
через дополнительное гнездо.
 
Возможно при отключении входа D5 в режиме частотомера от резисторов ЦАПа чувствительность частотомера еще увеличиться, но я не пробовал(лень :) ).
Сейчас его чувствительность 0 дб - 1 вольт амплитудное, без примененной доработки 2.5 вольта амплитудное.
конденсатор "не обязательно" я установил для удобства наблюдения сигналов осциллографом, можно не устанавливать
конденсатор ЦАПа 3n3 увеличен по емкости(это стало возможно благодаря развязке от D9) для лучшей формы сигналов DDS, его можно отключать для визуального сравнения сигнала на осциллографе, отключать его не обязательно, но он нужен.
Я не вижу возможности вставить в сообщение СПОЙЛЕР или скрытый текст, если есть такая возможность подскажите.
чтобы не вставлять "портянку" с кодом выложу прошивкув файлах, кому интересно скачает и посмотрит
Доработанная схема генератора
 

Вложения

  • прошивка.txt
    прошивка.txt
    22.8 KB · Просмотры: 57
  • Generator_v5.7z
    Generator_v5.7z
    5.4 KB · Просмотры: 37
  • генератор.webp
    генератор.webp
    39.5 KB · Просмотры: 72
Как я понял, на резисторах 100 и 200 Ом собран управляемый аттенюатор. Правильнее было бы нижнюю точку делителя не оставлять "висящей в воздухе", а через резистор 100 Ом посадить на корпус (как это и было сделано в исходной схеме). "Необязательный" конденсатор, всё же необходим, т.к. он отсекает постоянную составляющую из выходного сигнала. Если её там оставить, то ползунок потенциометра начнёт "шуршать", что приведёт к грязи в выходном сигнале.
С питанием тоже не всё до конца проработано. Вся прелесть подобных приборчиков в их автономности и отсутствии гальванической связи с питающей электросетью. Если делать питание внешним, то высока вероятность прохождения через прибор сквозных токов и, как следствие, выходу дорогостоящей аппаратуры из строя.
 
Как я понял, на резисторах 100 и 200 Ом собран управляемый аттенюатор.
это не аттенюатор, это ЦАП на резисторной матрице R-2R.
почему я его "упростил" я написал выше
3. После сборки схемы при перепрошивках приходилось освобождать вход D1
от резистора ЦАПа, т.к. он не позволял нормально прошивать контроллер
и было замечено, что наличие или отсутствие резисторов на D0 и D1 визуально
ни как не влияет на вид сигнала на экране осциллографа, поэтому было
принято решение убрать их совсем.
С питанием тоже не всё до конца проработано
согласен, что идеальным вариантом было бы автономное питание, но для этого нужен корпус больших габаритов, куда помимо аккумулятора надо будет впихнуть и контроллер заряда и DC-DC преобразователь чего не хотелось бы(а точнее лень этим заниматься, что попалось, туда и впихнул :)) ), если будет серьезная необходимость, то естественно этим следует заняться и сделать приборчик полностью автономным.
 
далее буду показывать осциллограммы некоторых режимов работы
1. "ШИМ" и "Заполнение Ширина" 50% осциллограммы идентичны
2. "Заполнение Ширина" 0%
3. "Заполнение Ширина" 1%
4. "Заполнение Ширина" 23%
5. "Заполнение Ширина" 82%
6. "Заполнение Ширина" 99%
7. "Заполнение Ширина" 100%
фото почему то все повернуло :(
 

Вложения

  • 20211211_214603.webp
    20211211_214603.webp
    127.5 KB · Просмотры: 44
  • 20211211_215356.webp
    20211211_215356.webp
    92.4 KB · Просмотры: 43
  • 20211211_215333.webp
    20211211_215333.webp
    106.6 KB · Просмотры: 45
  • 20211211_215245.webp
    20211211_215245.webp
    101.6 KB · Просмотры: 42
  • 20211211_215147.webp
    20211211_215147.webp
    93.6 KB · Просмотры: 38
  • 20211211_215059.webp
    20211211_215059.webp
    110.7 KB · Просмотры: 36
  • 20211211_214947.webp
    20211211_214947.webp
    116.9 KB · Просмотры: 40
Нашел наконец то малогабаритный переменный резистор с выключателем, подходящего номинала и привел схему в более вразумительный вид
В режиме частотомера S1 отключает D5 от резисторной матрицы ЦАПа, тем самым повышая чувствительность
 

Вложения

  • генератор+.webp
    генератор+.webp
    39.3 KB · Просмотры: 55
Последнее редактирование:
это не аттенюатор, это ЦАП на резисторной матрице R-2R.
Если ЦАП, то можно и в упрощенном варианте использовать.
Если уж так критично использование порта D5 для измерения частоты, то вместо него в ЦАП можно было задействовать D1. Использование выключателей питания в сигнальных цепях нежелательно.
 
Если уж так критично использование порта D5 для измерения частоты, то вместо него в ЦАП можно было задействовать D1
D1 и так задействован в ЦАП, просто я упростил схему ЦАП.
было замечено, что наличие или отсутствие резисторов на D0 и D1 визуально
ни как не влияет на вид сигнала на экране осциллографа, поэтому было
принято решение убрать их совсем.
 
осциллограммы генератора в режиме ШИМ, ниже 100кгц нет смысла показывать, там все нормально.
У осциллографа полоса 5мгц, поэтому выше 1мгц прямоугольник не осиливает
 

Вложения

  • 20211211_221302.webp
    20211211_221302.webp
    105.1 KB · Просмотры: 35
  • 20211211_221230.webp
    20211211_221230.webp
    71.6 KB · Просмотры: 36
  • 20211211_221100.webp
    20211211_221100.webp
    110.2 KB · Просмотры: 41
  • 20211211_220923.webp
    20211211_220923.webp
    99.8 KB · Просмотры: 42
  • 20211211_221138.webp
    20211211_221138.webp
    92.5 KB · Просмотры: 37
DDS генератор синус
по большому счету выше 130кГц это уже не синус даже с коррекцией С2


3гц.webp 400гц.webp



1000гц.webp 25кгц.webp



50кгц.webp 100кгц.webp


150кгц.webp 150-кгц.webp с отключенным С2




200кгц.webp 200-кгц.webp с отключенным С2
 
продолжение DDS генератор

показаны "треугольник", "меандр", "пила" на частоте 100 кГц с коррекцией С2 и без
на частотах менее 50 кГц разница с С2 и без почти не заметна, в звуковом диапазоне можно вообще обходиться без С2

треугольник+.webp треугольник-.webp



меандр+.webp меандр-.webp



пила1+.webp пила1-.webp



пила2+.webp пила2-.webp
 
последние осциллограммы режимов работы прибора.

частотомер и вольтметр

внешний сигнал частотой 20 кГц

частотомер.webp

напряжение 5 вольт


вольтметр1.webp


напряжение 1.5 вольта


вольтметр2.webp
 
Привет, не нашел в тексте с каким шагом можно менять частоту сигнала прямоугольника "ШИМ" от 1 Гц до 4 мГц. Так же, как и в генераторе DDS - 1 Гц?
 
частоту сигнала прямоугольника "ШИМ" можно выставить с точностью 1Гц примерно до 4кГц, потом шаг увеличивается, чем больше частота, тем больше шаг.
Если очень надо выставить с точностью до 1Гц, то до максимальной частоты DDS генератора, можно это сделать следующим образом - перейти в режим DDS, выставить частоту и вернуться в режим ШИМ
частоты выше предельной DDS точно выставить не получается
 
А в результате ваших экспериментов какой реальный шаг регулировки частоты ШИМ получался на частотах 400-500 кГц?? Если мне понадобится, например, выставить точно 420 кГц, то на сколько близко я смогу "угадать" эту частоту?
 
выставить точно 420 кГц, то на сколько близко я смогу "угадать" эту частоту?
в данном случае довольно точно :) 421.052кГц
вот с каким "шагом" выставляются на данном участке частоты в кГц
380.952
400.000
421.052
444.444
470.588
500.000
533.333
но если есть необходимость выставлять частоту очень точно, то можно применить "костыль"
перейти в режим DDS, выставить частоту и вернуться в режим ШИМ
максимальную частоту DDS можно задать в прошивке.
в какой строке прошивки это делается указанно в ее комментарии

похоже я в теме забыл указать, что для прошивки генератора нужно использовать Arduino IDE версии 1.6.х, на счет 1.7.х не знаю, а вот 1.8.х и старше применять нельзя точно
 
в данном случае довольно точно 421.052кГц
ну хоть так )

Хотя, конечно, придется прибегнуть к помощи "костыля"


похоже я в теме забыл указать, что для прошивки генератора нужно использовать Arduino IDE версии 1.6.х
вот это очень важное замечание!
 
С питанием тоже не всё до конца проработано. Вся прелесть подобных приборчиков в их автономности и отсутствии гальванической связи с питающей электросетью.
согласен, что идеальным вариантом было бы автономное питание, но для этого нужен корпус больших габаритов
Попала мне в руки использованная одноразовая электронная сигарета.
вытащил я из нее аккумулятор на 400мАч.
прикинул, что он прекрасно помещается в корпус моего генератора.
гонял часа 3, напряжение село до 3.9В, дальше не стал и так видно, что хватит еще как минимум на 3 часа, а то и на все 10, ток потребления 20мА.
т.е. автономность отличная у генератора.
установил выключатель в корпусе и подключил аккум. через него и последовательно 2 встречно параллельных диода, один обычный, через него аккум. заряжается, когда подключено внешнее питание и на шине питания ардуины присутствует 5В.
второй Шоттки, через который схема питается от аккумулятора.
Еще изменил немного схему. теперь можно менять уровень сигнала на выходе как с развязкой по постоянному току, так и без развязки.
так гораздо удобнее, не помню почему я сразу так не сделал.
доработанная схема прилагается
 

Вложения

  • генераторАрдуино+.webp
    генераторАрдуино+.webp
    47.6 KB · Просмотры: 27
Назад
Сверху