步骤1:读取bcd二进制时钟
所描述的时钟使用二进制编码的十进制(bcd)显示方法,首先进行描述。在这种方法中,时间的每个数字都被隔离并显示为二进制数。例如,一分钟的37分钟显示为0000 0011(二进制3)和0000 0100(二进制7)。
每个分段的每个数字(小时,分钟,秒)占据一列。空白列分隔每个对,则使用8列。有时候事情不是很整洁吗?
步骤2:所需的设备
arduino。
我使用了nano,因为我可以将所有东西都放在一块面包板上。我购买了一个品牌外的产品。
显示
一个max 72xx led矩阵分支板。请注意,max72xx引脚可能因型号而异,请检查)。
电源,地线,三个信号跳线。
我颠倒安装了地雷,因此在其控制引脚上使用了公母跳线。
i2c ds3231实时时钟(rtc)转接板。
电源,地线和两条信号线。
小面包板。
我将所有东西都挤在了400针板上。
用于arduino的电池或交流适配器(未显示)。
第3步:接线
max72xx的五个引脚根据ledcontrol库页面进行接线。我的7219的针脚顺序与所述的不同。
vcc-+ 5v
gnd--接地
din(数据输入)-d10
cs(在库中称为“ load”。)-d11
clk(时钟)-d12
时钟已连接到i2c引脚(检查您的arduino模型)。对于nano 。..
vcc-+ 5v
gnd--接地
sda--模拟4
scl--模拟5
步骤4:关于算法的注释
led矩阵的每一列均表示一位。分离。将小时,分钟和秒转换为两位数是微不足道的。..
通过将小时除以10(没有余数)来将第一个数字隔离。
将第二个模块除以10(仅余数)()(仅余数)。
我们点亮一列led,以对应于适当数字的二进制表示形式。为此,我们使用ledcontrol.h库的setrow()函数,该函数需要三个参数
矩阵编号(每个实例库最多可处理8个)。计数从0开始,这就是本草图中使用的数字,因为我们只有一个矩阵。
列号(从左侧开始,编号为0-7)。如所使用的,列0和1分别对应于小时的第一位和第二位数字。
从上到下描述要打开的led的字节(1 = on)。
小时/分钟/秒个位数字以十进制整数形式返回值(即0-9)。必须使用byte()函数将它们转换为所需的字节(二进制)值(以编程方式来说就是“转换”)。
setrow(),在我的矩阵上,将led填充为与输入/输出引脚,但最低有效位(“底部”)更靠近输出引脚-我将其颠倒安装。 (尝试使用您自己的矩阵led)。请注意,您需要按位数学求逆顺序,以便将led矩阵右侧向上安装,如果要横向安装led矩阵,请使用setcolumn函数。
第5步:草图
第6步:改进和注释
构建并运行起来后,我发现令人惊讶的是,显示屏的体积很小,这当然是led矩阵尺寸的函数。
我有一个座钟,如果可以找到一个便宜的钟表的话,我会拉出马达外壳,用一圈烟熏玻璃或丙烯酸玻璃代替钟面。 (我将尝试在当地的自动窗户着色处停下来并要求报废)。因此,led矩阵的电路板和芯片将隐藏起来。另一个可能的方法是切割一个染色或涂漆的木质圆圈,以形成很好的对比度,并在其中切出一个方孔,以刺穿led面。我怀疑我的卷轴看到了技能,因此,我需要伪造某种边框。也许是黄铜的脸?我可以使用飞刀,立铣刀或研磨复合物在车床上制作出光滑的光洁度,或在漂亮的涡旋形图案上进行加工,但需要找出一种方法来在导孔中获得相对直角,而立铣刀则无法实现, -也许是纵切锯。
目前,可以通过重新编程arduino nano来调整时间,这是最不切实际的。可以添加三个按钮,每个分段分别为一个小时,分钟,秒,每个按钮分别按小时,分钟和秒,然后按相应的按钮将当前分段增加一个单位。那是最简单的编程。但是,一个按钮会更优雅:长按进入小时数调整模式,短按递增,等等。
我想将草图转移到attiny85并收回我的nano板(也更容易转移到时钟盒中。)
能识别身份的不止你的手,还有你的脚
三星希望通过下一代旗舰产品Galaxy 10和可折叠屏幕手机来渡过难关
基于ARM Cortex-M3处理器平台的μC/OS-II任务调度硬件实现
NVIDIA360度全方位立体视听系统:让你身临其境
STM32 ILI9341驱动TFTLCD(十)LCD显示汉字(补充)
使用LED矩阵的Arduino二进制时钟的制作教程
玻璃反光也能误识别?当自动驾驶遇到千奇百怪的corner case
进军太阳能?钰泰半导体推出带MPPT、大功率路径管理的ETA6015宽电压充电IC
如何使用Blynk的家庭自动化
摆动型音圈马达在激光雷达中的应用
科技如何塑造明日的健康之路?
LOTO虚拟示波器软件功能演示之——FIR数字滤波
小米9和荣耀V20哪个最值得买
发改委:以全面开放推动船舶工业高质量发展
烽火OPGW光缆提速铁路新基建
FPGA之主时钟约束解析
请教比较器和运放可以不经三极管而直接驱动光耦吗?
三极管的判定步骤
USB硬件接口类型速览
如何才能有效地缓解海量真实源DDoS攻击