本方案是基于 ATtiny85 的编码消息闪烁器,项目通过按下按钮为编码消息闪烁一个 NeoPixel RGB LED,同时需要由电池供电。
硬件
对于该项目,我选择了 ATTiny85。一个 8 针 IC 带有 6 个 GPIO、SPI、I2C 接口。该芯片还可以使用 Arduino 引导加载程序进行编程,因此编程非常容易。
对于 RGB LED,显而易见的选择是臭名昭著的 WS2812B。通过单线接口工作使得控制非常方便。
对于电池充电和保护电路,我决定使用基于 TP4056 的预建模块。它增加了充电电路以及锂离子电池的过充、过流保护。我还添加了一个滑动开关作为电路的电源切断。
对于交互,默认上拉条件下的按钮被添加到中断引脚。
最终的示意图看起来像这样。
在穿孔板上焊接所讨论的电路后,最终的硬件如下所示。
软件
为此编写的软件基于 Arduino。为了开始这个,我需要先将 Arduino 引导加载程序闪存到 ATTiny85。
之后,我编写了程序。它包含以下主要块。
1. 声明 0、1 和关闭状态的颜色
2. 将 ASCII 代码声明为二维字符数组。内部数组是一个 8 位数组(0 + 7 位代码)的代码,外部数组封装了字符
3. 按钮按下下降沿的外部中断触发发送消息功能
4.发送消息函数循环遍历字符串,循环遍历字符的每一位,并闪烁对应的数字。它还增加了空格和下一个字符的延迟。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !