«Волшебная кнопка» для LED на ATtiny4 / Habr
СЕЗАМ
Был у меня когда-то давно сенсорный чудо-выключатель СЕЗАМ. Очень он мне нравился. Но времена меняются, перестал вписываться в интерьер, а потом и вовсе оказался не рассчитан на работу со всякими модными энергосберегающими лампами. Нравился мне в нём принцип управления. Короткое касание сенсора включало/выключало свет, а длительное регулировало яркость. Кому интересно — сердцем выключателя была микросхема К145АП2, аналог Siemens S576B (К145АП2 до сих пор продаются).
Под катом мой вариант эмуляции работы этой микросхемы.
Не так давно соорудил я себе над столом подсветку из светодиодной ленты в алюминиевом профиле с рассеивателем и встал вопрос о выключателе. Ставить готовое как то громоздко. Чтоб на проводе болталось — не красиво, обычный выключатель ставить — портит вид, да и особо некуда.
Решил я встроить выключатель, а за одно и регулятор яркости, в торец ДСП 16мм. Сделать его сенсорным, прикрыть наклейкой, которыми мебельщики болты маскируют.
Железо
Начал с сенсора. Попробовал на принципе переноса заряда на ATtiny13A. Вариант рабочий, но мне стало лень заморачиваться с автоподстройкой параметров и тд. Брать готовое тоже не стал.
Далее решил попробовать реализовать сенсор на библиотеке QTouch. В качестве сенсора ATtiny10. Есть готовая утилита, которая превращает ATtiny10 в сенсорную кнопку со всеми плюшками. Но на выходе бинарник и добавить свой код туда сложно. Думал что делать, бороздил просторы Internet и тут мне попалось упоминание о TTP223 — контроллере одной сенсорной кнопки. Этот вариант меня вполне устроил.
В качестве МК выбор пал на ATtiny4. Такая же мелкая как и TTP223, 16-ти битный таймер. Да и давно хотел сделать на этих тиньках что-то полезное.
В качестве ключа — P3055LD со старой материнки.
Печатная плата
При разработке печатной платы исходил из того, что отверстия в торце ДСП нужно минимально возможное, решил что диаметром 7мм будет вполне достаточно. Плата получилась 7х28мм, два слоя.
Уже потом, когда плата была спаяна, стало понятно, что в 7мм отверстие плата не влезет, минимум 9мм — не учёл высоту элементов. Идея с наклейкой как-то тоже перестала нравится. И тут на глаза попалась мебельная заглушка! Рассчитана на отверстие 10мм, а внутренний диаметр ровно 7мм! Всё совпало!
Сам пятачок сенсора на отдельной платке которая паяется в торец основной. На картинках видно.
Программа
Управляющая программа написана на ассемблере. Каждые 32мс (Watchdog Timer) происходит опрос сенсора. В зависимости от текущего состояния и длительности нажатия выполняются те или иные действия. Логика работы немного отличается от прототипа К145АП2
Если свет выключен (состояние после подачи питания):
- Короткое нажатие включает освещение на том же уровне, на котором оно было выключено. При первом включении на максимальной яркости
- Длинное нажатие включает свет на максимальном уровне
Если свет включен:
- Короткое нажатие выключает освещение
- Длинное нажатие изменяет яркость. Направление изменения яркости меняется повторным длительным нажатием
Слишком короткие нажатия (помехи) программой игнорируются. Яркость задаётся коэффициентом ШИМ (16 бит). Частота ШИМ около 122 Гц (8000000 Гц / 216 ≈ 122 Гц)
Для компенсации психофизиологического восприятия яркости освещения от реальной яркости, изменение последней происходит по участку кубической параболы
Основное время МК спит и вместе с TTP223 потребляет около 16 микроампер. То есть схема вполне пригодна для устройств с автономным питанием.
У ATtiny4 шесть выводов. Два на питание, один по умолчанию на сброс. Два я уже задействовал. Остался один свободный. Думал как можно задействовать и его. И тут мне вспомнился новый ноут друга с трекпадом Force Touch. В качестве эксперимента решил сделать нечто подобное. Особой достоверности отклика мне не нужно, а вибромоторов от старых телефонов валяется много. В результате реализовал в программе такую функцию, что на свободном выводе, при достижении границы регулировки, появляется короткий импульс. В
Код доступен на GitHub
TPI через Ардуину
Отдельно отмечу программирование МК. Мой JTAGICE3 не поддерживает интерфейс программирования TPI. Но, к счастью, добрые люди написали скетч на Ардуину для программирования этой мелочи. Не сразу но у меня всё получилось, прошивка залилась и всё заработало. Кроме ардуины нужно 4 резистора. Весь процесс расписан в скетче.
Итог
Волшебная кнопка установлена и работает как задумано. Потребляемый ток и габариты позволяют встраивать её в устройства с автономным питанием.
Ожидаемого эффекта от вибры я не получил. Тут видимо нужны эксперименты с местом установки.
В прототипе К145АП2 и аналоге Siemens S576B есть вывод «Sleep». Это такой режим, при котором яркость очень медленно падает до полного выключения. По задумке производителя, для этого дополнительный сенсор устанавливается около изголовья кровати. 16 бит таймера ШИМ позволяют реализовать такой режим.
Это из идей на будущее.
Кнопка на месте
Вроде всё.
Всем спасибо!
UPD: Как и обещал, поднял частоту ШИМ почти до 1kHz. Код на GitHub
Разработка сенсорного Z-Wave выключателя на аккумуляторе со светящимися кнопками
Второй год я разрабатываю свой уникальный Z-Wave выключатель с сенсорными кнопками, который удовлетворит меня по функционалу, дизайну и стоимости изготовления.
С самого начала была цель сделать 4-х кнопочный выключатель на аккумуляторе размера 80х80 мм максимально тонким, сенсорные кнопки должны быть большие и при касании светиться целиком, а не только небольшой кружочек, как у всех. В итоге получился стильный тонкий выключатель, способный управлять любыми устройствами умного дома.
Во время разработки я решал множество задач по схемотехнике, дизайну корпуса и выбору материалов. Особенно интересным является создание самой сенсорной кнопки, которая светится целиком, но обо всем по порядку.
- Функционал
- Разработка печатной платы
- Изучение рассеивателей света
- Подбор материалов рассеивателя
- Использование
Видео работы сенсорного выключателя в конце.
Функционал
Требовались следующие возможности выключателя:
- Включать/выключать свет
- Регулировать яркость освещения
4 кнопки управляют 2-мя группами освещения. Верхние кнопки при удержании плавно увеличивают яркость, при коротком нажатии включают свет. Нижние кнопки при удержании плавно уменьшают яркость, при коротком нажатии выключают свет.
TODO
Сделать, чтобы каждая кнопка работала в режиме переключения, нажал — вкл, нажал — выкл. Это позволит управлять 4-мя группами освещения.
Дизайн корпуса
Мне понравилась идея с 4-мя большими сенсорными кнопками компании Basalte, и я решил развить её в своем направлении.
Рис. 1 — KNX выключатель Basalte
Я хотел, чтобы при касании кнопка светилась сама целиком, а не отдельный светодиод. Поэтому корпус представляет из себя узкую рамку с вырезами для 4-х сенсорных кнопок. Продуманы замочки для крепления задней крышки и углубления для установки магнитов. Крепежная пластинка приклеивается к стене на двухстороннюю клейкую ленту и к ней уже крепится сам выключатель с помощью магнитов. Удобно использовать выключатель как переносной пульт и удобно заряжать аккумулятор.
Рис. 2 — Корпус сенсорного выключателя
Все детали корпуса разработаны в Blender и распечатаны на 3D принтере белым ABS пластиком.
Рис. 3 — Разработка корпуса сенсорного выключателя в Blender
Разработка печатной платы
Печатная плата разработана в Proteus. Это вторая версия, в ней используется одна сенсорная микросхема TTP224 на 4 канала. В первой версии использовалось 4 шт. одноканальных TTP223, разницы в работе никакой, но при использовании TTP224 меньше компонентов паять.
Рис. 4 — Разработка печатной платы сенсорного выключателя в Proteus
Главными компонентами на плате являются:
- Z-Wave радио чип
- Аккумулятор Robiton 800мАч
- 3.3V Step-Up/Step-Down Voltage Regulator S7V8F3
- Микросхема заряда аккумулятора TP4056
- Схема переключения питания с аккумулятора на USB
- Кнопка калибровки
- Микросхема сенсорных кнопок TTP224
Z-Wave чип работает в диапазоне 2.7В — 3.6В, аккумулятор выдает до 4.7В, поэтому я использовал повышающе-понижающий преобразователь 3.3В Pololu S7V8F3. Для заряда аккумулятора использовал дешевую и многим известную микросхему TP4056, ток заряда настроил на половину емкости аккумулятора 400мА. При подключении зарядки, питание устройства переключается на USB и аккумулятор спокойно заряжается, схема переключения питания реализована на одном транзисторе и диоде. Кнопка при нажатии сбрасывает питание регулятора и вся схема перезагружается, это нужно для калибровки TTP224. На лицевой части платы находятся 4 площадки сенсорных кнопок размером 40х40 мм и 4 светодиода. Производство заказано в Seeedstudio, качеством и ценой очень доволен.
Рис. 5 — Плата сенсорного выключателя
Самым главным компонентом в сенсорном выключателе является контроллер сенсорной кнопки. Я провел тестирование 3-х контроллеров и у каждого оказались, как плюсы, так и минусы. Результаты тестирования 3-х контроллеров сенсорных кнопок:
TTP224
Плюсы: Дешевый, на текстолите с одной стороны могут быть площадки сенсоров, на обратной стороне другие компоненты, но при этом сильно снижается чувствительность. Настройка выходного сигнала: высокий/низкий уровень, настройка режима кнопки: переключение/включение. 4 канала.
Минусы: Если с обратной стороны сенсорной площадки находятся дорожки, то плохо работает сквозь оргстекло более 3 мм и еще хуже если на стекло наклеена пленка, не реагирует на небольшое касание, только нажатие всей подушечкой пальца, даже с настроенной максимальной чувствительностью (Cs = 1pF, диапазон 0-50pF, чем меньше, тем чувствительнее).
Рис. 6 — TTP224 на готовой плате
AT42QT1011
Плюсы: Реагирует на небольшое касания сквозь 3 мм (и больше) оргстекло, если настроить чувствительность на среднем уровне (Cs = 22nF, диапазон 2-50nF, чем больше, тем чувствительнее). Автоматически подстраивается под толщину стекла.
Минусы: Под сенсорной площадкой не должно быть никаких дорожек, ни питания, ни земли, иначе снижается чувствительность. Выход только высокий уровень. 1 канал только.
Рис. 7 — Тестовая плата AT42QT1011
MTCh205
Плюсы: Реагирует на небольшое касания сквозь 3 мм (и больше) оргстекло. Защита от помех с помощью земли вокруг и под площадкой сенсоров, автоматически подстраивается под толщину стекла. 5 каналов.
Минусы: Долго реагирует на нажатие и долго понимает, что палец отпустили, порядка 0.5 секунд. Если удерживать палец на площадке сенсора, то через 9 секунд выключается светодиод, происходит калибровка. Сенсорную площадку требуется закрывать землей со всех сторон, в том числе и под площадкой, иначе срабатывает в любой точке касания текстолита.
Рис. 8 — MTCh205 на макетной плате
Выбрал TTP224 (4 канала), потому что на одном текстолите с одной стороны можно разместить все компоненты, а на другой стороне — площадки сенсоров. Пожертвовал чувствительностью, через 3 мм оргстекло срабатывает если коснуться целиком подушечкой пальца, хотя это можно трактовать, как защита от случайного касания :). Если под площадкой сенсора нет дорожек, то реагирует сквозь 4 мм оргстекло при малейшем касании.
TODO
Изготовить сенсорный выключатель с двумя текстолитами, первый — для сенсорных площадок, второй — для всех компонентов. Добавить вибромотор и бузер. Реализовать функцию слабой подсветки при срабатывании встроенного датчика движения.
Изучение рассеивателей света
Стояла задача — равномерно засветить площадку размером 40х40мм, которой касается палец. Из-за ограничений размера корпуса, получилось впихнуть только по одному светодиоду для каждой площадки.
Я изучил устройство нескольких сенсорных выключателей: Livolo, Vitrum, HTTM touch button. В каждом использовался свой подход к равномерному рассеиванию света.
Vitrum
Итальянский Z-Wave выключатель с дорогим декоративным стеклом. Отражатель-рассеиватель реализован следующим образом: на прозрачном оргстекле нарисован обод светоотражающей краской, сбоку подсвеченный одним светодиодом. Со стороны светодиода краски меньше нанесено, тем самым достигается равномерное свечение по всему ободу. Сверху устанавливается декоративное стекло.
Рис. 9 — Рисунок светоотражающего обода на оргстекле
Livolo
Бюджетный китайский сенсорный выключатель. На плате располагается 2 светодиода: красный и синий, светодиоды светят внутрь замутненного полупрозрачного пластика, из-за частых преломлений света внутри получается равномерное свечение всей поверхности, на текстолит нанесена светоотражающая краска.
Рис. 10 — Сенсорная часть выключателя Livolo
HTTM — HelTec Touch Model
Готовый сенсорный модуль с Noname микросхемой. Отражатель-рассеиватель состоит из 3-х частей: текстолит с луженой площадкой, оргстекло для торцевой подсветки с множеством микроямок, белая мутная пленка.
Рис. 10 — Разобранный сенсорный модуль HTTM
Подбор материалов рассеивателя
Рассеиватель из матового оргстекла
Обычное прозрачное 3 мм оргстекло обработал мелкой шкуркой с двух сторон для придания матовости. Такое оргстекло равномерно рассеивает свет по всей поверхности. Толщина материала позволяет комфортно работать с любой сенсорной микросхемой. Но на поверхности видны мелкие царапины, что влияет на эстетический вид.
Рис. 11 — Матированное оргстекло
Рассеиватель из оргстекла для торцевой подсветки (LGP) и молочного оргстекла
Использовал 2 разных оргстекла толщиной по 2 мм, бутерброд из двух элементов получился 4 мм. Нижнее оргстекло для торцевой подсветки, благодаря нанесенным белым точкам, равномерно рассеивает свет по всей поверхности. Верхнее молочное оргстекло дает мягкое свечение и красивый вид, при этом яркость заметно ниже и увеличивается вес выключателя.
Рис. 12 — Оргстекло для торцевой подсветки и опаловое оргстекло
Панель лайтбокса от компании Ledison
Российская компания Ledison предоставила на тест панель от лайтбокса состоящую из 3-х компонентов: светоотражающая подложка, специальное светорассеивающее 3 мм оргстекло (на вид прозрачное, но внутри видна зернистая структура), прозрачная защитная пленка. Верхнюю пленку я заменил на матовую Oracal 8500 и получилось хорошее рассеивание. Но при работе с выключателем пленка выглядит не солидно, может поцарапаться и её трудно приклеить без пузырьков.
Рис. 13 — Бутерброд для лайтбокса от Ledison
После всех тестов в выключателе применил светоотражающую подложку от Ledison, а их оргстекло сделал матовым. На данный момент это лучший вариант для меня, и равномерно рассеивает, и яркость не снижена, и толщина подходящая.
Рис. 14 — Корпус, плата и рассеиватель
Использование
Первые тестовые версии выключателей я изготовил 2 года назад и имею уже опыт их использования, один установлен около санузла на высоте 120 см и удобен для детей, второй располагается около кровати и управляет ночником, люстрой и LED подсветкой. Т.к. все кнопки разделены перекрестием их легко нащупать в темноте и нажать нужную. Световой фидбэк точно говорит какая кнопка нажата. По сравнению с кнопочными выключателями минусов не обнаружил.
Рис. 15 — Сенсорный выключатель на аккумуляторе в деле
Заметил приятный побочный эффект, выключатель около кровати можно использовать для подсветки тумбы, если нажать на нижние кнопки.
P.S.
На данный момент в Z-Wave чипе используется прошивка от 4-x кнопочного брелока Z-Wave.Me Key Fob, удобно, что она уже есть готовая и хорошо работающая, неудобно, что не все функции есть, которые хочется. Единственным нерешенным вопросом осталась засветка уголков в центре, нужно закрывать фольгированной пленкой, но пока думаю куда лучше лепить фольгу, на корпус внутри или на оргстекло.
Далее в планах перейти на свободно программируемый Z-Uno Module для реализации всех программных хотелок.
Принцип работы сенсорной клавиатуры заключается в измерении паразитной ёмкости сенсора. Сенсор имеет определённую ёмкость, которая заряжается через высокоомный резистор. Прикасаясь к «сенсору». Мы меняем его емкость, и время заряда немного увеличивается. Для того, что бы «засечь» нажатие, необходимо просто измерять время заряда «сенсора» и сравнивать его с эталонным. Получается всё просто! Разница времени заряда (Т2 и T1) дает возможность определить наличие прикосновения к сенсору Тогда пробуем! Итак, алгоритм работы известен и описан на просторах интернета:
Config Portd.0 = Output Теперь нам осталось только сравнивать время заряда с начальным, и если оно заметно превышает, то отреагировать на это: S = S + 10 ‘время заряда пустого сенсора Т.е. при замере пустого сенсора , время заряда присваиваем переменной S. Увеличиваем на 10. При этом числе, сенсор устойчиво срабатывал через довольно толстую плёнку от канцелярской папки. Уменьшая это число повышаем чувствительность, но естественно уменьшаем помехоустойчивость., поэтому в зависимости от лицевой панели, нужно стремиться к увеличению! После удачных экспериментов на Attiny 2313, я решил пойти дальше, и реализовать полноценный драйвер сенсорный клавиатуры. Итак задача:
Будем прибегать к хитростям. Индикацию сделаем по стандартной схеме чарлиплексинга. Для этого нам понадобится всего четыре ноги. Всё равно не хватает. Значит, будем придумывать матрицу «сенсор». Из 12 сенсоров нам нужно 3 столбца и 4 строки. Принцип также известен: заряжаем сначала первые четыре сенсора, подключая резистор 1Мом и замеряем их время заряда, Потом второй ряд, и третий. Получился такой драйвер. Код программы: $regfile = «attiny2313.dat» $crystal = 8000000 ‘работаем на частоте 8 мГц Dim E As Byte , S(3) As Byte , T(3) As Byte , A As Byte , F As Byte Config Porta = Output Config Timer0 = Timer , Prescale = 1 Stop Timer0 Timer0 = 0 $include «подсветка 2.bas» ‘подключаем приветствие Portb = 0 Ddrb = &B00000000 ‘отключаем порт В ‘############################################# ‘ в начале программы замеряем ёмкость кнопок и запоминаем Portd = &B0001 For A = 1 To 3 ‘проверяем поочереди все кнопки в ряду S(a) = 0 For E = 0 To 50 ‘количество проверок Gosub Sensor If S(a) < T(a) Then S(a) = T(a) ‘и запоминаем максимальное значение Next E S(a) = S(a) + 10 ‘определяем порогсрабатывания Next A Sound Porta.1 , 1000 , 200 ‘############################################# ‘ ОСНОВНОЙ ЦИКЛ ‘############################################# Do For E = 0 To 3 ‘поочерёдно подключаем ряды Portd = Lookup(e , Dta) For A = 1 To 3 ‘в каждом ряду проверяем строки Gosub Sensor If T(a) > S(a) Then ‘и если сработала F = E * 3 ‘вычисляем номер кнопки F = F + A Gosub Knopka End If Next A Next E Loop ‘***************************************** ‘замер состояния кнопок Sensor: Ddrd = &B1111111 ‘PortD на выход, Waitms 5 ‘и разряжаем ёмкость сенсоров Ddrd = &B0001111 ‘переводим строки в состояние приёма Start Timer0 Select Case A Case 1 : Bitwait Pind.6 , Set ‘ждём, когда зарядится ёмкость кнопки Case 2 : Bitwait Pind.5 , Set Case 3 : Bitwait Pind.4 , Set End Select Stop Timer0 T(a) = Timer0 ‘запоминаем ёмкость кнопки Timer0 = 0 ‘переводим входы на выход Ddrd = &B1111111 Portd.4 = 0 Portd.5 = 0 Portd.6 = 0 ‘разряжаем ёмкость кнопок Return ‘****************************************** Knopka: Waitms 50 Gosub Sensor ‘ещё раз перепроверяем If T(a) > S(a) Then ‘через время Select Case F ‘и выдаём код Case 1: Ddrb = &B11110011 Portb = &B00110010 Case 2: Ddrb = &B11110110 Portb = &B00100100 Case 3: Ddrb = &B11111100 Portb = &B00011000 Case 4: Ddrb = &B11110011 Portb = &B01100001 Case 5: Ddrb = &B11110110 Portb = &B01010010 Case 6 : Ddrb = &B11111100 Portb = &B01000100 Case 7: Ddrb = &B11111010 Portb = &B10011000 Case 8: Ddrb = &B11110101 Portb = &B10000001 Case 9: Ddrb = &B11111001 Portb = &B01110001 Case 10: Ddrb = &B11111010 Portb = &B11000010 Case 11: Ddrb = &B11110101 Portb = &B10110100 Case 12: Ddrb = &B11111001 Portb = &B10101100 End Select Sound Porta.1 , 200 , 200 Waitms 100 End If Ddrb = &B11110000 Return Dta: Data &B0001 , &B0010 , &B0100 , &B1000 Программа отрабатывает довольно чётко, каждое нажатие. Основной критерий – это комплектующие и печатная плата. (Всё-таки сенсор!) Резисторы и диоды, желательно новые и с одной линейки, (партии). Памяти, код, занимает не много, поэтому драйвер вполне можно реализовать в составе другой программы, а можно использовать и отдельно. На вывод кода отведено четыре вывода, что вполне достаточно для любых способов. Ну и преимущества сенсорной клавиатуры очевидны! Кроме «вечности», она облегчает изготовление лицевых панелей устройств! фото плат: Основная плата Плата сенсоров Еще одним плюсом будет служить то, что дизайн клавиатуры будет ограничен только вашей фантазией: Файлы к проекту: Материалы статьи любезно предоставлены товарищем kip96 |
Недорогие сенсорные выключатели
Очень часто при изготовлении или модернизации осветительных приборов и подсветки встает вопрос об их включении/отключении
Сперва покупал обычные выключатели для бра на провод. Затем накупил миниатюрных выключателей на ТАО
И вот случайно мне попался обзор про копеечный сенсорный выключатель
Сделав анализ предлагаемой в китайшопах продукции и заказав несколько штук на пробу, произвел небольшую классификацию сенсорных устройств
Типы недорогих сенсорных выключателей
«1-WAY» выключатели. Имеют два состояния: отключено/включено. Работают на микросхеме TT6061B или каком то ее китайском аналоге.
«3-WAY» выключатели. Имеют четыре состояния отключено/низкая мощность/средняя мощность/полная мощность переключаемые последовательно. Работаю на микросхеме TT8486A/TT6061A, представляющей собой симисторный диммер. Естественно, что работать диммер будет только с лампами накаливания. Светодиодным драйверам, нормально работающим при пониженном напряжении, вполне хватает для работы и малой мощности, но отключения света происходит в «три клика».
По мощности выпускаемые устройства бывают «1A 60Вт» и «3A 100Вт». Амперы там китайские, а вот максимальная нагрузка ближе к истине.
В 1А модели стоит маломощный симистор MAC97 в корпусе TO-92 и максимальным током коммутации 600мА
В «3-х амперном» собрате стоит более мощный симистор BT134 600E. Этот симистор хоть и рассчитан на максимальный ток 4A, но в корпусе SOT82 без радиатора вряд ли сможет управлять нагрузкой более 1А
Заказ в интернете
Почему то в большинстве китайских магазинов представлены более мощные модели только «3-WAY», которые не имеет смысла ставить на светодиодные светильники.
Но это не беда. Покупаем модель «1-WAY 1A». Я взял на АЛИ менее $4 за 5 шт
Про странный трек от продавца на данный товар я написал в своем обзоре покупки на миське
Модернизация
На платах таких выключателей предусмотрены отверстия установки как маломощных, так и мощных симисторов. Причем, судя по надписям на плате — вполне «взрослому» BT136 в корпусе TO-220
Не так давно для силовой коммутации в контроллере управления вентилятором и люстрой покупал на EBAY симисторы BT137 600E
Замена симистора — минутное дело:
И вот результат — имеем выключатель «1-WAY 5A» по китайской классификации 🙂
Пришлось по другому загнуть электролитические конденсаторы, чтобы они не задевали корпус симистора, на котором, увы, сетевой напряжение
Подключаю. Все работает. Симистор на 20 Вт не греется. Если нужна большая мощность, можно посадить симистор на радиатор. 25см2 позволит управлять примерно 800Вт нагрузки. Правда корпус придется искать другой. А чтобы радиатор изолировать от силовой нагрузки нужно, при креплении к симистору использовать специальные изолирующие шайбы и прокладки для корпуса TO-220
Я их тоже покупал на EBAY
Пластиковые шайбы — изоляторы — $1.42/100
Силиконовые изолирующие прокладки — $0.99/100
Результат
Использовал устройство в выключателе подсветки полочки/зеркала. Сенсор вывел на вертикальную металлическую штангу.
Использовал в настольной лампе. Сенсор соединил прямо с радиатором
Поставил на управление подсветкой раковины с сенсором на алюминиевом профиле подсветки.
Во всех случаях был достигнут «ВАУ эффект». Некоторые гости подолгу баловались и говорили «О магия» не смотря на наличие сенсорных телефонов в кармане.
На кота сенсор не реагирует. Видимо шерсть мешает Носом кота нажимать не пробовал. Он итак был недоволен
Литература
со своего сайта.
Сенсорный выключатель на модуле TTP223
Ввиду мелкого размера микросхем TTR223 (datasheet), данный сенсорный модуль является довольно удобным выходом для тех, кто не хочет связываться с распайкой детали в корпусе SOT-23. О модуле и примере его практического применения можно прочитать ниже.Предыстория:
пару лет назад на у китайцев был приобретен настенный двухрожковый светильник, в данный момент он не продается. Подобных изделий на Али предлагается огромное количество. Так и лежал он, так сказать про запас, до тех пор, пока не решил использовать его при ремонте ванной комнаты. Провод для светильника, перед укладкой плитки, в стену заложил, но затем встал вопрос как включать светильник? Работать он должен отдельно от основного света на потолке, т.к. там стоят яркие лампы, а когда лежишь в ванной хотелось бы мягкий рассеяный свет. В коридоре стоит трехклавишный выключатель (туалет, коридор и верхний свет в ванной), городить туда еще один отдельный выключатель для светильника смешно. Сначала думал вставить в корпус светильника выключатель на шнурке, но размеры не позволили этого сделать. Решение стало очевидным — подавать на светильник 12В с вынесенного блока питания, установить светодиодные лампы DC12 и сделать сенсорное включение прикосновением по корпусу, для чего и был приобретен описываемый модуль.
Саму микросхему уже здесь описывал koltinov, поэтому я опишу только сам модуль. Модуль представляет собой распаяную микросхему с минимальной обвязкой из конденсатора и светодиода с резистором, извещающего о срабатывании сенсора.
Так же на модуле есть пары выводов под запайку А и В. Пара А — служит для выбора уровня на выходе модуля при срабатывании — по умолчанию высокий уровень, в запаянном состоянии — низкий. Пара В — для управления типом срабатывания — по умолчанию кнопка, в запаяном состоянии триггер. Кроме того, рядом с микросхемой TTP223 имеется место под установку конденсатора от 0 до 50 пФ для снижения чувствительности сенсора, сюда же подпаивается проводок для выносного сенсора.
Таким образом, я запаял пару В (нужен высокий уровень для открытия N-канального мосфета), поставил конденсатор 0805 на 30пФ и сначала сделал вывод на корпус светильника. Не тут то было, из за размера корпуса нет четкого срабатывания, включение происходит крайне не стабильно, в том числе в зависимости от того, раскрыта кисть или вытянут один палец — может сработать при положении руки за 20 см от светильника, а может не сработать при прямом прикосновении. Установка конденсаторов различных номиналов ничего не дала, чувствительность менялась, но нестабильноть работы так и оставалась. Пришлось винтик и декоративную шишечку, с помощью которых светильник крепиться к внутреннему кронштейну (а тот соответственно к стене) изолировать от основного корпуса с помощью прокладки из текстолитовой шайбы, силиконовой резинки (от какого то винчестера) и кусочка термоусадки.
Вывод на сенсор подпоял к этому винтику. Модуль срабатывает четко, только от прикосновения к маленькой шишечке (человек со стороны и не поймет как лампу включить). Т.е. при его использовании не следует стремиться к сенсору большой площади. Платка легко помещается внутрь корпуса, туда же сунул 7805 для запитки модуля и мосфет 60N03L в качестве реле для светодиодных ламп, все оголенные проводки и выводы покрыл цапон-лаком и приклеил изнутри к корпусу на термоклей.
Найти подходящую лампу оказалось не так просто, абажуры устанавливаются на лампы и держатся за счет ее формы, а ламп на DC12В с цоколем Е14 в форме капли можно сказать и нет. Хотел уж было лампочку на 220 В переделывать, но потом нашел эти, взял на 3Вт, 4000К. При 12В потребляет 0,26 мА, что соответствует заявленной мощности.
Судя по коробочке, производитель изготавливает лампочки всеразличных цветов, мощностей, на разные цоколи и напряжения
В качестве источника питания применил блок питания на 12В 1А, его описывал Kirich в своем обзоре.
Заодно сделал подсветку под тумбой с умывальником. Я как то описывал микроволновый датчик движения, применял его тогда для скрытой установки за пластиковой дверцей. Но в данном случае из под тумбы есть прямая видимость, поэтому использовал всем известные ультразвуковой датчик SRF-05, Ардуино Nano и тот же мосфет 60N03L, что получается в два раза дешевле. В качестве источника света использовал такой светодиодный модуль
Я его не покупал, а взял с рекламного проспекта, с выставки
Для точечной скрытой подсветки такие модули самое то, мне понравилось. На Али наверняка есть что то подобное.
По настоящему свет гораздо мягче чем на фото, при этом видно все помещение, если зашел что то взять или положить — основой свет можно не включать. На ощупь он греется слегка, сзади металлическая пластина, приклеил к холодной плитке на стену и никакого перегрева. Подобные модули рекомендую всем, гораздо удобнее лены + гидроизоляция.
Схема в светильнике:
Переделка кнопочного радио выключателя в сенсорный / Z-Wave.Me corporate blog / Habr
Давно мечтал дома установить сенсорный выключатель, мечта сбылась, когда мне подарили недорогой сенсорный выключатель FD Electronics. Выглядит красиво, работает отлично. Но это просто выключатель, а у меня умный дом на базе Z-Wave и конечно я захотел интегрировать его в свою систему.
У FD Electronics, Livolo и DeLumo есть радио выключатели работающие на частотах 433МГц и 868МГц соответственно, но интегрировать их в умный дом не получится. Эти выключатели работают только с пультами этих же производителей, управления с компьютера нет, обратной связи нет, т.е. если кто-то включит свет я об этом не узнаю.
Было принято решение скрестить ежа с ужом мой кнопочный радио выключатель Z-Wave.Me Dimmer с сенсорным выключателем FD Electronics. Изучив схемы обоих выключателей, я решил выкинуть силовую часть сенсорного выключателя и использовать только корпус и сенсорную панель, а от своего Z-Wave выключателя взять силовую и радио часть. Суть переделки заключается в замене механических кнопок на сенсорные, этот способ подходит к выключателю любой технологии.
Самой популярной микросхемой для создания сенсорной кнопки является TTP-223. Главной особенностью TTP-223 является способность автокалиброваться. При подаче питания микросхема измеряет емкость на ножке сенсора I и принимает её за 0, это удобно так как не нужно ничего настраивать. При касании к сенсору, на ножке Q появляется напряжение, туда подключаем нагрузку (LED, реле, оптопара).
С помощью ножек TOG и AHLB настраивается реакция на касание к сенсору. Я настроил режим включения, соединив TOG и AHLB с землей, это означает, что когда я касаюсь сенсора на ножке Q появляется напряжение, когда отпускаю сенсор, напряжение пропадает. Еще можно настроить режим переключения, тогда каждое касание переводит ножку Q в противоположное состояние.
Для теста TTP-223 на макетке собрал схему по управлению реля для Arduino. Прекрасно работает.
Чтобы имитировать нажатия физических кнопок, я использовал оптопару PC817C. Оптопары я припаял вместо кнопок на мой диммер. При подаче напряжения на оптопару, она замыкается, для диммера это как будто нажали кнопку. С помощью ЛУТ была сделана плата-переходник, с одной стороны схема сенсора, с другой оптопары.
Соединив весь этот бутерброд у меня получился сенсорный Z-Wave диммер. На все тесты и сборку ушло 2 вечера. Выключатель установил в коридоре, где им управляет датчик движения, а если нужно принудительно выключить или включить на определенный уровень яркости, то можно легонько прикоснуться к прекрасному!
PS. Полученный опыт я решил использовать для создания сенсорного выключателя на батарейках, и уже заказал с aliexpress сенсорную панель от выключателя Livolo, но об этом позже.
Препарирование сенсорного выключателя LIVOLO. / Схемотехника / Сообщество EasyElectronics.ru
От большинства подобных устройств эти выключатели отличает одна интересная особенность — они включаются в сеть по двухпроводной схеме, просто в разрыв цепи. При этом независимо от того замкнута цепь или нет его схема обеспечивает питанием микроконтроллер, радиомодуль, светодиоды и реле. Посмотрим как он устроен.В качестве подопытного возьмём самую простую модель — с одной кнопкой и без радиомодуля.
Разбираем и видим такой бутерброд:
В середине верхней платы собственно площадка сенсора накрытая рассеивателем света от двух светодиодов.
Заправляет всем этим PIC16F690:
А вот и силовая часть:
(фото кликабельны)
Как видим сама плата рассчитана на полный фарш, но второе реле с обвязкой и радиомодуль не распаяны.
Теперь берём и заносим в таблицу позиционные обозначения элементов, типы корпусов, номиналы, маркировку. Выпаиваем и измеряем ёмкость smd конденсаторов. Далее вооружившись гуглом и знанием страны происхождения девайса пытаемся расшифровать маркировку активных элементов.
Чтобы проследить топологию платы выпаиваем все детали которые в этом мешают и вооружившись мультиметром в режиме прозвонки восстанавливаем схему по плате. Вопреки опасениям заняло это всего пару часов.
Схема получилась вот такая:
(схема в полном размере в прикреплённом файле)
Тут только нижняя плата и только те элементы которые распаяны на конкретном экземпляре.
Цветами отмечены:
красный — схема питания в режиме «ВЫКЛЮЧЕНО»
зелёный — схема питания в режиме «ВКЛЮЧЕНО»
желтый — линейный стабилизатор на 3 вольта для питания МК, радиомодуля и пищалки
синий — реле и его обвязка
серый — управление пищалкой
фиолетовым отмечены делители с помощью которых МК измеряет напряжения в разных участках схемы
Клеммы L, L1 те что выходят наружу, JP1 — разъём стыковки с верхней платой.
UPD:
Рассмотрим работу схемы питания при включеyной нагрузке, этот участок обозначен зелёным цветом. Обозначим напряжение на выходе этой схемы как V2.
Основным элементом в этой цепи является ОУ LM321, но в данном случае он работает как компаратор. На положительный вход ОУ поступает напряжение V2 за вычетом 12 вольт, которые падают на стабилитроне D17. На отрицательный вход поступает напряжение с выхода интегрального стабилизатора U1 через делитель R18, R30, этот делитель может быть включен или выключен транзистором Q3.
Работает схема так:
Предположим что напряжение V2 = 13 вольт. В этом случае на положительном входе ОУ напряжение 13В — 12В = 1В, на отрицательный врод через резистор R18 поступает 3В, т.к.на выходе ОУ низкий потенциал, Q3 закрыт и делитель не работает. Так как напряжение на положительном входе ОУ меньше чем на отрицательном, на выходе ОУ будет низкий уровень, Q4 при этом открыт и конденсатор С3 заряжается через диод D5.
Как только V2 превысит 15В напряжение на положительном входе ОУ также станет больше чем на орицательном, на выходе ОУ появится высокий уровень, который откроет транзистор Q3, в работу включится делитель R18, R30, напряжение на отрицательном входе ОУ при этом уменьшится с 3В до 2.1В. При этом также откроется Q4 и весь ток нагрузки потечёт через него.
Так как на отрицательном входе ОУ теперь 2.1В, то схема останется в таком состоянии до тех пор пока напряжение V2 не снизится до 14.1В, после чего весь цикл повторится.
При этом схема никак не синхронизируется с частотой сети и может вообще работать на постоянном токе, при соблюдении полярности.