新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > Arduino 8×8 LED矩阵

Arduino 8×8 LED矩阵

作者:时间:2023-04-21来源:电子产品世界收藏

在这个项目中,我们将学习矩阵器和两个关于 8×8 矩阵接口的不同项目。第一个项目将是和8X8 矩阵之间的简单接口,用于信息(甚至可以滚动的信息和图像),第二个项目将是一个高级项目,8X8 LED矩阵通过Android设备进行控制。

本文引用地址:http://www.eepw.com.cn/article/202304/445835.htm

LED矩阵是一个二维的LED阵列,可以用来显示符号、字符甚至是图像。根据矩阵中LED的方向,可以有两种类型的LED矩阵。它们是普通行阳极和普通行阴极。

LED矩阵模块是常用的显示设备之一,被用于电子显示板和通知系统等主要应用。

在Electronicshub中选择你想学习的下一组项目: Arduino项目"

项目1:简单的Arduino LED矩阵接口

电路图

Arduino LED Matrix

arduino-led-matrix

所需组件

Arduino Uno板 [在此购买)

LED矩阵 - 8 x 8 LED点阵

IC1 - MAX 7219

R1 - 10 KΩ

C1 - 0.1 µF

C2 - 10 µF

组件描述

Arduino Uno

该项目是基于Arduino Uno微控制器板的。在Arduino Uno的14个可用的数字输入/输出引脚中,我们只需要三个引脚来实现这个项目。

一个引脚为LED显示驱动IC(MAX 7219)提供时钟信号,另一个引脚用于将串行数据传输给IC,以便在LED矩阵上显示。在程序中必须适当提到相应的引脚。

LED矩阵

本项目中使用了一个8 x 8的LED矩阵显示器来显示信息。LED矩阵有不同的样式,如单色、双色、多色或RGB LED矩阵。

它们也有不同的尺寸,如5×7、8×8、16×16、32×32等。根据LED在矩阵中的排列方式,LED矩阵可以是共行阳极或共行阴极。

在共行阳极型LED矩阵的情况下,电流源(高电压或正电压)被赋予行A-D,电流汇(低电压或负电压或地)被赋予列1-4。

Common Anode

共行阳极

在共行阴极型LED矩阵的情况下,电流源(高或正电压)被赋予1-4列,电流汇(低或负电压或地)被赋予A-D行。

Common Cathode

共行阴极

本项目中使用的LED矩阵是一个普通行阴极型LED矩阵。在开发该项目时,必须知道LED矩阵的类型,并且必须相应地编写程序。

IC MAX 7219

LED矩阵可以以两种方式驱动。它们是并行(每一行或每一列都发送并行数据)和串行(数据以串行方式发送,并使用一个IC将串行数据转换为并行数据)。

MAX 7219是一个具有串行输入和并行输出的普通阴极显示器驱动器。它用于连接微处理器和微控制器与64个单独的LED(例如8 x 8 LED矩阵有64个LED)、七段式LED显示器(最多8位)或条形图显示器。

如电路图所示,8 x 8 LED矩阵连接到MAX 7219,数据输入从Arduino板接收到MAX 7219。

注意:

Pre-wired MAX 7219 and 8 x 8 LED matrix

市场上有预接线的MAX 7219和8 x 8 LED矩阵模块。为了方便,可以使用它们。

预接线的MAX 7219和8 x 8的LED矩阵

工作

该项目的目的是将Arduino Uno板与一个8 x 8的LED矩阵连接起来,以显示信息。

尽管在这个项目中使用了一个8 x 8的LED矩阵和相应的MAX 7219集成电路,但可以将多个LED矩阵串联起来进行长滚动显示。按电路图所示连接各部件。该系统的工作原理如下。

14个可用的数字输入/输出引脚中的3个被用来控制显示驱动IC MAX 7219。MAX7219集成电路上的3个引脚是时钟、数据输入和负载(如果是MAX 7221集成电路,则是cs)。可应用的最大时钟频率为10MHz。DIN(数据输入)接受来自微控制器或Arduino板的串行数据。

它有16位,前8位(D0-D7)用于驱动LED矩阵的列(MAX 7219 IC的SEG A-G和DP),后8位(D8-D15)用于驱动LED矩阵的行(MAX 7219 IC的DIG 0-7)。

负载引脚(或CS或Max 7221 IC的芯片选择引脚)在其上升沿锁住串行输入数据。

MAX 7219的另一个重要引脚是ISET,它设定了驱动所有LED的峰值电流。它通过一个电阻(R1)连接,这被称为RSET。电容器过滤掉电源中的任何噪音。

当使用Arduino(通过程序)发送进来的串行数据时,串行数据被转换为段和数字,以驱动LED矩阵的列和行。根据发送的数据,矩阵上相应的LED灯亮起并显示信息。

这里写的程序是用于滚动文本显示的。在单个8 x 8的LED矩阵上查看长的滚动数据可能比较困难。因此,可以将多个LED矩阵连锁起来,形成一个长矩阵。

MAX 7219集成电路的数量与8 x 8 LED矩阵的数量相等。为了将显示扩展到多个LED矩阵,第一个MAX 7219的数据输出(DOUT)引脚必须连接到第二个MAX 7219集成电路的数据输入(DIN)引脚。对于多个LED矩阵必须继续这一过程。

(LED矩阵在链中的定位很重要。第一个LED矩阵必须放在链的右边)。

注意

该程序使用一个名为LedControl的库。这个库必须被添加到Arduino IDE中,头文件LedControl.h必须包含在程序中。

这个库文件的用途是使多个MAX 7219集成电路能够被集成,还能提供滚动的文本。该库可以从这个链接下载。

项目2:Arduino 8X8 LED矩阵与Android手机的接口

Arduino 8×8 LED矩阵接口系列的第二个电路是基于蓝牙通信和Android手机的。在这个项目中,我们使用蓝牙通信将Arduino与安卓手机连接起来,通过MAX7219连接到Arduino的8×8 LED矩阵通过安卓手机上的一个专用应用程序进行控制。

我们已经在前面的项目中看到了8×8的LED矩阵和MAX7219芯片是如何连接的。因此,我将跳过这部分的连接,继续介绍MAX7219集成电路如何与Arduino连接。

但是我在前面的电路中没有提到一个典型的8×8的LED矩阵的引脚图。因此,为了让大家了解,下面的图片显示了8×8 LED矩阵的引脚图。

Arduino 8x8 LED Matrix Pin Diagram

Arduino 8x8 LED矩阵引脚图

你可以看到,一个8×8的LED矩阵由16个引脚组成: 8行和8列。通常情况下,行与LED的阳极有关,列与LED的阴极有关。

电路图

Arduino 8x8 LED Matrix Circuit Diagram

Arduino 8x8 LED矩阵电路图

所需元件

Arduino UNO

MAX7219集成电路板

8×8 LED矩阵

HC-05蓝牙模块

安装有应用程序的安卓手机

电路设计

由于Arduino和MAX7219之间的通信是基于SPI通信协议的,我们只需要Arduino的三个引脚(数据、时钟和芯片选择)。MAX7219集成电路板的CS、CLK和DIN引脚被连接到Arduino的10、11和12引脚。

由于我们在Arduino和Android设备之间使用蓝牙连接,HC-05蓝牙模块的RX和TX引脚被连接到Arduino的TX和RX引脚(引脚1和0)。

通过安卓应用程序控制8×8 LED矩阵

为这个项目设计了一个基于Android设备的专用应用程序。已经安装在手机上的应用程序的布局如下图所示。

Arduino 8x8 LED Matrix Android App

Arduino 8x8 LED矩阵安卓应用

该应用程序有8×8个方块(每个方块对应8×8 LED矩阵上的一个LED),一个复位按钮和一个断开连接按钮。触摸一个特定的方块将打开8×8 LED矩阵中的特定LED。

方块的颜色会变成红色,表示LED已经打开。再次触摸该方块将关闭相应的LED,方块的颜色将恢复为灰色。

底部有一个复位按钮,你可以用它来复位8×8的LED矩阵,即所有的LED将被关闭。断开按钮将与蓝牙断开连接。

注意:该应用程序利用了手机的蓝牙功能。因此,必须给予必要的权限。此外,HC-05蓝牙模块必须与设备(手机)配对。

Arduino 8×8 LED Matrix Image 1

Arduino 8×8 LED矩阵图片1

Arduino 8×8 LED Matrix Image 2

Arduino 8×8 LED矩阵图片2

Arduino 8×8 LED Matrix Image 3

Arduino 8×8 LED矩阵图像3

应用

基于Arduino的8×8 LED矩阵显示器仅使用微控制器的3个引脚。因此,它可以用于显示信息是系统的一部分的应用,其中微控制器的其他引脚可以用于其他外设。

LED矩阵是一种基本形式的显示设备,用于在公共场所如公共汽车或火车站显示信息。

多个LED矩阵可以组合成大型显示器,并可用于显示多色的图像。



关键词: Arduino LED 显示

评论


相关推荐

技术专区

关闭