Паяем таймер и матрицу из УФ-светодиодов для быстрой засветки фоторезиста
19 февраля 2018
Уж не помню, каким именно образом, но однажды я наткнулся на замечательное видео Дмитрия Дементьева о том, как он делает печатные платы при помощи пленочного фоторезиста. Я взял на вооружение многие из описанных им методик, в частности, нанесение фоторезиста «мокрым» методом, использование ламинатора, а также канцелярских зажимов. Но больше всего в видео меня поразила лампа из ультрафиолетовых светодиодов с таймором. Такая лампа засвечивает фоторезист за 21 секунду, тогда как у меня при использовании настольной лампы с УФ-лампочкой на это уходит 15 минут, и это еще если фоторезист свежий. В общем, я захотел себе такое же устройство. Далее будет описан процесс его изготовления и полученные результаты.
Важно! Смотреть на ультрафиолет не полезно для глаз. Не советую делать это слишком долго, а в идеале рекомендую использовать соответствующие защитные очки.
Почему бы просто не взять готовое?
Дмитрий описал свой проект в небольшой статье и выложил все исходники на GitHub. Однако Дмитрий разводил плату в Sprint Layout, который стоит денег. Меня не сильно прельщала перспектива покупки и изучения данного ПО, особенно учитывая, что оно не поддерживает используемый мной на десктопе Linux. Кроме того, не похоже, чтобы Sprint Layot чем-то превосходил кроссплатформенный и открытый KiCad.
Плюс к этому мне лично не сильно понравился внешний вид устройства Дмитрия. Впаивать Arduino Nano, использовать громоздкий экранчик 1602 и строить сэндвич из нескольких плат разного размера мне не хотелось. Уж если и делать какое-то устройство в домашних условиях, почему бы не сделать его таким, как нравится именно тебе, верно?
В общем, я прикинул, что это достаточно прикольный и не сложный проект, который мне проще повторить с нуля. И действительно, на изготовление устройства у меня ушла лишь пара вечеров.
Матрица из ультрафиолетовых светодиодов 10x10
Ультрафиолетовые светодиоды довольно просто найти на AliExpress. Пакетик с сотней светодиодов вместе с доставкой обошелся мне в 220 рублей (3.90$).
Светодиоды я решил расположить в виде матрицы 10 на 10, рассчитанной на питание от 5 В. Плата была без труда разведена в KiCad. В каждом из рядов был использован один резистор для ограничения тока и 10 светодиодов, соединенных параллельно. Сопротивление резистора было подобрано так, чтобы светодиоды светили достаточно ярко, а резистор при этом не перегревался. Я остановился на сопротивлении 27 Ом.
Вот что у меня получилось в итоге:
Плата имеет размер 10x15 см. В обозримом будущем я вряд ли буду делать платы большего размера, а значит такая матрица сможет равномерно засветить любую из моих поделок. Углы у платы пришлось немного подрезать, так как иначе она не помещалось в моей ультразвуковой отмывочной ванне. Да и то, плату пришлось класть в ванну ребром, отмывая ее сначала с одной стороны, затем со второй. Так что, да, сейчас для меня 10x15 см — это предел.
Fun fact! Я использую ванну VGT-800 с отмывочной жидкостью Solins US. Это намного удобнее и быстрее, чем отмывать спиртом с зубной щеткой. Просто кидаешь плату в ванну, жмешь кнопку, ждешь пару минут, промываешь, и все!
Таймер на базе ATmega328
Матрица светодиодов создает интенсивное УФ-излучение. При ее использовании фоторезист легко по ошибке засветить сильнее, чем нужно. В этом случае его придется снимать и все переделывать заново. Поэтому нам нужен таймер, который включает матрицу ровно на заданный интервал времени.
На момент написания этих строк я умел работать с микроконтроллерами AVR и STM32. Использовать STM32 для простого таймера мне показалось оверкилом, поэтому я использовал восьмибитный микроконтроллер ATmega328. Сказать по правде, 32 Кб flash-памяти для этого проекта тоже оверкил, вполне хватило бы и ATmega48. Но у меня был некоторый запас микроконтроллеров ATmega328, а покупать микроконтроллер специально под этот проект мне не хотелось. Так что, я остановился на ATmega328.
Я заметил, что связка «микроконтроллер + четыре семисегментных индикатора + несколько кнопок» является довольно часто встречающимся паттерном. Например, если вы делаете электронные часы, розетку с таймером или паяльную станцию, вам почти наверняка понадобятся все эти компоненты. Поэтому вместо того, чтобы делать специальную плату для конкретной задачи, я решил сделать универсальную плату с областью для прототипирования, которую можно было бы использовать повторно в будущих проектах.
Вот что у меня получилось:
Также я заказал пять аналогичных плат у JLCPCB на будущее. Заказ обошелся мне в 22$ вместе с доставкой. На момент написания этих строк платы мне еще не доехали, но выглядеть они будут примерно так:
На области для прототипирования я впаял МОП-транзистор с N-каналом IRF3205 для защиты от переполюсовки. Для включения и выключения светодиодной матрицы было использовано обычное реле (модель RT424005). Также я использовал сглаживающий конденсатор на 100 мкФ, чтобы микроконтроллер не вырубало при включении матрицы.
Прошивка для устройства была написана на языке C, без библиотек от Arduino. В прошивке мало нового для нас с вами. Работа с использованным здесь индикатором ранее рассматривалась в заметке Как я делал электронные часы на базе FPGA. Программирование под AVR на языке C нам знакомо по заметке Как я спаял электронные игральные кости на базе ATtiny85. Из того, что не рассматривалось ранее, в прошивке есть разве что работа с EEPROM. Работать с ним не сложно:
void setup() {
// load timeout from the EEPROM
eeprom_read_block(timeout, saved_timeout, sizeof(timeout));
// ...
}
/* ... */
void loop() {
// ...
if(!countdown_active && save_pressed()) {
if(save_was_released) { // debounce
// save current timeout to the EEPROM
eeprom_update_block(timeout, saved_timeout,
sizeof(timeout));
save_was_released = false;
}
} else
save_was_released = true;
// ....
}
При этом в make.sh добавляется строчка:
-O ihex main.o main.eeprom
… а в flash.sh — строчка:
-v -U eeprom:w:main.eeprom
То есть, EEPROM прошивается программатором отдельным шагом.
Fun fact! Две платы суммарно имеют более 700 отверстий. Если сверлить их ручной мини-дрелью, получится долго и криво, а кончики пальцев вы перестанете чувствовать из-за вибрации еще на первой сотне. Для сверления отверстий я использую инструмент Dremel 3000 вместе со стойкой Dremel 220, которая превращает его в сверлильный станок. Комплект нормальных сверл по металлу был куплен в ближайшем хозяйственном магазине. Также Dremel подходит для резки (стеклотекстолита, пластика, оргстекала, алюминия, дерева, фанеры, …), гравировки, фрезерования, и ряда других задач. Например, с его помощью я снимал маску с печатных плат и подправлял пластиковые модели, напечатанные на 3D-принтере. В общем, полезный инструмент.
Полученные результаты
Имея светодиодную матрицу и таймер, я провел обычный тест на определение оптимального времени экспонирования. На плату переносились цифры и буквы с толщиной 0.4 мм и 0.2 мм: «005 SEC», «010 SEC», …, «060 SEC», затем плата травилась перекисью водорода с лимонной кислотой. Соответственно, оптимальное время я искал в диапазоне от 5 до 60 секунд с шагом 5 секунд. Светодиодная матрица при этом держалась в 20 см над фоторезистом. В итоге оптимальным оказалось время в районе 15-20 секунд. В EEPROM таймера я сохранил выдержку в 17 секунд, как среднее. Примите во внимание, что для вашего фоторезиста, ваших светодиодов и даже вашего любимого метода травления оптимальное время может отличаться.
Задумайтесь над этим — было 15 минут, а стало 17 секунд. Сколько времени сэкономлено! Все исходники к этой заметке вы найдете на GitHub.
Метки: AVR, Электроника.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.