ATtiny4上的LED魔术按钮

SESAM


我很久以前曾经有触摸感应式奇迹开关SESAM 。 我真的很喜欢他。 但是时代在变,它不再适合室内装饰,因此它完全不适合与各种时尚的节能灯一起使用。 我喜欢其中的管理原则。 短按传感器即可打开/关闭灯,长按可调节亮度。 谁在乎 -断路器是西门子S576B的类似产品K145AP2 (仍在销售K145AP2)。


根据削减,我的版本模拟了该芯片的操作。


不久前,我为自己准备了一个铝制的LED灯带,上面有一个漫射器,这引起了我对开关的疑问。 准备工作有点麻烦。 这样一来,它就挂在电线上了-换上普通的开关并不美观-破坏了视线,而且实在无处可去。


我决定在16mm刨花板的末端建造一个开关,并为一个开关和一个调光器。 使它摸起来,盖上贴纸,家具制造商用螺栓将面具遮住。



从传感器开始。 我尝试了将电荷转移到ATtiny13A的原理。 该选项正在运行,但是我懒得去理会自动调整参数等。 他也没有拿完成品。


然后,我决定尝试在QTouch库上实现传感器。 作为ATtiny10传感器。 有一个现成的实用程序,可将ATtiny10变成具有所有优点的触摸按钮。 但是在输出中,二进制文件很难在其中添加代码。 我考虑了该怎么做,上网了,然后我提到了TTP223-一个触摸按钮的控制器。 这个选项非常适合我。


作为MK,选择权落在ATtiny4上 。 与16位定时器TTP223一样小。 是的,很长一段时间以来,我想对这些修补纸做一些有用的事情。


作为关键-旧主板上的P3055LD


电路板


在开发印刷电路板时,我从以下事实开始:刨花板末端的孔需要尽可能的小,我决定7毫米的直径就足够了。 该板的尺寸为7x28mm,分为两层。


后来,在对板进行焊接时,很明显,该板无法装入7mm的孔中,至少9mm-它没有考虑元件的高度。 带有标签的想法也以某种方式停止了。 然后一个家具桩吸引了我的眼球! 专为10mm孔设计,内径恰好7mm! 一切都巧合!


传感器本身贴在一条单独的围巾上,该围巾焊接在主端上。 在图片中您可以看到。


图片

漂亮图片
漂亮图片
漂亮图片
漂亮图片


程序


控制程序用汇编器编写。 每32毫秒(看门狗定时器)对传感器进行一次轮询。 根据当前状态和按压持续时间,执行某些操作。 工作逻辑与原型K145AP2略有不同


如果指示灯熄灭(通电后的状态):


  • 短按可以关闭时的相同水平打开照明。 首次以最大亮度打开时
  • 长按可最大程度地打开灯光。

如果指示灯亮:


  • 短按可关闭灯
  • 长按可更改亮度。 反复长按可改变亮度的变化方向

程序过短的按下(干扰)将被忽略。 亮度由PWM系数(16位)设置。 PWM频率约为122 Hz(8,000,000 Hz / 2 16≈122 Hz)


为了从实际亮度中补偿对照明亮度的心理生理感知,沿立方抛物线的一部分发生了后者的变化 。 通常使用表格进行此操作,但是在我的版本中,系数是计算得出的。 该系数随PWM频率而变化,也就是说,当亮度改变时,每个脉冲都有其自己的持续时间。 最小PWM值受软件限制。


MK大部分时间与TTP223一起休眠并消耗约16微安培的电流。 也就是说,该电路非常适合具有自主电源的设备。


ATtiny4有六个引脚。 两个用于电源,一个默认用于复位。 我已经涉及了两个。 只剩一个。 我想到了如何使用它。 然后我想起了一个新朋友的带有Force Touch触控板的笔记本电脑。 作为实验,我决定做类似的事情。 我不需要太大的可靠性,而且旧手机有很多振动马达。 结果,我在程序中实现了这样的功能:当达到调整极限时,在自由输出上会出现短脉冲。 在K145AP2中,到达调整边界时,调整方向改变。 因此,需要一些技巧以最大或最小程度从传感器上移开手。 在我的实现中,到达边界时,调整停止。 从一个边界到另一个边界的总调整时间约为4秒。


GitHub上可用的代码


通过Arduino的TPI


另外,我注意到MK的编程。 我的JTAGICE3不支持TPI编程接口。 但是,幸运的是, 好人在Arduin写了一个草图来编写这个小东西。 并不是马上,但是一切对我来说都是可行的,固件被淹没了,一切都正常了。 除arduins外,还需要4个电阻。 整个过程画在草图上。


总结


魔术按钮已安装并按预期工作。 电流消耗和尺寸使其可以嵌入具有自主电源的设备中。


我没有从振动中得到预期的效果。 这里显然需要对安装站点进行实验。


在原型K145AP2Siemens S576B类似物中,有一个结论“睡眠”。 在这种模式下,亮度下降非常缓慢,直到完全关闭为止。 按照制造商的计划,为此在床头附近安装了一个附加传感器。 PWM定时器的16位使能该模式。


这是来自未来的想法。


按钮到位

漂亮图片


像一切。


谢谢大家!


UPD:如我所愿,我将PWM频率提高到接近1kHz。 GitHub代码

Source: https://habr.com/ru/post/zh-CN411263/


All Articles