如何利用WS2812构建模拟时钟
扫描二维码
随时随地手机看文章
虽然出于某些原因,大多数时钟都是用数字显示时间的,但显示指针的时钟仍然有一些魅力。
上面显示的时间是09:19:11
使用指针的时钟通常被称为模拟时钟,尽管不包括模拟元件。这个时钟甚至没有指针,它只是通过使用Neopixel模块来显示它们指向的位置,该模块呈圆形,带有60个WS2812 led。事实上,它们分为四个部分,你必须把它们焊接在一起。
在这种情况下,它使用由Mainflingen(法兰克福附近)的发射机以77.5 kHz的频率分配的时间信号,该信号可以由便宜的DCF77接收器模块接收。虽然有很多库可以解码该信号,但我开发了自己的代码。关键是,你必须检测脉冲传输的开始时间和结束时间。这是由该脉冲调用的中断服务例程(ISR)完成的。当它被上升信号触发时,下一个触发原因必须设置为下降,反之亦然。所以ISR改变了中断本身的原因。这只是真实ISR的一个简短摘录:
接收和解码时间信号至少需要一分钟,甚至更多。在DCF77标准战争推出的时候,空气中没有太多的电磁噪声,但现在有很多设备(合法的和非法的)会产生紊乱,如果你能收到清晰的信号就很幸运了。
在我的项目中,时钟面显示为蓝色,而它仍在等待一个完整的有效传输,当检测到有效传输时显示为绿色。当检测到错误时,内部时钟将继续运行,这将通过显示红色钟面来指示。
“秒针”用红色LED指示,“分针”用绿色LED指示,“时针”用蓝色LED指示。为了更容易找到分钟,LED会闪烁。
该代码提供使用UNO-R3(在本例中为NANO)或UNO-R4(在本例中为所有IO引脚提供额外头的R4克隆)微控制器和具有任何极性的dcf77模块。微控制器和天线之间应该有一定的最小距离,因为控制器本身会产生一些影响接收质量的噪声。
必须承认,使用R4是一个完全的过度杀伤。
RAM和ROM使用情况:
ROM: R3: 6192字节(19%),R4: 42404字节(16%)
内存:R3: 639字节(31%),R4: 4092字节(12%)
当将分段安装到电路板上时,您可能希望电路板顶部的LED数字为零,对应于众所周知的时钟,其中12位于顶部位置。在下面的图片中,白色的线是水平和垂直的线。
所以两个部分之间的连接处必须旋转3度才能达到这个效果就像黑线显示的那样。
本文编译自hackster.io





