如何使用MAX7219和DS1307制作7段数字时钟

使用 max7219 和 ds1307 实时时钟 (rtc) 制作 7 段数字时钟,快速简单!
ds1307 实时时钟是广泛可用的低成本 i2c rtc 模块。它们带有一个时钟和一个小电池,当连接到 arduino 时,即使 arduino 板没有通电,也可以实时跟踪。
在本文中,我将向您展示如何将 ds1307 i2c rtc 模块和max7219 控制的 7 段 led 显示屏连接到 arduino,读取和显示时间,并使用visuino对所有这些进行编程。我将使用我拥有的tiny rtc 模块,但它应该与任何其他 ds1307 模块非常相似。
第 1 步:组件
一块arduino兼容板
一个 ds1307 实时时钟模块(我使用了 tiny rtc 模块,但任何其他 ds1307 模块都可以)
一个带max7219控制器的8位7段显示模块
一个小面包板(可以使用任何面包板,或任何其他方式将 3 根电线连接在一起)
3 公母跳线
7 母母跳线
第 2 步:将实时时钟连接到 arduino
将母-公 5v vcc 电源(红线)的母端连接到ds1307 rtc模块
将母-母线 -地线(黑线)、scl (橙线)和sda (蓝线)连接到ds1307 rtc 模块
将sda 线(蓝色)的另一端连接到arduino nano板的sda/模拟引脚 4
将scl 线(橙色)的另一端连接到arduino nano板的scl/模拟引脚 5
将地线(黑色)的另一端连接到arduino nano板的接地引脚
第 3 步:将 led 模块连接到 arduino
将母-公 5v vcc 电源(红线)的母端连接到led 模块
将母-母线 -地线(黑线)、din (绿线)、cs (灰线)和clk (黄线)连接到led 模块
将地线(黑色)的另一端连接到arduino nano板的接地引脚
将clk线(黄色)的另一端连接到电路板的digital 13引脚
将din线(绿色)的另一端连接到arduino nano板的digital 11引脚
将cs线(灰色)的另一端连接到arduino nano板的digital 10引脚
第 4 步:将电源线连接到 arduino 板
将另一根母-公电源线(红线)连接到arduino板的5v电源引脚,并保持公端未连接
在面包板的帮助下将3 根电源线(红线)的公端(来自显示器、时钟模块和arduino)连接在一起。在我的情况下,我使用了一个小面包板
以红色显示arduino nano的5v power引脚在哪里。蓝色显示在前面的步骤中完成的连接。
第 5 步:启动 visuino 并选择 arduino board 类型
要开始对 arduino 进行编程,您需要先从此处安装
arduino ide : http ://www.arduino.cc/
visuino : https://www.visuino.com
安装后步骤:
启动visuino
在visuino中单击arduino组件上的“工具”按钮
出现对话框时,选择“ arduino nano ”
第6步:在visuino中,添加并连接maxim max7219 led组件
在 component toolbox 的 filter 框中输入“ led ”,然后选择“ maxim led controller spi max7219/max7221 ”组件,并将其放入设计区域
将ledcontroller1组件的“ out ”引脚连接到arduino组件spi通道的“ in ”引脚
将ledcontroller1组件的“ chipselect ”引脚连接到arduino组件的“ digital[10] ”通道的“ digital ”输入
第 7 步:在 visuino 中,将 integer display 7 segments 元素添加到 maxim led 控制器组件
ledcontroller1 组件可以以多种不同方式控制 led。led 的组织和控制方式取决于将添加到组件中的元素。在这里,我们将添加 3 个整数元素,每个元素有 2 个数字和 2 个无符号位像素元素。时间将显示在整数元素中,位像素元素将用于小时、分钟和秒之间的分隔符。
点击ledcontroller1组件的“工具”按钮打开元素编辑器
在“元素”编辑器中,选择右侧的“整数显示7段”,然后单击左侧的“”按钮,为组件添加一个元素
在 object inspector 中,将新添加的“ integer display 7 segments1 ”元素的“ countdigits ”属性的值设置为2
在 object inspector 中,将新添加的“ integer display 7 segments1 ”元素的“ leadingzeroes ”属性的值设置为“ true ”
第 8 步:在 visuino 中,将其余元素添加到 maxim led 控制器组件
在“元素”编辑器中,选择右侧的“无符号位像素”,然后单击左侧的“”按钮,为组件添加一个元素
在 object inspector 中,将新添加的“ unsigned bit pixels1 ”元素的“ countpixels ”属性的值设置为“ 8 ”
在 object inspector 中,将新添加的“ unsigned bit pixels1 ”元素的“ initialvalue ”属性的值设置为“ 1 ”。这将使“-”(g)段仅在 7 段数字上有效
重复本教程和上一个步骤 7 的相同步骤,添加2个“整数显示7 段”元素和一个“无符号位像素”元素,并以相同方式设置它们的属性
关闭“元素”编辑器
第 9 步:在 visuino 中,添加并连接解码日期/时间组件
我们需要将日期/时间解码为单独的小时、分钟和秒值。为此,我们将使用“解码日期/时间”组件。
在组件工具箱的过滤框中键入“解码”,然后选择“解码日期/时间”组件,并将其拖放到设计区域
将realtimeclock1的“ out ”引脚连接到decodedatetime1的“ in ”引脚
将digitaltounsigned1的“ out ”引脚列表的“ second ”引脚连接到ledcontroller1组件的“ pixelgroups.integer display 7 segments1 ”元素的“ in ”引脚
将digitaltounsigned1的“ out ”引脚列表的“ minute ”引脚连接到ledcontroller1组件的“ pixelgroups.integer display 7 segments2 ”元素的“ in ”引脚
将digitaltounsigned1的“ out ”引脚列表的“ hour ”引脚连接到ledcontroller1组件的“ pixelgroups.integer display 7 segments3 ”元素的“ in ”引脚
第 10 步:在 visuino 中,添加并连接 (t) 触发器组件
为了动画小时、分钟和秒之间的“-”分隔符,我们将每秒在“8”和“1”无符号值之间切换。为此,我们可以使用触发器。最方便的是 toggle(t) 触发器:
在组件工具箱的过滤器框中键入“翻转”,然后选择“切换(t)触发器”组件,并将其放入设计区域
将realtimeclock1的“ out ”引脚连接到tflipflop1组件的“ in ”引脚
第 11 步:在 visuino 中,添加、配置和连接 digital to unsigned 组件
触发器生成一个数字(布尔)值。我们需要将其转换为“8”和“1”的无符号值。为此,我们将使用“数字到无符号”转换器:
在组件工具箱的过滤框中键入“数字”,然后选择“数字到无符号”组件,并将其放在设计区域
在对象检查器中,将digitaltounsigned1元素的“ falsevalue ”属性的值设置为“ 8 ”
将tflipflop1的“ out ”引脚连接到digitaltounsigned1组件的“ in ”引脚
将digitaltounsigned1的“ out ”引脚连接到ledcontroller1组件的“ pixelgroups.unsigned bit pixels1 ”元素的“ in ”引脚
将digitaltounsigned1的“ out ”引脚连接到ledcontroller1组件的“ pixelgroups.unsigned bit pixels2 ”元素的“ in ”引脚
第 12 步:生成、编译和上传 arduino 代码
在visuino中,按f9生成 arduino 代码,然后打开 arduino ide
在arduino ide中,点击upload按钮,编译并上传代码
第13步:完成
到这里,您已经制作了一个带有 7 段 max7219 led 显示驱动器和 ds1307 实时时钟 (rtc) 的 led 时钟。

iPhone 12 mini出现锁屏问题!数码名人建议尽快退换货
物联网的发展给中美芯片企业带来了什么
数字货币出现双花攻击的原因是什么
RedmiBook 14锐龙版开启预约,11月1日开售
怎样成为优秀的售后技术支持工程师
如何使用MAX7219和DS1307制作7段数字时钟
热电偶补偿导线的原理及作用
华为P10最新消息:华为P10继疏油层、内存门、闪存门之后爆出断流门?断流门系造谣已通过技术分析
详解开关电源的三大基础拓扑
光电传感器的组成及分类
思歌锁业科技A050-CP门锁介绍
新兴拦截武器系统技术介绍
2021 OPPO开发者大会时间地点
丽清桃园观音新厂预估明年5月起大批量产 大陆LED头灯透率获快速提升
如何利用振荡电路频率调制实现室温长波红外探测与成像?
低配荣耀8来袭 舍弃双摄或将售价1499
在LabVIEW中调用OpenVINO™ 模型
Linux开发_文件目录操作介绍、创建BMP图片
简单上云第一步的华为云服务器,助力中小企业提升业务
百度Apollo2.5全球首发:比亚迪成第100位合作伙伴,进一步提升自动驾驶安全性