0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

科技观察员 来源:Boian Mitov 作者:Boian Mitov 2022-06-28 16:48 次阅读

使用 MAX7219 和 DS1307 实时时钟 (RTC) 制作 7 段数字时钟,快速简单!

DS1307 实时时钟是广泛可用的低成本 I2C RTC 模块。它们带有一个时钟和一个小电池,当连接到 Arduino 时,即使 Arduino 板没有通电,也可以实时跟踪。

在本文中,我将向您展示如何将 DS1307 I2C RTC 模块和MAX7219 控制的 7 段 LED 显示屏连接到 Arduino,读取和显示时间,并使用Visuino对所有这些进行编程。我将使用我拥有的Tiny RTC 模块,但它应该与任何其他 DS1307 模块非常相似。

第 1 步:组件

pYYBAGK6wAiAIZUDAAh1KNBgFaY881.png

一块Arduino兼容板

一个 DS1307 实时时钟模块(我使用了 Tiny RTC 模块,但任何其他 DS1307 模块都可以)

一个带MAX7219控制器的8位7段显示模块

一个小面包板(可以使用任何面包板,或任何其他方式将 3 根电线连接在一起)

3 公母跳线

7 母母跳线

第 2 步:将实时时钟连接到 Arduino

poYBAGK6wAKAeHofAATjo-ZMimk572.png

pYYBAGK6v_-AUmhgAAU3sJZo8K4492.png

将母-公 5V VCC 电源(红线)的母端连接到DS1307 RTC模块

将母-母线 -地线(黑线)、SCL (橙线)和SDA (蓝线)连接到DS1307 RTC 模块

将SDA 线(蓝色)的另一端连接到Arduino Nano板的SDA/模拟引脚 4

将SCL 线(橙色)的另一端连接到Arduino Nano板的SCL/模拟引脚 5

将地线(黑色)的另一端连接到Arduino Nano板的接地引脚

第 3 步:将 LED 模块连接到 Arduino

poYBAGK6v_qAAjuvAAJpk5vs1x4790.png

将母-公 5V VCC 电源(红线)的母端连接到LED 模块

将母-母线 -地线(黑线)、DIN (绿线)、CS (灰线)和CLK (黄线)连接到LED 模块

将地线(黑色)的另一端连接到Arduino Nano板的接地引脚

将CLK线(黄色)的另一端连接到电路板的Digital 13引脚

将DIN线(绿色)的另一端连接到Arduino Nano板的Digital 11引脚

将CS线(灰色)的另一端连接到Arduino Nano板的Digital 10引脚

第 4 步:将电源线连接到 Arduino 板

pYYBAGK6v_aAWFiqAAUKHMpXpZo545.png

将另一根母-公电源线(红线)连接到Arduino板的5V电源引脚,并保持公端未连接

在面包板的帮助下将3 根电源线(红线)的公端(来自显示器、时钟模块和Arduino)连接在一起。在我的情况下,我使用了一个小面包板

以红色显示Arduino Nano的5V Power引脚在哪里。蓝色显示在前面的步骤中完成的连接。

第 5 步:启动 Visuino 并选择 Arduino Board 类型

pYYBAGK6v_GAEN5nAAJB5BnAQio834.png

要开始对 Arduino 进行编程,您需要先从此处安装

Arduino IDE : http ://www.arduino.cc/

Visuino : https://www.visuino.com

安装后步骤:

启动Visuino

在Visuino中单击Arduino组件上的“工具”按钮

出现对话框时,选择“ Arduino Nano ”

第6步:在Visuino中,添加并连接Maxim MAX7219 LED组件

pYYBAGK6v-2AMCFcAAJAVUQtWy0227.png

在 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 控制器组件

pYYBAGK6v-iAcAixAAKWZqqqzAI842.png

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 控制器组件

poYBAGK6v-SAGqHOAAGj649Qysg268.png

在“元素”编辑器中,选择右侧的“无符号位像素”,然后单击左侧的“”按钮,为组件添加一个元素

在 Object Inspector 中,将新添加的“ Unsigned Bit Pixels1 ”元素的“ CountPixels ”属性的值设置为“ 8 ”

在 Object Inspector 中,将新添加的“ Unsigned Bit Pixels1 ”元素的“ InitialValue ”属性的值设置为“ 1 ”。这将使“-”(g)段仅在 7 段数字上有效

重复本教程和上一个步骤 7 的相同步骤,添加2个“整数显示7 段”元素和一个“无符号位像素”元素,并以相同方式设置它们的属性

关闭“元素”编辑器

第 9 步:在 Visuino 中,添加并连接解码日期/时间组件

poYBAGK6v-CAAzDfAAJ9c1Gy7xo720.png

我们需要将日期/时间解码为单独的小时、分钟和秒值。为此,我们将使用“解码日期/时间”组件。

在组件工具箱的过滤框中键入“解码”,然后选择“解码日期/时间”组件,并将其拖放到设计区域

将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) 触发器组件

pYYBAGK6v9uAWUjsAAKMxg5N8oA242.png

为了动画小时、分钟和秒之间的“-”分隔符,我们将每秒在“8”和“1”无符号值之间切换。为此,我们可以使用触发器。最方便的是 Toggle(T) 触发器:

在组件工具箱的过滤器框中键入“翻转”,然后选择“切换(T)触发器”组件,并将其放入设计区域

将RealTimeClock1的“ Out ”引脚连接到TFlipFlop1组件的“ In ”引脚

第 11 步:在 Visuino 中,添加、配置和连接 Digital To Unsigned 组件

poYBAGK6v9iAKbTIAALff0cwl-g276.png

触发器生成一个数字(布尔)值。我们需要将其转换为“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 代码

pYYBAGK6v9OAGyQcAACERQPhmF4587.png

在Visuino中,按F9生成 Arduino 代码,然后打开 Arduino IDE

在Arduino IDE中,点击Upload按钮,编译并上传代码

第13步:完成

pYYBAGK6v86ATWHcAAPuJyCUaac217.png

到这里,您已经制作了一个带有 7 段 MAX7219 LED 显示驱动器和 DS1307 实时时钟 (RTC) 的 LED 时钟。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MAX7219
    +关注

    关注

    4

    文章

    94

    浏览量

    24310
  • 数字时钟
    +关注

    关注

    2

    文章

    144

    浏览量

    20118
  • DS1307
    +关注

    关注

    1

    文章

    34

    浏览量

    14001
收藏 人收藏

    评论

    相关推荐

    MAX7219是什么

    MAX7219芯片的学习使用最近从TB买了一大堆各种各样的模块来玩,其中就有用MAX7219芯片来设计的8X8点阵模块,于是乎去查找了这个芯片的资料,现将笔记留下。概述  MAX7219 是美国
    发表于 07-13 06:03

    MAX7219是什么?如何去操作?

    MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7(包括小数点共8
    发表于 07-16 07:11

    有关MAX7219驱动芯片的知识总结

    MAX7219是什么?MAX7219的引脚有哪些?其功能是什么?MAX7219内部的寄存器有哪些?如何去编写MAX7219的应用程序?
    发表于 07-23 09:11

    MAX7219的相关资料推荐

    目录项目功能简介硬件准备源码分析NTP时间获取分析MAX7219 八位数码管驱动分析DS1302 RTC时钟模块驱动分析效果展示联系我们项目功能简介物联网时钟应用以安信可ESP-C3-
    发表于 02-07 09:07

    带有ATtiny85/DS1307时钟开发板

    描述ATtiny85 TinyClock DS1307 DIP带有 ATtiny85 微控制器、DS1307 实时时钟和 2032 电池座的时钟开发板。PCB+展示
    发表于 08-19 07:20

    矩阵显示Max7219的资料分享

    描述矩阵显示Max7219技术细节/组件 - 1 件 Max7219 - 1 个 1088AS 矩阵显示器 - 1pc 电容器 100nF 0805 - 1 个电阻 10K 0805 - 标头男性
    发表于 09-09 07:27

    DS1307 pdf datasheet (64 x 8,

    DS1307 pdf
    发表于 10-22 10:18 77次下载

    基于MAX7219时钟显示设计

    介绍一种使用 MAX7219 实现时钟显示的设计。设计主要由软硬件组成。软件方面,主要针对串行发送、计时中断程序进行编制,实现了串行传输技术的时钟显示。硬件方面,基于MAX7219,采
    发表于 07-26 17:55 221次下载

    max7219与arduino驱动设计例程

    本文主要介绍了max7219与arduino驱动设计例程。重点介绍了Arduino Uno 使用MAX7219驱动单个8*8点阵LED模块;WeMos D1制作MAX7219八位数码
    发表于 01-17 10:53 4.7w次阅读
    <b class='flag-5'>max7219</b>与arduino驱动设计例程

    dfrobotI2C DS1307 RTC实时时钟模块介绍

    DFRobot曾出过一款DS1307 RTC 实时时钟模块,它以低廉的价格广受客户好评。此次DFRobot特意推出了新一代Gravity: I2C DS1307 RTC实时时钟模块。
    的头像 发表于 12-07 11:02 4601次阅读
    dfrobotI2C <b class='flag-5'>DS1307</b> RTC实时<b class='flag-5'>时钟</b>模块介绍

    使用实时时钟IC DS1307制作精确时钟的方法

    如何使用实时时钟 IC DS1307 制作准确的时钟。时间将显示在液晶显示屏上。
    的头像 发表于 04-26 17:23 5637次阅读
    使用实时<b class='flag-5'>时钟</b>IC <b class='flag-5'>DS1307</b><b class='flag-5'>制作</b>精确<b class='flag-5'>时钟</b>的方法

    DS1307 时钟/定时 - 实时时钟

    电子发烧友网为你提供Maxim(Maxim)DS1307相关产品参数、数据手册,更有DS1307的引脚图、接线图、封装手册、中文资料、英文资料,DS1307真值表,DS1307管脚等资
    发表于 11-21 21:25
    <b class='flag-5'>DS1307</b> <b class='flag-5'>时钟</b>/定时 - 实时<b class='flag-5'>时钟</b>

    Arduino DS1307 RTC时钟

    电子发烧友网站提供《Arduino DS1307 RTC时钟.zip》资料免费下载
    发表于 11-22 09:15 4次下载
    Arduino <b class='flag-5'>DS1307</b> RTC<b class='flag-5'>时钟</b>

    从旧风扇和DS1307 RTC创建POV时钟

    电子发烧友网站提供《从旧风扇和DS1307 RTC创建POV时钟.zip》资料免费下载
    发表于 11-23 14:28 0次下载
    从旧风扇和<b class='flag-5'>DS1307</b> RTC创建POV<b class='flag-5'>时钟</b>

    max7219驱动8段数码管详解

    ,因此在各种电子设备中得到了广泛的应用。 本文将详细介绍如何使用MAX7219驱动8段数码管。 一、硬件连接 首先需要将MAX7219与8段数码管进行连接。连接方式如下: 将
    的头像 发表于 12-30 11:06 1281次阅读
    <b class='flag-5'>max7219</b>驱动8<b class='flag-5'>段数</b>码管详解