制作一个点阵艺术徽章,可在RGB三色点阵显示屏上绘制8x8的图案
它是一款有趣的徽章,用于在RGB(红、绿、黄 = 红 + 绿)三色点阵显示屏上绘制员工信息。
工作原理与硬件说明
本设计无需任何库文件,也不使用额外的7219点阵驱动IC。LED灯珠通过24个GPIO引脚直接驱动,每个引脚均串联一个100欧姆电阻。引脚以高速切换方式驱动显示屏。显示屏的工作原理是:每行最多可切换8个同色LED,黄色时,单个点中同时亮起红和绿两个LED。
CPU主频为8 MHz,由内部振荡器提供时钟信号。开关通过ATmega32A的INT0、INT1、INT2引脚实现中断驱动,并使用1微法电容进行硬件去抖。此外还配备了一个复位按钮,用于清除当前显示图像。
四个AA电池串联安装于专用电池座中,并并联一个二极管(以降低电压至绝对最大值以下),新电池时输出电压约为5.95伏。电流消耗约为12-24毫安。
蜂鸣器每次按下都会发出“咔哒”声,以确认用户已收到输入。
制作方法
该徽章基于ATmega32A微控制器,在面包板上组装完成。
•24 个 GPIO 接口用于点阵显示屏
•3 个输入接口(+复位)用于按钮
•1 个输出接口用于蜂鸣器
•4 个 SPI I/O 接口,可作为 ISP 与 Arduino 连接
黄色后盖为塑料笔盒部件,用于支撑设备。所有电气连接均通过焊接完成,物理连接则使用热熔胶固定!
设备操作
•黄色按钮:清屏(复位)
•绿色按钮:将闪烁的点移动到下一个位置(从当前位置向右移动)
•红色按钮:在当前位置设置一个发光颜色的点
•蓝色按钮:在当前位置将点的颜色按 R-G-Y 顺序随机切换
•电源:4 节 AA 电池串联并带二极管(电压接近 6 伏)
设备在无操作几分钟后进入睡眠模式以节省功耗,但图像会保留在 RAM 中,直到按下复位键为止。
•电压:从 6 伏降至 2 伏(仅限红色灯点)
•发光点:加载预编程的图像
可通过代码加载图标和图像。每个帧需要 64 位的单色数组以及 3×64 位的混合色图像数组。
32KB 的闪存可存储大量 8x8 图像!
编程:使用 ATmega32A 和 Arduino 1.0.6
微控制器通过SPI端口使用ISP编程进行编程,代码编写于Arduino IDE 1.0.6版本,该版本包含一些AVR C风格的寄存器设置。在上传应用代码之前,先刷入一个较旧的Atmega32A引导程序。较新的IDE可能无法正常工作!
结论:亮度与闪烁问题
徽章显示屏的亮度并不高。虽然它适合低光环境,但在明亮的房间内亮度会明显下降。可以通过增加每个点的“开启时间”来提高亮度,但这会导致由于刷新率过低而出现明显的屏幕闪烁现象。
解决这一问题的一种方法是将MCU以20-24 MHz频率运行,并使用晶体振荡器代替其内部8 MHz RC振荡器。希望之后我会尝试这种方法。
本文编译自hackster.io





