Цифровой таймер для засветки фоторезиста. Установка для уф-засветки фоторезиста с таймером отключения. Установка фьюз битов микроконтроллера

В данной статье опубликована схема таймера обратного отсчета времени на 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. Как этот сигнал использовать или не использовать для каких то своих нужд, решайте сами, главное он есть, нужен не нужен - это другой вопрос.

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

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

Я взял на вооружение многие из описанных им методик, в частности, нанесение фоторезиста «мокрым» методом, использование ламинатора, а также канцелярских зажимов. Но больше всего в видео меня поразила лампа из ультрафиолетовых светодиодов с таймором. Такая лампа засвечивает фоторезист за 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 см — это предел.

Данный проект представляет собой лампу на основе светодиодной УФ ленты с таймером. Диапазон таймера от 1 до 9999 секунд (~2.8 часа). Как показала практика для засветки фоторезиста вполне хватает 90-120 секунд.

Для проекта понадобится:

Некоторые замечания:

  1. Обратите внимание, что для работы нужен индикатор конкретной модели: kem-5461ar. Если индикатора для данной модели нет придется переопределить цифры в коде, как это сделать см. "Разбор кода"
  2. Так же лучше взять не очень высокие электролиты, так как их можно "положить" на плату как можно увидеть на фото ниже.
  3. Микроконтроллер прошивается после распайки всех компонентов на плату, для этого предусмотрены контакты: MISO, SCK, MOSI
Принцип работы:

Питание "лампы" 12V. Вся логика работы завязана на МК atmega8а. Питание для микроконтроллера и индикатора 3.3V, подается через стабилизатор напряжения AMS1117 3.3V.
С помощью энкодера задается время экспонирования, затем по нажатию нижней кнопки запускается процесс засветки при этом управление через энкодер отключается. При истечении времени засветка прекращается. Верхняя кнопки - сброс. Сброс реализован просто замыканием контакта reset на землю.

Процесс разработки:

Вклеиваем ленту в рамку для фотографий:

Прототип я собирал на базе atmega8515 и все кнопки обрабатывались внешними прерываниями, но с переходом на младшую модель пришлось отказаться от одного прерывания, т.к. у atmega8 их 2 против 3 у 8515.

Проверка прототипа на обычной ленте:

С процессом разработки все стандартно: травим плату, сверлим отверстия, распаиваем компоненты начиная с SMD и заканчивая экраном и энкодером. Дополнительно на энкодер припеваем конденсаторы 104 (100nF) для того, что бы избежать дребезга контактов при срабатывании кнопок.

Разбор кода:

Проект можно скачать с github . Проект написан на C с использованием CVAVR.
Итак, если нужный индикатор найти не удалось необходимо изменить значения в данном массиве:

// Цифры для kem-5461ar unsigned char numbers = { //PB7...PB0 //FBGCDpDEA 0b11010111, //0 0b01010000, //1 0b01100111, //2 0b01110101, //3 0b11110000, //4 0b10110101, //5 0b10110111, //6 0b01010001, //7 0b11110111, //8 0b11110101, //9 0b00100000 //- };

Указанный массив представляет собой маску для порта B. Как можно понять из комментария к коду, здесь биты расположены от пина7 порта B до пина 0 порта B (//PB7...PB0). Так же в комментарии указано, какой пин какой сегмент зажигает (//FBGCDpDEA): 7-F, 6-B и т.д. Включение сегмента осуществляется подачей 5v на ногу. На примере "0" видно, что не горят сегменты G и Dp (точка). Порт B конфигурируем как выход:

// Port B initialization DDRB=(1<

За переключение разрядов отвечают биты 0-3 порта C. Конфигурируем порты следующим образом:

// Port C initialization DDRC=(0<

Создаем маску для включения разряда:

// Разряды. unsigned char digit = { 0b11111101, // 1 разряд слева. 0b11111011, // 2 разряд слева. 0b11110111, // 3 разряд слева. 0b11111110 // 4 разряд слева. };

Теперь что бы отображать все 4 числа на индикаторе нужно просто каждый цикл передавать на порт C один из элементов массива digit, например: PORTC = digit;, где step разряд, который нужно зажечь, а на порт B подать элемент нужный элемент массива numbers: PORTB = numbers, где digitByNumbers число от 0 до 10 - цифра, 11 - знак дефиса.

У микроконтроллера atmega8a есть возможность обрабатывать два внешних прерывания. Для этого нужно подключиться к ногам PD2, PD3. Внешние прерывания используются для работы с энкодером. На PD2 подключен контакт энкодера отвечающий за поворот. Срабатывание этого прерывания означает что энкодер был повернут. Что бы определить в какую сторону был повернут энкодер считываем значение с другого контакта. высокий или низкий уровень на этом контакте говорит о направлении вращения:

// External Interrupt 0 service routine interrupt void ext_int0_isr(void) { // Считываем значения порта D4 и если уровень высокий, // отнимаем единицу, если низкий, прибавляем единицу. if(PIND.4) { if(digitByNumbers < 9) { digitByNumbers++; } } else { if(digitByNumbers > 0) { digitByNumbers--; } } }

Второе прерывание отвечает за кнопку на энкодере и двигает разряды позволяя задавать 4-х значные числа. Переменная digitNumber в данном случае номер разряда:

// External Interrupt 1 service routine interrupt void ext_int1_isr(void) { if(digitNumber == 0) { digitNumber = 3; } else { digitNumber--; } }

Последние, что нужно сделать, включить внешние прерывания прерывания и разрешить их #asm("sei") . Включаем прерывания устанавливая в регистры GICR, MCUCR, GIFR следующие значения:

// External Interrupt(s) initialization // INT0: On // INT0 Mode: Rising Edge // INT1: On // INT1 Mode: Falling Edge GICR|=(1<

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

Для засветки фоторезиста в домашних условиях, решил использовать сканер формата А4, который у меня благополучно «скон-чался», да и приобрести бу-шный для этой цели, например можно, начиная от 100 целковых (пачка сигарет дороже стоит, а неисправный и так могут отдать).
В общем решил вдохнуть в сканер "вторую жизнь", тем более, что там стоит кварцевое стекло, которое очень хорошо пропускает ультрафиолет (простое оконное, как нам известно - максимум 10%). Ещё преимущества данного способа - это равномерный прижим платы к стеклу крышкой сканера и постоянное расстояние до источника ультрафиолета, благодаря которому стаёт и постоянным время засветки, которое можно зафиксировать простым таймером.
В итоге вот что получилось:

Рисунок 1.
Приспособление для засветки ПП с фоторезистом.

Разобрал сканер, выкинул внутренности и установил на их место четыре лампы. Использовал для этой цели фурнитуру от обыкновенных люминесцентных ламп, только лампы установил УФ (все это продаётся в магазинах хоз. товаров). Может быть вполне хватило бы и двух ламп, платы всё равно не очень большие в основном, но, как говорится - запас не тянет, поэтому решил, что делать, так уж делать с видом на будущее (для платы формата А4), поэтому и установил четыре, да и время засветки в этом случае будет меньше.
Для управлением процессом засветки используюсь таймером с обратным отсчётом времени, который собрал на микроконтроллере PIC16F628. В итоге весь процесс засветки данной конструкции занимает 30-40 секунд....

Рисунок 2.
Конструкция устройства.

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

Рисунок 3.
Схема таймера.

В интернете, если чуть покопаться, выложено много различных схем всевозможных таймеров. Я остановился на этой схеме, просто у меня PIC16F628 был в наличии, и я решил пустить его в дело.
Может быть Вам понравится другая схема таймера - это Ваш выбор, я просто рассказываю сам процесс, ну и даю описание своих конструкций.

Рисунок 4.
Схема таймера, силовая часть.

Рисунок 5.
Таймер в корпусе.

Рисунок 6.
Силовая часть.

Рисунок 7.
Платы и соединения.

Максимальное время, которое можно установить на таймере - 12 ч 00 м 00 с. После установки времени и нажатии кнопки "Пуск/Стоп" - включается нагрузка и начинается отсчёт времени в обратном порядке от установленного. За 10 секунд до окончания времени - подается короткий звуковой сигнал на «пищалку».
Когда остается 3 секунды до завершения времени - включается «пищалка» до окончания времени. По окончанию времени нагрузка выключается, время на таймере устанавливается то, которое было установлено в начале кнопками.

Теперь кратко опишу сам процесс изготовления печатных плат при помощи фоторезиста. Всё, что описано выше, предназначалось для упрощения данного процесса.
Для работы я использую плёночный негативный фоторезист. Негативный, значит шаблон для его засветки нужно печатать в негативе, то есть те места, где будут дорожки - должны быть прозрачные, а там, где дорожек (фольги) быть не должно - наносится тонер. Если Вы будете использовать позитивный фоторезист, то естественно фотошаблон нужно будет печатать в позитиве.

Распечатываем шаблон через программу для проектирования плат в негативе на прозрачной пленке (я применяю пленку "LOMOND" для струйных принтеров) на струйном принтере. Пробовал на лазерном, только получалось как-то блекло, черноты не было, и платы получались не совсем качественные.
Говорят, что можно гораздо улучшить качество таких плат, если напечатать на лазерном принтере два шаблона на плёнке, затем вырезать их и совместить (т.е. сделать из двух - один).
Ещё можно распечатать рисунок платы лазерным принтером на обычной бумаге. Чем тоньше бумага, тем лучше. Далее, для повышения контрастности (если она не достаточна) на доли секунды погрузить его в банку с растворителем (например автомобильный 647). Дать ему подсохнуть, и потом пропитать подсолнечным маслом, чтобы сделать прозрачным для ультрафиолета, правда я так не пробовал.

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

Будем считать, что плата уже подготовлена и фоторезист наклеен (или нанесён из баллончика) на нашу плату.
Прикладываем шаблон к плате. Как правило шаблон прилегает к плате плотно. И кладем на стекло сканера с УФ лампами. Засвечиваем. Убираем засвеченную заготовку в темное место и готовим раствор для проявления, в качестве которого я пользуюсь кальцинированной содой (продается в хоз. магазинах применяется для смягчения воды и стоит копейки).
Для этого чайную ложку соды с горкой, растворяем в литре воды (если плата большая), или ложку без горки в 0,5 литре воды.
Берем нашу плату из тёмного места, снимаем верхнюю защитную плёнку с фоторезиста и кладем её в наш раствор с разведенной содой и ждем примерно секунд 30. Потом берем кисточку и начинаем ей водить по нашей плате для того, что бы ускорить процесс смывания фоторезиста с ненужных нам участков. Там где фоторезист смылся, поверхность меди светлая и блестящая. После того как смыли весь ненужный фоторезист, вытаскиваем плату из раствора соды и промываем под струей воды.

Рисунок 8.
Печатная плата, подготовленная для травления.

После того как промыли, просушиваем плату. Осматриваем. Может такое случится что есть протравы (там, где фоторезист не был хорошо приклеен). Используем маркер для рисования печатных плат. Где необходимо ретушируем. На фото №8 видно, что там, где фоторезист не качественный, (срок годности у моего уже вышел) те места подретушированы чёрным маркером.

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

Архив для статьи.

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

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

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

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

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

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