Низкочастотный генератор прямоугольных импульсов с памятью

Может применяться для промывки топливных форсунок бензинового ДВС, соленоидных клапанов АКПП, для проверки работоспособности индивидуальных катушек зажигания и т.п. Выполнен на микроконтроллере и LCD-дисплее. Имеет возможность запоминать несколько режимов работы.

Генератор сигналов вещь бесспорно полезная в арсенале автолюбителя. Особенно, когда он там (в арсенале) действительно имеется, а не в теории. Я столкнулся с необходимостью в генераторе для прочистки топливных форсунок бензиновых авто, открытия форсунок дизеля CommonRail и промывки соленоидных клапанов АКПП. Нужен был генератор прямоугольных импульсов с регулируемой частотой и скважностью и с индикацией всего этого на дисплее. Кроме того, нужен «усиленный» выход для подключения нагрузки, мощнее частотометра. Как ни странно, но поиски готовых решений ни к чему толковому не привели — либо дорого, либо чрезмерно навороченный функционал. Пришлось как обычно, заново изобретать велосипед.

Тут конечно, кое-то может вякнуть типа: «Такой генератор можно сделать и на 555-ке». Конечно можно — бери и делай! А я хочу такой прибор, что-бы точные значения частоты и скважности можно было видеть глазами на дисплее, а не представлять в уме. А еще хочу, что-бы скважность регулировалась от 0 до 100% и при этом не зависела от регулировки частоты. Вообще это «косяк» всех «аналоговых» генераторов — значение скважности напрямую зависит от частоты. А еще хочу, что-бы была память на несколько заранее сохраненных предустановок. А еще я могу перечислить еще пару десятков преимуществ микроконтроллерного прибора. А так да, можно и на 555-ке. Чуть не забыл, ведь еще похожий прибор можно за «копейки» купить на АлиЭкспресс — удачи тебе «потребитель».

Основа схемы микроконтроллер ATmega8A в корпусе TQFP32, выбран с запасом, чтобы под конец разработки не споткнуться об недостаточное кол-во памяти или портов ввода/вывода. Подключение стандартное, АЦП не используется — к порту C подключен LCD-дисплей 16х2. Тактируется от внутреннего генератора — для «низкочастотника» вполне достаточно. Оба внешних прерывания заняты: INT0 – энкодер, INT1 – кнопки управления. Все кнопки управления «висят» на одном прерывании. Подтягивающие резисторы относительно низкого сопротивления для того, что-бы повысить помехоустойчивость прибора во время проверки высоковольтных катушек зажигания. Антидребезг контактов кнопок и энкодера реализован программно — как показала практика, толку от параллельных конденсаторов нет абсолютно никакого.

Выход генератора «умощнен» N-канальным MOSFET-ом и может напрямую подключаться к нагрузке — без реле по принципу «открытый коллектор». Да, именно «открытый коллектор», а не «открытый сток» как думают многие недоучки — это условное обозначение типа подключения дающее понимание о способе работы выхода на нагрузку. MOSFET следует использовать именно с логическим уровнем управления затвором (типа IRLZ44) — в схеме не предусмотрен драйвер для управления MOSFET-ом потому, что для такого «оченьнизкочастотного» генератора он просто не нужен.

На плате имеется индикация подачи питания и выходных импульсов. В схему встроен диод для защиты от переполюсовки и 5-вольтовый стабилизатор напряжения, благодаря которому устройство можно питать напряжением до 30V.

Плата двухсторонняя, изготовлена методом ЛУТ. Разведена таким образом, что-бы было возможно спаять без металлизации отверстий. В качестве межслойных соединений используется одножильный тонкий медный провод. Плата разведена в бесплатной версии DipTrace и на 100% бьет с схемой. Наконец-то я перестал лениться и освоил эту технологию — теперь можно вносить изменения в схему и они автоматом изменяются в плате. Функция несомненно удобная, но, как всегда, в DipTrace реализована через жопу.

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

Генерация частоты реализована программно в обработчике прерывания аппаратного таймера. Исходник в Bascom подробно прокомментирован и бесплатно доступен всем желающим. Верхняя частота генератора, чисто символически, ограничена 9999Гц потому, что больше не было нужно. Нижняя граница частоты пока ограничена 1Гц-ем, но в планах «опустить» ее до 0.1Гц — недавно возникла такая потребность (чтобы форсунки, ну прям, очень неторопливо попшикивали).

На LCD-дисплее одновременно отображаются две строки (дисплей-то 2-строчный):

  1. FREQ (частота, Гц)
  2. DURATION (насыщение, скважность, %)

Выбор строки осуществляется кнопкой энкодера и указывается символом «>». Значение выбранного параметра изменяется вращением энкодера. Для параметра FREQ значение изменяется с шагом 1Гц, для DURATION с шагом 10% (мне так удобно).

Красная кнопка (на схеме SB1) запускает или останавливает генерацию импульсов. При подаче питания на прибор, из памяти достаются последние сохраненные параметры частоты и скважности импульсов, но генерация не запускается. Так сделано для того, что-бы случайно не повредить подключенное устройство, не рассчитанное на предварительно сохраненные настройки.

Всего, в ПЗУ микроконтроллера организован массив на 5 предустановок. Ограничение чисто символическое и может быть практически бесконечным. Выбор нужной осуществляется «белыми» кнопками SB2 и SB3 «по кругу», т.е. после пятой предустановки будет первая. Значения параметров частоты и скважности в каждой выбранной предустановке сразу отображаются на дисплее. Их можно корректировать и «пересохранить» в ту же предустановку одновременным нажатием кнопок SB2 и SB3.

Обновление от 28.09.2020 — версия устройства 2.2 изготовлена на заводской плате. Теперь такую поделку не стыдно людям показывать. Отправил Китайцам исходники платы и список компонентов — Китайцы изготовили платы, напаяли почти все компоненты и выслали мне пару десятков почти готовых устройств. Мне остается только допаять недостающее и залить прошивку. Так что, если кому вдруг понадобится — есть готовые устройства, а также отдельные платы для самостоятельной сборки.

Что нового в версии 2.2:

  • В схему добавлен автомобильный предохранитель на «силовой» выход «+12V» на случай, если его случайно замкнуть на массу.
  • Печатная плата адаптирована под заводское производство: нанесена маркировка компонентов и выводов, увеличено количество переходов. Но плата по прежнему годится для самостоятельного изготовления.

Еще пара «боевиков» демонстрирующих работу генератора на новой версии платы:

Скачать файлы последней версии 2.2 проекта одним архивом.

По просьбе читателей, пытающихся самостоятельно повторить данный проект, выкладываю «скрины» прошивки «фьюзов» в BASCOM и AVRDUDE. Для тех, кто как я, прошивает из BASCOM — «фьюзы» уже внедрены в HEX и достаточно просто залить его в МК, программатор сам выставит все, что нужно. Лично мне очень нравится эта «опция» — потребителю не надо ломать голову, пытаясь разгадать этот ребус. Все остальные — смотрим на картинку «аврчувак».