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

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

3天内不再提示

如何使用Arduino和LED矩阵构建简单的二进制时钟

454398 2019-07-25 18:51 次阅读

在这个初学者项目中,我们通过构建LED矩阵和使用Arduino来创建二进制时钟

本文将向您介绍LED多路复用以及如何利用这种技术构建可用于许多不同项目的LED阵列。在这种特殊情况下,我们将构建一个二进制时钟。

如何设置LED多路复用

这是一种非常简单的技术创建LED矩阵,每个二极管可以寻址和打开和关闭。您首先必须决定是要构建共阴极还是共阳极阵列。虽然电路略有不同,但两种方法基本上都是相似的:

创建LED矩阵的电路图。

As你可以看到,我们正在为这个项目建立一个共同的阴极矩阵。因此,LED的阴极连接在一起,然后通过NPN晶体管连接到GND。电阻R1至R4是LED的限流电阻,R5至R10是晶体管。

如何寻址各个LED

每个二极管在这个数组中有自己的地址,可以单独打开和关闭。如果您在寻址LED时遇到问题,可以将上图中的数组划分为行和列,并为每个数组分配如下名称:

通过将电路划分为行和列来对矩阵内的每个LED进行寻址。

要打开LED9,需要在晶体管D的基极提供电压,并将线路3连接到电源。您可以通过在当前激活的LED之间快速切换来使其看起来像多个LED一样。

构建二进制时钟

让我们把我们的LED阵列使用Arduino Uno打开和关闭LED,DS3231和实时时钟模块以便跟踪时间,从而很好地利用和构建二进制时钟。

首先构建LED矩阵从上面。它看起来有点乱,但连接LED需要所有跳线:

首先构建LED矩阵。

因为这是一个简单的LED矩阵,它使用Arduino的十个I/O端口。所以一定要使用有足够针脚的。如果要减少必要行数,可以使用二进制到十进制转换。但是,这超出了本文的范围。

第1行到第4行连接到Arduino引脚2到5,6列连接到引脚6到11.您可以在下面看到这些连接。

将LED连接到Arduino。

固件

首先编写一个小测试草图,将矩阵中的每个LED依次打开。如果所有LED都以正确的顺序点亮,则阵列连接正确。

voidsetup()
{
pinMode(2,OUTPUT);//1
pinMode(3,OUTPUT);//2
pinMode(4,OUTPUT);//3
pinMode(5,OUTPUT);//4
pinMode(6,OUTPUT);//A
pinMode(7,OUTPUT);//B
pinMode(8,OUTPUT);//C
pinMode(9,OUTPUT);//D
pinMode(10,OUTPUT);//E
pinMode(11,OUTPUT);//F
}
voidloop()
{
for(inti=6;i< 12; i++)
{
digitalWrite(i,1);

for(intu=2;u< 6; u++)
{
digitalWrite(u,1);
delay(250);
digitalWrite(u,0);
}

digitalWrite(i,0);
}
}

如上所述,主固件连接DS3231 RTC模块并读取时间。然后,它将值转换为二进制,并将相应的LED切换为ON。

您需要从Github下载Arduino IDE库。固件在本文末尾以可下载的.zip文件的形式提供。上传代码后,您的Arduino应显示正确的时间 - 在此特定示例中,时间为21:45:11。

我们完成的二进制时钟。

为什么制造商使用LED矩阵?

LED矩阵在许多应用中都非常有用,比如这个简单的二进制时钟。重要的是要了解晶体管如何作为开关工作以及如何单独控制元件阵列中的每个LED。

然而,这种方法远非完美,因为它占用了许多I/O端口并且受到限制可以同时打开多少个LED。但它很容易理解和构建。

如果你想减少必要的I/O行数,你可以尝试使用BCD到十进制解码器,如CD4028B(PDF),你可以看看在其他技术如Charlieplexing,或者你可以使用完全不同的方法(例如,可寻址的LED条)。

利用LED矩阵的其他项目

  • 如何制作MIDI音序器
  • 如何制作由Android App和GreenPAK的I2C控制的Arduino LED矩阵
  • 如何制作8-使用Arduino进行位点矩阵显示
  • 如何使用Arduino和LED矩阵进行连接四场游戏
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22449

    浏览量

    645853
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184828
收藏 人收藏

    评论

    相关推荐

    如何使用USART接收二进制

    我想制作一个以8个LED的形式实现二进制计数器。该计数器通过USART发送一个8位二进制数,并让8个LED显示数字(如果位为0,则指示灯熄灭,当位为1时指示灯亮)。这样做的最佳方法是什
    发表于 10-08 14:07

    如何理解二进制运算规则 二进制是如何运算的

    二进制运算规则二进制的运算算术运算二进制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位进位);二进制的减法:0-0=0,10-1=1(向高位借位) 1-0=1,1
    发表于 12-11 17:49

    二进制

    二进制   二进制与十进制的区别在于数码的个数和进位规律有很大的区别,顾名思义,二进制的计数规律为逢二进一,是以2为基数的计数体制。10这
    发表于 04-06 23:48 7666次阅读
    <b class='flag-5'>二进制</b>

    二进制时钟电路

    二进制时钟电路
    发表于 09-11 11:22 3016次阅读
    <b class='flag-5'>二进制</b><b class='flag-5'>时钟</b>电路

    二进制编码和二进制数据

    二进制编码和二进制数据   二进制编码是计算机内使用最多的码制,它只使用两个基本符号"0"和"1",并且通过由这两个符号组成的
    发表于 10-13 16:22 4510次阅读

    什么是二进制计数器,二进制计数器原理是什么?

    什么是二进制计数器,二进制计数器原理是什么? 计数器是数字系统中用得较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现
    发表于 03-08 13:16 3w次阅读

    基于FPGA的二进制时钟设计方案

    本方案是一个基于FPGA的二进制时钟,使用GPS作为时间参考。
    的头像 发表于 05-13 17:41 1847次阅读
    基于FPGA的<b class='flag-5'>二进制</b><b class='flag-5'>时钟</b>设计方案

    微型二进制时钟开源分享

    电子发烧友网站提供《微型二进制时钟开源分享.zip》资料免费下载
    发表于 11-02 16:19 0次下载
    微型<b class='flag-5'>二进制</b><b class='flag-5'>时钟</b>开源分享

    带秒的Arduino 24小时二进制时钟

    电子发烧友网站提供《带秒的Arduino 24小时二进制时钟.zip》资料免费下载
    发表于 11-04 10:17 1次下载
    带秒的<b class='flag-5'>Arduino</b> 24小时<b class='flag-5'>二进制</b><b class='flag-5'>时钟</b>

    Arduino二进制时钟屏蔽

    电子发烧友网站提供《Arduino二进制时钟屏蔽.zip》资料免费下载
    发表于 11-21 11:40 0次下载
    <b class='flag-5'>Arduino</b>的<b class='flag-5'>二进制</b><b class='flag-5'>时钟</b>屏蔽

    基于Arduino Uno的二进制时钟

    该项目是关于使用 Arduino 和两个 LED 矩阵的数字和二进制时钟,带有 MAX72XX 和 RTC(实时
    发表于 12-20 14:46 0次下载

    带两个LED矩阵和RTC的数字和二进制时钟

    电子发烧友网站提供《带两个LED矩阵和RTC的数字和二进制时钟.zip》资料免费下载
    发表于 02-03 10:17 0次下载
    带两个<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>和RTC的数字和<b class='flag-5'>二进制</b><b class='flag-5'>时钟</b>

    构建LED二进制计数器

    电子发烧友网站提供《构建LED二进制计数器.zip》资料免费下载
    发表于 06-12 09:54 0次下载
    <b class='flag-5'>构建</b><b class='flag-5'>LED</b><b class='flag-5'>二进制</b>计数器

    使用Arduino UNO构建4位二进制计数器

    电子发烧友网站提供《使用Arduino UNO构建4位二进制计数器.zip》资料免费下载
    发表于 06-25 11:38 0次下载
    使用<b class='flag-5'>Arduino</b> UNO<b class='flag-5'>构建</b>4位<b class='flag-5'>二进制</b>计数器

    Arduino二进制骰子

    电子发烧友网站提供《Arduino二进制骰子.zip》资料免费下载
    发表于 07-04 10:13 0次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>二进制</b>骰子