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

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

3天内不再提示

基于Arduino的LED矩阵时钟的制作教程

454398 来源:wv 2019-10-05 17:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1 :组装并连接矩阵

您无需花很多功夫,就可以将Arduino称为出色的多个LED矩阵。但是,在这种情况下,将第五个矩阵与其他矩阵串联。当然,您将需要一个矩阵和另一组跳线。

步骤2:实时时钟注释

我的实时时钟(RTC)已打开原来是哑巴,新的还没有从香港来。因此,时间是手动设置的。时间是使用内部时钟来保持的。

步骤3:显示数字

这是我的第一个重要项目,在学习过程中,我从在其4-LED滚动文本示例中使用的Makepeace Madrid的LED矩阵库LedControlMS.h开始。

函数displayChar带有两个整数参数:寻址的矩阵号(从零开始)和要显示的字符。只需将数字0-9传递给此功能即可显示这些数字。

由于一个LED矩阵不会显示两个字符,因此小时和分钟的每个数字都必须隔离为一个变量。可以通过以下方式将它们与小时和分钟分开:

第一个数字:整数除以10。这将丢弃余数(例如,将43除以4.3,结果除以3) ,因此返回4(第一个数字)。

第二个数字:模除以10,返回余数(例如,对43进行除法得到3)。

我认为空白的第一个数字看起来比前导零更好,因此将displayChar用作不可显示的字符。

请注意,数字在每个LED矩阵上左对齐显示。我没有研究校正

步骤4:秒

由于我有5个矩阵,因此我决定将第5个矩阵固定在小时和分钟,使用setLed函数通过在每行上依次点亮单个LED来标记秒,其参数为:LED编号(再次从0开始计数),行,列和布尔值(true = on)。

我使用了嵌套循环,对偶数行的第8个LED进行了测试以进行跳过。我敢肯定还有更优雅的方法可以编写此代码,但是我只是开始使用C语言,并且多年没有编程

步骤5:LED时钟草图

/*该草图基于MAX72xx芯片组运行带有五个LED矩阵的时钟。

在https://www.instructables.com/id/Multiple-LED-Matrixes-with-Arduino

中显示了一个示例,该示例显示了在4个LED矩阵上书写和滚动文本的过程。此草图使用LedControlMS上页的.h(来自Makerspace),是对LEDControl.h库的修改。

此草图使用了Arduino时间和连线库,而DS3131RTC(DS3232RCTC库)

Sketch假定以下连线为MAX72xx LED矩阵-

引脚12连接到DataIn引脚11连接到CLK

引脚10连接到LOAD

Dataout(中间输出引脚)菊花链式连接到DataIn除最后一个矩阵外,每个矩阵的下一个LED的数量。

DS3231RTC的布线

VCC和接地分别连接到+ 5VDC和Gnd 《时钟》 SDA时钟-》模拟4

SCL-》模拟5

*/

#include //DS3232RTC时钟库也可处理DS3231RTC

#include //用于时钟

#include //用于时钟

#include“ LedControlMS.h”//注意tha t这不是库LEDControl

int h1,h2,m1,m2;//每个LED矩阵将显示一个数字:小时1和2,分钟1和2。这些变量只保留一位数字

int s1 = 2;//计数秒数的LED

int hr12;//用于12小时时间

int noMatrix = 5;//矩阵数该库的地址最多为8。

boolean am = true;//标记上午或下午。初始化为am

LedControl lc = LedControl(12,11,10,noMatrix);//Pin分配和矩阵数(5)

void setup(){

//首先,将系统时间设置为硬编码的日期和时间,然后将来自系统时间的RTC。

//setTime()函数是时间库的一部分。

//Hr Min Sec dd mm yyyy //RTC.set(now());////从系统时间设置RTC

//初始化MAX72XXs(在启动-唤醒调用时处于省电模式。

for(int i = 0; i lc.shutdown(i,false);

lc.setIntensity(i,1);//将亮度设置为较低的值

lc.clearDisplay(i);//清除显示

}

delay(100);//等待更新显示之间

lc.clearAll();

}

无效循环( ){

//设置am或pm布尔值(am初始化为true)

if(hour()》 12)

{am = false;

hr12 = hour()-12;

}

/*隔离小时和分钟,每个LED矩阵一位。

我认为一个小时的数字看起来更好,第一位为空。

*/

//分别放置如果小时数在其自己的变量h1和h2中

if(hr12 《10)

{

/*

如果《10 hrs,则第一个LED矩阵为空白(62是空白字符)。

还可以插入零,例如分钟。

*/ h1 = 151;

h2 = hr12;//第二个LED显示小时的一位数字

}

else

{

//否则,只需使用t的两位数字h1 = h12/10; h1和h2上的小时。//整数除以10将返回小时的第一位数字。

h2 = hr12%10;//模除以10将返回第二位数字。

}

//如果(minute()《10)

{

m1 = 0 ;,则分钟由m1和m2

显示。//第一分钟LED d1播放零

m2 = minute();//分钟的第二个数字

}

else

{

m1 = minute()/10;

m2 = minute()%10;

}

/*

使用displayChar函数显示小时和分钟。它使用两个整数参数:

LED矩阵编号(0-7)和要显示的字符。通过将数字本身作为第二个参数进行传递,可以简单地显示数字:即lc.displayChar(0,h1)*/

lc.displayChar(0,h1);//将1位数显示在最左边的(#0)LED上。

lc.displayChar(1,h2);//小时数2到LED#1

lc.displayChar(3,m1);//将1位数字减至LED#3。 (回想一下#2是用于标记秒数的。)

lc.displayChar(4,m2);//将1位数字减至#4

/*此例程确定要点亮哪个单个LED来计数秒数。

中间LED通过一次在每个LED上一次点亮一个LED来计数秒数。在8行中在奇数行上计数8个LED,在偶数行上计数7个LED。因此,两行计数15秒。

*/

for(int r = 7; r》 -1; r-){//对于8行中的每一个,从顶部(#7)开始。..

for(int c = 0; c 《8; c ++){//对于一行中的8个led的每一个(左侧0 )。..

/*

照亮当前列和行上的点。这些似乎在我的硬件上互换了。

因此,我将参数交换到下面的setLed()函数中。

正确地将其寻址为setLed(int led#,int row,int col,boolean)。变量s1保留用于此的LED矩阵的LED编号(从0开始计数)。

*/

if(r%2 == 0 && c == 7)//甚至行AND col 7

{} else

lc.setLed(s1,c,r,true);//打开寻址的LED持续3/4秒

delay(750);

lc.setLed(s1,c,r,false);//关闭1/4秒

delay(250);

}

}

}

}

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

    关注

    243

    文章

    24433

    浏览量

    687278
  • 时钟
    +关注

    关注

    11

    文章

    1953

    浏览量

    134532
  • Arduino
    +关注

    关注

    190

    文章

    6514

    浏览量

    195912
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    力芯微矩阵型恒压LED驱动芯片为车载显示屏带来“智”变

    在汽车智能化飞速发展的今天,车载显示屏作为人车交互的重要窗口,其显示效果和性能直接影响到用户的驾驶体验和行车安全。力芯微矩阵型恒压LED驱动芯片,凭借其卓越的性能和创新的技术,为车载显示屏的应用带来
    的头像 发表于 10-27 16:02 227次阅读
    力芯微<b class='flag-5'>矩阵</b>型恒压<b class='flag-5'>LED</b>驱动芯片为车载显示屏带来“智”变

    STEVAL-LLL013V1 LED矩阵面板技术解析与应用指南

    STMicroelectronics STEVAL-LLL013V1 7x25 LED矩阵板由两个STP16CPC26 LED驱动器控制,评估STP16CPC26 LED驱动器在用于驱
    的头像 发表于 10-25 16:00 1279次阅读
    STEVAL-LLL013V1 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>面板技术解析与应用指南

    LP5862 LED矩阵驱动器技术解析与应用指南

    Texas Instruments LP5862 2×18 LED矩阵驱动器设计用于改善动画和指示的用户体验,采用小尺寸解决方案的LED矩阵。LP5861驱动器集成了18个具有N(N
    的头像 发表于 09-19 11:02 517次阅读
    LP5862 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术解析与应用指南

    ‌LP5864 LED矩阵驱动器技术解析与应用指南

    Texas Instruments LP5864 4×18 LED矩阵驱动器设计用于使用LED矩阵以小尺寸解决方案来改善具有动画效果和指示功能的善用户体验。LP5864集成了18个具有
    的头像 发表于 09-19 10:53 510次阅读
    ‌LP5864 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术解析与应用指南

    TPS92665-Q1汽车级LED矩阵管理器技术解析

    Texas Instruments TPS92665 LED矩阵管理器通过提供单独的像素级LED控制实现全动态自适应照明解决方案。该器件包括四个子串的三串联集成开关,用于旁路连接独立LED
    的头像 发表于 09-07 11:10 737次阅读
    TPS92665-Q1汽车级<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器技术解析

    LP5891-Q1 LED矩阵显示驱动器评估模块技术解析

    Texas Instruments LP5891Q1EVM驱动器评估模块 (EVM) 用于评估矩阵LED显示驱动器LP5891-Q1的特性、运行和使用情况。LP5891-Q1是一款高度集成的共阴极
    的头像 发表于 08-27 11:02 708次阅读
    LP5891-Q1 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>显示驱动器评估模块技术解析

    ‌LP5862 LED矩阵驱动器技术文档总结

    LP586x 器件是高性能 LED 矩阵驱动器系列。该器件集成了 18 个恒流灌电流和 N 个 (N = 1/2/4/6/8/11) 开关 MOSFET,以支持 N 个 × 18 个 LED 点或
    的头像 发表于 08-22 10:21 667次阅读
    ‌LP5862 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术文档总结

    ‌TPS92667-Q1 汽车级低噪声16通道LED矩阵管理器技术文档总结

    TPS92667 LED 矩阵管理器设备通过提供单独的像素级 LED 控制来实现完全动态的自适应照明解决方案。该器件包括四个串联集成开关的四个子串,用于旁路单个 LED。单个子字符串允
    的头像 发表于 08-21 15:21 1234次阅读
    ‌TPS92667-Q1 汽车级低噪声16通道<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器技术文档总结

    ‌LP5867 LED矩阵驱动器技术文档总结‌

    电子设备变得越来越智能,需要使用更多的 LED 来进行动画和指示,并且需要高性能 LED 矩阵驱动器以小尺寸的解决方案来改善用户体验。 LP5867 是一款高性能 LED
    的头像 发表于 08-20 11:24 957次阅读
    ‌LP5867 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术文档总结‌

    LP5860T LED矩阵驱动器技术解析与应用指南

    Texas Instruments LP5860T LED矩阵驱动器是一款大电流、高性能LED矩阵驱动器。该器件集成了18个恒定电流阱和N (N = 6/8/11)个开关MOSFET,
    的头像 发表于 08-15 14:16 745次阅读
    LP5860T <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术解析与应用指南

    国产替代最优解 易冲半导体推出12/16通道ADB大灯LED矩阵控制器

    国产替代最优解 易冲半导体推出12/16通道ADB大灯LED矩阵控制器
    的头像 发表于 08-08 16:21 2.6w次阅读
    国产替代最优解 易冲半导体推出12/16通道ADB大灯<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>控制器

    LP5812 4×3矩阵RGB LED驱动器技术解析与应用指南

    Texas Instruments LP5812 RGB LED驱动器是4 x 3矩阵驱动器,具有I^2^C和自主动画引擎控制功能。这些驱动器生成6MHz时钟信号,并使用它来同步多个设备之间
    的头像 发表于 08-08 16:18 912次阅读
    LP5812 4×3<b class='flag-5'>矩阵</b>RGB <b class='flag-5'>LED</b>驱动器技术解析与应用指南

    Texas Instruments LP5867 7x6 LED矩阵驱动器数据手册

    Texas Instruments LP5867 7x6 LED是一款高性能LED矩阵驱动器。该器件集成了6个具有N (N = 7) 个开关MOSFET的恒流阱,用于支持N × 6个LED
    的头像 发表于 07-25 11:55 522次阅读
    Texas Instruments LP5867 7x6 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器数据手册

    Analog Devices Inc. MAX25608 12开关LED矩阵管理器数据手册

    Analog Devices MAX25608 12开关高亮度LED矩阵管理器设计用于汽车照明,具有一个12开关阵列,用于旁路连接单串或双串应用中的单个LED。在MAX25608上还设有12个单独
    的头像 发表于 06-26 11:41 511次阅读
    Analog Devices Inc. MAX25608 12开关<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器数据手册

    开源项目!手把手教你制作一个互动式LED墙壁时钟

    在这篇教程中,将教你使用Arduino创建一个互动式LED墙壁时钟。这个项目结合了创意和技术,设计出一个功能性强且视觉效果惊人的时钟,它配备了互动式的
    发表于 02-08 17:47