СЕЗАМ Когда-то у меня был сенсорный чудо-переключатель СЕЗАМ .
Он мне очень понравился.
Но времена меняются, он перестал вписываться в интерьер, а потом оказался вообще не предназначен для работы со всякими модными энергосберегающими лампами.
Мне понравился в нем принцип управления.
Короткое касание сенсора включало/выключало свет, а долгое касание регулировало яркость.
Для интересующихся сердцем выключателя была микросхема.
К145АП2 , аналог Сименс S576B (К145АП2 еще продаются).
Ниже под катом мой вариант эмуляции работы этой микросхемы.
Не так давно я соорудил над своим столом подсветку из светодиодной ленты в алюминиевом профиле с рассеивателем и встал вопрос о выключателе.
Устанавливать что-то готовое довольно громоздко.
Неприятно, когда он висит на проводе; установка штатного переключателя портит внешний вид, да и девать действительно некуда.
Переключатель, а заодно и регулятор яркости, я решил встроить в торец ДСП толщиной 16 мм.
Сделайте его сенсорным, покройте наклейкой, которую мебельщики используют для маскировки болтов.
Железо
Я начал с датчика.Я попробовал принцип переноса заряда на ATtiny13A .
Опция работает, но мне лень заморачиваться с автонастройкой параметров и т.п.
Готовую тоже не взял.
Дальше я решил попробовать реализовать датчик с помощью библиотеки QTouch .
В качестве датчика ATtiny10 .
Есть готовая утилита, которая превращает ATtiny10 в сенсорную кнопку со всеми вкусностями.
Но на выходе получается двоичный файл и добавить туда свой код сложно.
Я думал, что делать, лазая по Интернету, и тут наткнулся на упоминание о ТТП223 — контроллер одной сенсорной кнопки.
Этот вариант меня вполне устроил.
В качестве МК выбор пал на ATtiny4 .
Такой же маленький, как ТТП223 , 16-битный таймер.
И мне давно хотелось сделать с этими подростками что-нибудь полезное.
Как ключ - P3055LD от старой материнской платы.
Печатная плата
При разработке печатной платы я исходил из того, что отверстия в торце ДСП должны быть как можно меньше; Я решил, что диаметра 7 мм будет вполне достаточно.Плата оказалась 7х28мм, двухслойная.
Позже, когда плату припаяли, выяснилось, что в отверстие 7мм плата не влезет, хотя бы 9мм - я не учел высоту элементов.
Мне тоже как-то идея с наклейками перестала нравиться.
И тут мне на глаза попалась мебельная вилка! Рассчитан на отверстие 10мм, а внутренний диаметр ровно 7мм! Все совпало! Сам патч сенсора находится на отдельной платке, которая припаяна к концу основной.
Вы можете увидеть это на фотографиях.
Изображений
Программа
Управляющая программа написана на ассемблере.Каждые 32 мс (сторожевой таймер) происходит опрос датчика.
В зависимости от текущего состояния и длительности нажатия выполняются те или иные действия.
Логика работы немного отличается от прототипа К145АП2 Если свет выключен (состояние после включения питания):
- Короткое нажатие включает освещение на том же уровне, на котором оно было выключено.
При первом включении на максимальной яркости
- Длительное нажатие включает свет на максимальный уровень
- Короткое нажатие выключает освещение
- Длительное нажатие меняет яркость.
Направление изменения яркости меняется повторным длительным нажатием.
Яркость задается коэффициентом ШИМ (16 бит).
Частота ШИМ около 122 Гц (8000000 Гц/2 16 ≈ 122 Гц) Для компенсации психофизиологического восприятия яркости освещения от реальной яркости последняя изменяется на участке кубической параболы.
.
Обычно для этого используются таблицы, но в моем варианте рассчитывается коэффициент. Коэффициент меняется вместе с частотой ШИМ, то есть при изменении яркости каждый импульс имеет свою длительность.
Минимальное значение ШИМ ограничено программным обеспечением.
Большую часть времени МК спит и вместе с ТТП223 потребляет около 16 микроампер.
То есть схема вполне подходит для устройств с автономным питанием.
ты ATtiny4 шесть выводов.
Два для питания, один по умолчанию для сброса.
Я уже использовал два.
Остался только один свободный.
Я тоже думал о том, как бы мне его использовать.
И тут я вспомнил о новом ноутбуке друга с трекпадом Force Touch. В качестве эксперимента я решил сделать нечто подобное.
Особо достоверный отклик мне не нужен, а вибромоторчиков от старых телефонов у меня завалялось много.
В результате я реализовал в программе такую функцию, что на свободном выходе появляется короткий импульс при достижении предела регулировки.
В К145АП2 При достижении предела регулировки направление регулировки меняется.
Поэтому нужен был определенный навык, чтобы максимально или минимально убрать руку с датчика.
В моей реализации при достижении границы регулировка прекращается.
Общее время перестройки от одного предела к другому составляет около 4 секунд. Код доступен по адресу GitHub
ТПИ через Ардуино
Особо хотелось бы отметить программирование МК.Мой JTAGICE3 не поддерживает интерфейс программирования TPI. Но, к счастью, добрые люди написали скетч на Ардуино запрограммировать эту мелочь.
Не сразу, но у меня все получилось, прошивку залил и все заработало.
Помимо Arduino вам понадобятся 4 резистора.
Весь процесс описан в эскизе.
Нижняя граница
Волшебная кнопка установлена и работает как положено.Потребление тока и габариты позволяют встраивать его в устройства с автономным питанием.
Ожидаемого эффекта от вибрации я не получил.
Видимо нужны эксперименты с местом установки.
В прототипе К145АП2 и аналог Сименс S576B есть выход «Сон».
Это режим, в котором яркость падает очень медленно, пока не выключится полностью.
По задумке производителя, для этого возле изголовья кровати устанавливается дополнительный датчик.
16 бит таймера ШИМ позволяют реализовать этот режим.
Это идеи на будущее.
Кнопка на месте
Похоже, вот и все.
Спасибо всем! UPD: Как и обещал, поднял частоту ШИМ почти до 1кГц.
Код для GitHub Теги: #DIY или Сделай сам #diy #attiny #Assembler #avr
-
Малюс, Этьен Луи
19 Oct, 24 -
Опыт Перевозки Компьютера В Самолете
19 Oct, 24 -
Мониторинг Мозга
19 Oct, 24 -
Подходят Ли Css-Спрайты Для Шрифтов?
19 Oct, 24 -
Конвейерное Производство Android-Приложений
19 Oct, 24 -
Кровавый Немецкий Режим Закрыл Википедию
19 Oct, 24 -
Управление Структурой Бэм С Помощью Bemy
19 Oct, 24