Главная » Микроконтроллеры
Призовой фонд
на апрель 2018 г.
1. Осциллограф DSO138
Паяльник
2. Тестер компонентов LCR-T4
Сайт Паяльник
3. 100 руб.
От пользователей

Таймер 0...9999 секунд для засветки фоторезиста на 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-х сторон платы. Я решил немного заморочиться и покрыть плату паяльной маской. Вышло не очень, но переделывать не особо хочется:)

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

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

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

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

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

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

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

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

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

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
C1 Конденсатор0.01 мкФ1 SMD_0603Поиск в win-sourceВ блокнот
C2 Конденсатор10 мкФ1 SMD_1206Поиск в win-sourceВ блокнот
C3 Конденсатор10 мкФ1 SMD_1206Поиск в win-sourceВ блокнот
HG1 СветодиодFYQ-5641-AG1 Семисегментный индидикатор с обшим катодом (0,56")Поиск в win-sourceВ блокнот
Q1 ТранзисторIRF445H1 SOIC_8Поиск в win-sourceВ блокнот
R1, R3 Резистор
10 кОм
2 SMD_0603Поиск в win-sourceВ блокнот
R2 Резистор
3 кОм
1 SMD_0603Поиск в win-sourceВ блокнот
R4-R11 Резистор
100 Ом
8 SMD_0603Поиск в win-sourceВ блокнот
R12, R14, R15 Резистор
2 кОм
4 SMD_0603Поиск в win-sourceВ блокнот
R16 Резистор
4 кОм
1 SMD_0603Поиск в win-sourceВ блокнот
R13 Резистор
100 кОм
1 SMD_0603Поиск в win-sourceВ блокнот
U1 МК AVR 8-бит
ATtiny13A
1 SOIC_8Поиск в win-sourceВ блокнот
U2, U3 Сдвиговый регистр
SN74HC595
1 SOIC-16Поиск в win-sourceВ блокнот
U3 Линейный регулятор
AMS1117-5.0
1 SOT-223Поиск в win-sourceВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (19) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+1
andro #
Может не по теме, но насколько возможно использование люминесцентной лампы вместо светодиодов?
Ответить
0
_abk_ #
Купите в магазине ультрафиолетовую (черную) люминисцентную лампу. И процесс перестанет быть "длительным" - пары-тройки минут будет хватать.
Ответить
+1
Zlodey #
Купите в магазине ультрафиолетовую (черную) люминисцентную лампу...
Попытка сравнить тёплое с мягким...
Автору наоборот зачёт, сделал как белый человек на светодиодах
Ответить
0
_abk_ #
Для тех кто не понял, это был ответ на вопрос andro
Ответить
+1
andro #
Я так и знал. А для глаз это не опасно?
Ответить
0
nikolsum #
Как на счёт бокового засвечивания, слишком близко расположены излучатели.
Ответить
0
Сергей #
Боковая засветка очень вредная. Много плат так загубил.
Ответить
+1
Pauk #
Насколько важна точность таймера для этих целей?
Ответить
0

[Автор]
Mango #
Думаю точности +-1 мин. достаточно
Ответить
0
Pauk #
немного
Ответить
+1
Voxvel #
Уважаемый автор! У меня к вам огромная просьба... да я уверен и не только мне это будет актуально... не могли бы вы подкоректировав прошивку сделать данный таймер циклическим... тоесть если ставим 10с то по истечении время снова идет 10с но уже с выключенной нагрузкой... т.е если ставим 10с то у нас лампа 10с горит и 10с не горит... Ну очень нужно! Спасибо!
Ответить
0

[Автор]
Mango #
Здравствуйте. Вот переделанный проект (там же hex файл для прошивки):
Прикрепленный файл: Timer on Attiny13 rev.2 .rar
Ответить
0
Денис #
Вместо 3х микросхем можно было взять одну stm8s003. И стоит дешевле одной tiny13. Еще и кварц при желании можно поставить для точности.
Чтобы не паять 8 0603, можно взять 2 сборки (4x0603).
P.S. Я уж не говорю про функционал stm8s003 по сравнению с tiny. Где у tiny 16бит таймеры, аппаратное деление и т.д.
Для чего то более серьезного есть stm32. stm32f103 стоит 1.2$ на али. ARM 72МГц.
При таких раскладах изучать AVR это моветон
Ответить
0

[Автор]
Mango #
Да, согласен. Но это верно при условии если бы я умел программировать STM. Но увы, пока такого навыка не имею
Ответить
+1
Денис #
Просто Вы написали "но мне хотелось не просто сделать таймер, а получить целый багаж знаний и опыта.. При этом выбрали TINY13. Вот я и спросил почему не STM8.
А так все ж тоже самое. По табличке посмотреть настройки портов ввода-вывода. Так же выставить делители у таймера. Логика программы вообще не меняется. Зато никакие фьюзы не нужны. Например частоту можно прямо в коде поменять.
Ответить
0

[Автор]
Mango #
В принципе спорить с преимуществом СТМ перед АВР не буду. Я и сам уже думаю начать освоение этих интересных микроконтроллеров. Даже купил парочку. Думаю как-нибудь сделаю и на них проекты
Ответить
0
Денис #
Мне нравятся корпуса QFN. На алиэкспресс брал, если пересчитывать за 1 шт.: STM8S003F3U6 (8Кб) - 20р, STM8L151G6U6 (32Кб) - 52р.
Ответить
0
Денис #
А для старта на алиэкспресс есть платка с гребенками на STM8S103. "STM8 Development Board" в поиске. 75р стоит.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Конструктор регулируемого преобразователя напряжения LM317 Мультиметр Mastech MS8239C
вверх