Все о создании таймера для засветки фоторезиста на ATtiny13 с использованием УФ лампы. Инструкция по сборке и программированию микроконтроллера.
Недавно решил освоить технологию фоторезистивного изготовления плат и для этого мне понадобилась УФ лампа с таймером. Конечно, можно было бы найти готовый проект и спаять, но мне хотелось не просто сделать таймер, а получить целый багаж знаний и опыта. Критерии к таймеру были таковы: индикация времени, удобный интерфейс и простота. В качестве основы решил использовать микроконтроллер, а именно — 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 нужны для ограничения тока через светодиоды индикатора. Что ж остальное в схеме должно быть понятно.
Печатную плату и схему разводил в DipTrace. Пришлось использовать 2-х сторонний текстолит с применением межслойных переходов (как их выполнить — покажу далее)
Что касается программного кода, то он просто набит комментариями, посему занимать время для пояснений не буду.
С теорией вроде всё.
Теперь переходим к практике:
Для начала зальем прошивку в наш микроконтроллер. Я воспользуюсь программой AVRDudeProg. Отмечу, что настройку фьюз-бит производить не нужно (просто установите их по умолчанию). Кстати, если вам интересно — я заливаю код с помощью дешёвого китайского программатора AVRASP в связке с самодельной отладочной платой:

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


Далее прессуем ударами молотка провод и так мы получаем гладкую поверхность и почти незаметный межслойный переход.

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

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

Далее нужно изготовить плату УФ прожектора. Там все аналогично, за исключением отсутствия межслойных переходов (так же я решил покрыть дорожки платы сплавом Розе):

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

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




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


Как видите, я ещё предусмотрел охлаждение УФ матрицы, потому что засветка паяльной маски — процес длительный (занимает около часа, а то и больше) за который светодиоды неплохо так нагреваются.
Теперь о питании: запитывал блоком питания 12В 1А подключенным к разъему питания (диаметр 6мм) на плате. Так же есть возможность подключить питание к клеммнику справа от разъема.
После подключения питания устройство сразу начинает работать:

Вроде все объяснил. Если у вас возникнут какие-нибудь вопросы — пишите в комментариях
Скачать список элементов (PDF)
Прикрепленные файлы:
- Timer on Attiny13.rar (5099 Кб)