首页

Arduino 8×8 LED矩阵

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

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

(adsense1)

LED矩阵模组是常用的显示器件之一,主要应用于电子显示面板和通知系统。

在Electronicshub中选择您想学习的下一组Arduino项目 Arduino项目»

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

线路图

Arduino LED矩阵

arduino-led-matrix

(adsense2)

组件的要求

  • Arduino Uno板[在这里买
  • LED矩阵- 8 × 8 LED点阵
  • Ic1 - Max 7219
  • R1 - 10 kΩ
  • C1 - 0.1µf
  • C2 - 10 μ f

组件描述

Arduino Uno

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

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

LED矩阵

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

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

对于共排阳极型LED矩阵,电流源(高或正电压)位于A-D行,电流汇聚(低或负电压或接地)位于1-4列。

常见的阳极

在共排阴极型LED矩阵的情况下,电流源(高或正电压)给列1-4和电流汇聚(低或负电压或接地)给列A-D。

共阴极

本项目使用的LED矩阵为普通的行阴极型LED矩阵。在开发项目时,必须了解LED矩阵的类型,并相应地编写程序。

集成电路马克斯7219

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

MAX 7219是一种串行输入并行输出的通用阴极显示驱动器。它用于接口微处理器和微控制器与64个单独的LED(例如8 x 8 LED矩阵有64个LED), 7段LED显示器高达8位数字或条形图显示器。

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

注意:

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

预布线MAX 7219和8 x 8 LED矩阵

工作

该项目的目的是将Arduino Uno板与8 × 8 LED矩阵连接起来显示信息。

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

14个可用的数字输入/输出引脚中的3个用于控制显示驱动IC MAX 7219。MAX7219 IC上的3个引脚分别是时钟、数据输入和负载(MAX 7221 IC为cs)。可应用的最大时钟频率为10MHz。DIN (Data in)接受来自微控制器或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。它通过一个称为RSET的电阻(R1)连接。电容器过滤掉电源中的任何噪音。

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

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

没有。的MAX 7219 ic等于no。8 × 8 LED矩阵。为了将显示扩展到多个LED矩阵,第一个MAX 7219的数据输出(DOUT)引脚必须连接到第二个MAX 7219 IC的数据输入(DIN)引脚,对于多个LED矩阵,这个过程必须继续。

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

代码

请注意

  • 该程序使用一个名为LedControl的库。这个库必须添加到Arduino IDE中,并且程序中必须包含头文件LedControl.h。
  • 使用这个库文件是为了集成多个MAX 7219 ic,并提供滚动文本。该库可以从这里下载链接

项目二:基于Android手机的Arduino 8X8 LED矩阵接口

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

我们已经在前面的项目中看到了8×8 LED矩阵和MAX7219 IC是如何连接的。所以,我将跳过这部分的连接,继续讨论如何将MAX7219 IC与Arduino连接。

但是在前面的电路中我没有提到一个典型的8×8 LED矩阵的引脚图。因此,要有一个实现,下面的图像显示出一个8×8 LED矩阵的引脚。

Arduino 8x8 LED矩阵引脚图

正如你所观察到的,一个8×8 LED矩阵由16个引脚组成:8行和8列。通常,行与led的阳极相关联,列与led的阴极相关联。

线路图

Arduino 8x8 LED矩阵电路图

组件的要求

    • Arduino UNO
    • MAX7219 IC板
    • 8×8 LED矩阵
    • HC-05蓝牙模块
    • 安装了应用程序的Android手机

电路设计

由于Arduino与MAX7219之间的通信是基于SPI通信协议我们只需要Arduino的三个引脚(数据,时钟和芯片选择)。MAX7219 IC板的CS、CLK和DIN引脚分别与Arduino的10、11和12引脚相连。

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

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

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

Arduino 8x8 LED矩阵Android应用程序

该应用程序有8×8方框(每个方框对应8×8 LED矩阵上的一个LED),一个重置按钮和一个断开按钮。触摸一个特定的正方形将打开8×8 LED矩阵中的特定LED。

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

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

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

下载安卓应用

您可以在Android设备上下载和安装本项目中使用的App。使用安装App的链接。

代码

应用程序

  • 基于Arduino的8 × 8 LED矩阵显示只使用了3个引脚的微控制器。因此,它可以用于显示信息是系统的一部分的应用程序,其中微控制器的其他引脚可以用于其他外设。
  • LED矩阵是一种基本形式的显示设备,用于显示公共场所的信息,如公共汽车或火车站。
  • 多个LED矩阵可以组合形成大型显示器,可用于显示多种颜色的图像。

22日回复

      1. Max 7219芯片是否兼容8×8 led矩阵共阳极显示器?我需要帮助,请分享max7219 + 8×8 led矩阵公共阳极模块原理图给我。谢谢你!

  1. 对于控制使用应用程序,哪些代码我必须复制(代码没有应用程序或与应用程序代码)与库?

  2. 哥哥我很高兴你做了这个伟大的工作,因为我的老师拒绝了我最近的项目手机控制车辆使用蓝牙,但现在担心,现在我可以买led模块,可以使用我以前的项目的旧组件谢谢你

  3. 我目前正在做一个android手机。我已经拷贝了代码和所有的东西。我也可以用这个应用程序把我的手机连接到HC-05上,但问题是led矩阵是不亮的。请帮助! !

  4. 嗨,我如何能单独控制多个点阵显示?根据你所写的文章,多个显示器似乎在每个显示器中显示相同的内容

  5. 你好,我有一个带有芯片的max7219组件,我必须要得到一个像你在构建多级矩阵时使用的那种吗?

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
Baidu
map