Как я делаю печатные платы с фоторезистом. Простой таймер на PIC16F628A

Я взял на вооружение многие из описанных им методик, в частности, нанесение фоторезиста «мокрым» методом, использование ламинатора, а также канцелярских зажимов. Но больше всего в видео меня поразила лампа из ультрафиолетовых светодиодов с таймором. Такая лампа засвечивает фоторезист за 21 секунду, тогда как у меня при использовании настольной лампы с УФ-лампочкой на это уходит 15 минут , и это еще если фоторезист свежий. В общем, я захотел себе такое же устройство. Далее будет описан процесс его изготовления и полученные результаты.

Важно! Смотреть на ультрафиолет не полезно для глаз . Не советую делать это слишком долго, а в идеале рекомендую использовать соответствующие защитные очки.

Почему бы просто не взять готовое?

Дмитрий описал свой проект в небольшой статье и выложил все исходники на GitHub . Однако Дмитрий разводил плату в Sprint Layout, который стоит денег. Меня не сильно прельщала перспектива покупки и изучения данного ПО, особенно учитывая, что оно не поддерживает используемый мной на десктопе Linux. Кроме того, не похоже, чтобы Sprint Layot чем-то превосходил кроссплатформенный и открытый KiCad .

Плюс к этому мне лично не сильно понравился внешний вид устройства Дмитрия. Впаивать Arduino Nano, использовать громоздкий экранчик 1602 и строить сэндвич из нескольких плат разного размера мне не хотелось. Уж если и делать какое-то устройство в домашних условиях, почему бы не сделать его таким, как нравится именно тебе, верно?

В общем, я прикинул, что это достаточно прикольный и не сложный проект, который мне проще повторить с нуля. И действительно, на изготовление устройства у меня ушло всего лишь несколько вечеров. Плюс к этому, в процессе родился занятный побочный проект. Так что, о принятом решении мне жалеть не пришлось.

x 10

Ультрафиолетовые светодиоды довольно просто найти на eBay. Лично я покупал . Пакетик с сотней светодиодов вместе с доставкой обошелся мне в 220 рублей (3.90$).

Светодиоды я решил расположить в виде матрицы 10 на 10, рассчитанной на питание от 5 В. Плата была без труда разведена в KiCad. В каждом из рядов был использован один резистор для ограничения тока и 10 светодиодов, соединенных параллельно. Сопротивление резистора было подобрано так, чтобы светодиоды светили достаточно ярко, а резистор при этом не перегревался. Я остановился на сопротивлении 27 Ом.

Вот что у меня получилось в итоге:

Плата имеет размер 10 x 15 см. В обозримом будущем я вряд ли буду делать платы бо льшего размера, а значит такая матрица сможет равномерно засветить любую из моих поделок. Углы у платы пришлось немного подрезать, так как иначе она не помещалось в моей ультразвуковой отмывочной ванне. Да и то, плату пришлось класть в ванну ребром, отмывая ее сначала с одной стороны, затем со второй. Так что, да, сейчас для меня 10 x 15 см — это предел.

В данной статье опубликована схема таймера обратного отсчета времени на 59 минут 59 секунд. Схема таймера времени собрана на микросхеме Atmega8. В данной статье представлено два варианта, печатная плата в DIP28 корпусе и печатная плата в TQFP32 корпусе микроконтроллера. Схемы одинаковые, отличаются только корпусом микросхемы, выбирайте и собирайте любую печатную плату.

Также хотел еще отметить, печатная плата разведена под дисплей 0802 на контроллере HD44780. Можно установить дисплей 1602, только придется переделывать печатную плату под него или крепить его навесным монтажом (забегу наперед, прошивки для 0802 и 1602 имеются).

Таймер имеет четыре независимых и настраиваемых установки времени, которые можно использовать для различных ситуаций, не настраивая постоянно время.

Данный таймер может использоваться для засветки фоторезиста и паяльной маски. Также, если вам подходит диапазон времени таймера 59 минут 59 секунд, то смело можно использовать этот таймер для каких то других своих нужд.

Схема таймера

Печатная плата таймера времени

Печатная плата таймера обратного отсчета времени в DIP28 корпусе.

Верхняя сторона.

Нижняя сторона.

Печатная плата таймера обратного отсчета времени в TQFP32 корпусе.

Верхняя сторона.

Нижняя сторона.

Алгоритм работы с таймером времени

1. После прошивки микроконтроллера, чтобы в память записались нужные значения времени, на выключенном устройстве зажимаем кнопку на энкодере и включаем питание. После того, как на дисплее появится надпись "Ок! ", отпускаем кнопку энкодера и таймер готов к своей работе.

2. Чтобы установить время, выбираем нужную установку времени поворотом энкодера, нажимаем длительно на кнопку энкодера. После этого на дисплее начнут мигать показания секунд. Поворотом энкодера настраиваем нужное количество секунд.

Чтобы выйти из настройки времени, нажимаем длительно кнопку энкодера и ждем сообщения "Ок! ", отпускаем кнопку. Время в данной установке можно считать настроенным. Тоже самое делаем с оставшимися тремя установками времени.

3. Запуск таймера производится коротким нажатием кнопки энкодера, появится надпись "Timer ! ", это значит, что таймер готов к отсчету, повторное короткое нажатие запустит отсчет времени и на дисплее появится надпись "

Таймер во время отсчета можно остановить, для этого нужно нажать коротко на кнопку энкодера, таймер остановится и на дисплее появится надпись "Timer P " (нагрузка отключится) и будет мигать светодиод, чтобы продолжить отсчет, нажимаем опять коротко на кнопку энкодера и отсчет времени продолжится (нагрузка включится).

Также можно отменить отсчет времени. Для этого нужно во время отсчета или во время паузы нажать длительно на кнопку энкодера, на дисплее появится надпись "End! " и произойдет отключение нагрузки. После отпускания кнопки, таймер перейдет в главное меню.

4. По окончании отсчета времени на экране появится надпись "End! ", будет мигать светодиод и издавать сигнал бузер и произойдет отключение нагрузки. Чтобы отключить бузер и перейти в главное меню, нужно нажать коротко или длительно (не важно) кнопку энкодера.

Хотел еще дополнить, надписи могут отличаться в зависимости от выбранной прошивки, но суть настройки и использования таймера при этом не меняются.

Работа таймера времени

Видео работы таймера для засветки фоторезиста и паяльной маски.

В данном видео показан алгоритм работы и настройки времени данной схемы таймера. Схема собрана на макетной плате для демонстрации.

Еще одно видео работы данной схемы таймера для засветки с подключенной нагрузкой.

Хотел отметить, это первая версия таймера и в ней нет бузера, поэтому по окончании отсчета времени не слышно сигнала.

Читайте статьи на сайте первоисточнике, не поддерживайте воров.

Фото таймера времени обратного отсчета

Приведу несколько фото собранной платы таймера для засветки. Здесь первая версия без бузера, прошу не обращать на это внимания.

Скачать схему таймера времени

Прошивки представлены в нескольких вариантах для дисплеев 0802 и 1602. С латиницей и кириллицей, также имеются прошивки с реверсом поворота энкодера. Если вам не удобно крутить его в каком то направлении, выбирайте реверсную или дефолтную прошивку.

Заключение

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

Вывод PC4 для удобства выведен на отдельный разъем на плате таймера XT2. Как этот сигнал использовать или не использовать для каких то своих нужд, решайте сами, главное он есть, нужен не нужен - это другой вопрос.

Возникнут вопросы, задавайте их в комментариях, не бегайте по интернету в поисках ответа, по крайней мере это не уважение к автору.

На этом заканчиваю, все ровного отсчета времени.

Это устройство появилось на свет "по быстрому" после нескольких загубленных заготовок плат с фоторезистом. Устройство очень простое - это таймер, позволяющий включать ультрафиолетовые лампы на время от 5 секунд до 9 минут 55 секунд (у меня типичное время засветки с четырьмя лампами Vito 8W составляет полторы минуты). Еще не экспериментировал с маской, но надеюсь и ей времени хватит.
Работа с таймером начинается с нажатия кнопки SET (вход в режим установки). Далее кнопками +/- устанавливаем желаемое время. Если более 5 секунд ничего не нажимать, устройство воспринимает это как окончание ввода и сохраняет в энергонезависимую память установленное время. При этом на экране отображается соответствующий знак. Далее устройство переходит в режим ожидания, отображая установленное время в формате "минут.секунд".
При нажатии кнопки START происходит активация реле и включаются лампы. Начинается обратный отсчет времени. Процесс можно наблюдать на экране. По завершению установленного отрезка времени таймер автоматически обесточивает лампы и отображает на экране прочерки - знак успешного завершения цикла. Из этого состояния он выводится нажатием любой кнопки.
В архиве прилагаю плату и прошивку для контроллера. Индикатор обычный, светодиодный с общим катодом. Плата потребляет в дежурном режиме около 15мА, при включенном реле около 60мА (зависит от применяемого реле).
Для запитки ламп можно применить стандартные дроссели с пускателями, но я применил платы от экономных ламп малой мощности. Даже если купить новые "экономки" получается дешевле, чем купить дроссели. Да и места занимают они меньше и старт ламп происходит практически моментально.
Корпус сделал из обрезков мебельных ДСП, внутри в качестве отражателя применил обычную пищевую фольгу. В качестве креплений для ламп использовал держатели для пластиковых труб. Плата электроники питается от маломощного трансформатора (из китайского радиоприемника).

Выглядит это так:

Собранное устройство выглядит очень просто:

И собственно как выглядят лампы внутри:

В дополнение плата и прошивка контроллера:

Прошивка с дискретностью установки таймера в 5 секунд.

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

Преимущество такого подхода в том, что не требуется обновлять сегменты все время, на самом деле надо просто заполнить данные в регистрах и все. Это приводит к тому что дисплей начинает ярче светиться, устраняется эффект мерцания и освобождаются ресурсы микроконтроллера, которые могут быть доступны для другой, более важной работы. Кроме того, только три линии данных нужны чтобы контролировать этот дисплей, что очень полезно, если мы не имеем достаточно портов ввода/вывода. Обратная сторона такого подхода заключается в том, что сегменты потребляют больше тока, чем в мультиплексном режиме. На схеме вы также можете увидеть пьезозуммер, стабилизатор напряжения (220В -> 5В) и реле.

Сегменты связаны хаотично и это потому, что печатную плату проще таким образом развести. Вы можете подключить сегменты так, как вам нравится, но в "таблицу сегментов" в исходном коде должны быть внесены соответствующие изменения.

Управление устройством:
- Две кнопки используются для установки времени обратного отсчета с 10 секунд шагом;
- Третья кнопка (старт/стоп) для запуска и остановки;
- Когда отсчет завершается таймер выключает нагрузку и включает звуковой сигнал;
- Первый две кнопки отключены во время процедуры обратного отсчета;
- Последнее установленное время сохраняется в EEPROM. EEPROM будет хранить настройки после выключения питания и при включении питания таймер будет отображать ранее сохраненное время;
- Микроконтроллер будет уходит в режим сна после двух минут бездействия, а потребляемый ток снижается до менее чем 5 мА;
- Нажав на кнопку старт/стоп, он будет просыпаться.

Установка фьюз битов микроконтроллера

Архив для статьи "Таймер для засветки фоторезиста на Attiny2313"
Описание: Исходный код(Bascom), файл прошивки микроконтроллера, проект Proteus, печатные платы Eagle
Размер файла: 298.48 KB Количество загрузок: 1 068

Недавно решил освоить технологию фоторезистивного изготовления плат и для этого мне понадобилась УФ лампа с таймером. Конечно, можно было бы найти готовый проект и спаять, но мне хотелось не просто сделать таймер, а получить целый багаж знаний и опыта. Критерии к таймеру были таковы: индикация времени, удобный интерфейс и простота. В качестве основы решил использовать микроконтроллер, а именно - Attiny 13. Список всех необходимых компонентов для создания таймера вы можете наблюдать в таблице под этой статьей. Так как у Attiny 13 всего 8 ножек из которых 5 портов ввода-вывода – было решено использовать микросхемы сдвига регистра (74HC595) для вывода времени на индикаторы. Ещё нужно подключить кнопки управления наиболее компактно и для решения этой задачи воспользуемся одним интересным решением – будем использовать АЦП микроконтроллера (суть решения описана ниже). В итоге на свет вырисовывается вот такая схема:

Вам может быть непонятно подключение кнопок, расскажу: с помощью делителей напряжения (резисторы R14...R16) при замыкании конкретной кнопки (S1, S2 или S3) на вход микроконтроллера подаётся определенный уровень напряжения, который распознается АЦП и в зависимости от его уровня микроконтроллер понимает какую кнопку мы нажали. R12 и C1 – RC фильтр помех, так как при нажатии кнопок - возникает дребезг контактов и микроконтроллер может ошибочно воспринять не одно, а больше нажатий. Резистор R13 нужен для подтяжки входа АЦП при отжатых кнопках, что бы МК не воспринимал помехи.

Теперь об индикаторе, который, кстати, с общим катодом. Как видите - микроконтроллер управляет микросхемами сдвига регистра. Он посылает последовательный код чисел по двум ножкам, а по третьей – частоту тактирования. Микросхема сдвига регистра U3 – отвечает за разряд индикатора, на который выводится цифра, а U2 – за ввод самих цифр в разряды. Выводятся цифры последовательно. То есть: определили микросхему U3 на вывод числа в 1-й разряд индикатора, а регистр U2 в это время подает на включенный разряд индикатора код самой цифры, после - микросхема U3 включает 2-й разряд индикатора, а микросхема U2 выводит следующую цифру в выводимом числе. Подобным образом выводятся цифры на остальные разряды. Так как частота перебора разрядов достаточно велика – в итоге мы увидим единое, будь то 4-х или, например, 2-х значное число.

Управлять УФ светодиодной матрицей будем с помощью полевого транзистора. Первый попавшийся мне под руку – IRF445H в корпусе SOIC8 выпаянный из платы старой видеокарты. Вы можете использовать любой другой транзистор, главное что бы он смог коммутировать чуть более 3-х ампер.

Поскольку светодиоды питаются напряжение около 3.3В, то нам понадобиться приспособить отдельный стабилизатор с током более 3А (так как у нас 100шт. светодиодов). В качестве такого стабилизатора я использовал DC-DC понижающий модуль MP1584 (обычные линейные стабилизаторы типа L7833 не подойдут в связи неспособностью обеспечить ток более 3А). Ввиду того, что наш модуль регулируемый, нужно выставить подстроечным резистором требуемый уровень напряжения и затем заменить этот резистор на аналогичный по сопротивлению постоянный. В моем случае я поставил два резистора соединённых последовательно: 5,1кОм и 22кОм:

Резистор R1 выполняет роль подтяжки вывода RESET иначе наша программа будет произвольно сбиваться при каждой помехе. Резисторы R4...R11 нужны для ограничения тока через светодиоды индикатора. Что ж остальное в схеме должно быть понятно.

Печатную плату и схему разводил в . Пришлось использовать 2-х сторонний текстолит с применением межслойных переходов (как их выполнить – покажу далее)

Что касается программного кода, то он просто набит комментариями, посему занимать время для пояснений не буду.

С теорией вроде всё.

Теперь переходим к практике:

Для начала зальем прошивку в наш микроконтроллер. Я воспользуюсь программой AVRDudeProg. Отмечу, что настройку фьюз-бит производить не нужно (просто установите их по умолчанию). Кстати, если вам интересно – я заливаю код с помощью дешёвого китайского программатора AVRASP в связке с самодельной отладочной платой:

После прошивки - изготовим основу нашего будущего устройства – печатную плату, а точнее платы, так как они будут размещаться друг над другом для экономии места.

Изготавливать буду по . Распечатаем-подготовим текстолит (я сниму окислы на меде с помощью канцелярского ластика) - что бы 2 слоя сошлись правильно – просверлим контрольные отверстия – утюжим – смачиваем - аккуратно стираем бумагу – проверяем на наличие обрывов или слипаний дорожек - если таковых не находим – начинаем травить плату (я буду травить в хлорном железе) – готово – опять же проверяем плату на дефекты – после, сверлим отверстия (замечу, что диаметр у некоторых отверстий разный – у отверстий для межслойных переходов – 0,4 мм, остальные отверстия – 0,6 и 1,0 мм) – отлично - если есть желание, плату можно залудить в сплаве розе - так она дольше прослужит. Теперь приступим к межслойным переходам. Изготавливать эти переходы мы будем следующим способом: Сначала сверлим отверстие, потом берём медную проволоку (провод) с диаметром равным диаметру просверленного отверстия и вставляем её туда так, чтобы из платы немного выделялись кончики проволоки:

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

При желании места межслойных переходов можно укрепить залудивши контактные площадки с 2-х сторон платы. Я решил немного заморочиться и покрыть плату паяльной маской. Вышло не очень, но переделывать не особо хочется:)

Как я уже упоминал ранее - платы будут размещаться одна над другой. Закреплены они будут с помощью металлических стоек. Для электрического контакта между платами (питание для светодиодов) - подготовим соединительный провод с разъемом и соответствующим штекером для платы (Можно, конечно, просто припаять):

Наши платы готовы, поэтому перейдём непосредственно к запайке компонентов. Начинать советую с мелких и труднодоступных элементов. Микросхемы в SMD исполнении можно паять как паяльником, так и феном. Лично мне удобнее паяльником. В итоге получилось что-то вроде этого:

Как видно из последнего фото - несколько светодиодов решило не светится, но это не играет особую роль поскольку все светодиоды соединены паралельно. Кстати номинал ограничительных резисторов (их 100шт для каждого светодиода) - 100-200 Ом.

Ну и напоследок соберем наше устройство в корпус в качестве которого буду использовать пищевой бокс. Вот окончательная конструкция:

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

Теперь о питании: запитывал блоком питания 12В 1А подключенным к разъему питания (диаметр 6мм) на плате. Так же есть возможность подключить питание к клеммнику справа от разъема.

После подключения питания устройство сразу начинает работать:

Вроде все объяснил. Если у вас возникнут какие-нибудь вопросы – пишите в комментариях

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
C1 Конденсатор 0.01 мкФ 1 SMD_0603 В блокнот
C2 Конденсатор 10 мкФ 1 SMD_1206 В блокнот
C3 Конденсатор 10 мкФ 1 SMD_1206 В блокнот
HG1 Светодиод FYQ-5641-AG 1 Семисегментный индидикатор с обшим катодом (0,56") В блокнот
Q1 Транзистор IRF445H 1 SOIC_8 В блокнот
R1, R3 Резистор

10 кОм

2 SMD_0603 В блокнот
R2 Резистор

3 кОм

1 SMD_0603 В блокнот
R4-R11 Резистор

100 Ом

8 SMD_0603 В блокнот
R12, R14, R15 Резистор

2 кОм

4 SMD_0603 В блокнот
R16 Резистор