风筝
发表于: 2019-12-22 09:12:19 | 显示全部楼层

展示广告牌在市场营销中起着非常重要的作用,有很多种广告方法,例如报纸、海报、发光招牌等。但是,由于数字LED显示板的可靠性和优势,如今它正变得越来越流行。尽管它们有点贵,但它们还是耐用且可定制的,例如可以随时根据需要轻松更改广告文字,也可以在任何公共场所用作数字公告板。今天我们将在Arduino上使用P10显示模块显示文本。


在本篇文章中,我们将使用32x16 LED点阵显示模块(也称为P10 LED显示模块)通过Arduino UNO显示滚动文本。 P10模块可以级联以制作任何尺寸的广告板。


所需的组件

●    Arduino UNO开发板

●    32 * 16 P10 LED显示模块

●    16针FRC连接器

●    5V DC

●    连接器


P10 LED点阵模块的工作原理

P10-LED-Matrix-Module.jpg

P10 LED显示模块最适合设计任何尺寸的室外或室内LED显示广告板。该面板在塑料外壳上安装了总共512个高亮度LED,以实现最佳显示效果。可以将任何数量的此类面板组合成任何行和列结构,以设计出有吸引力的LED招牌。


32 * 16模块尺寸表示每行有32个LED,每列有16个LED。因此,每个模块单元中总共有512个LED。


P10 LED矩阵模块的功能:

●    亮度:3500-4500nits

●    最大功耗:20W

●    电压输入:DC 5V

●    IP65防水

●    1W像素配置

●    高视角

●    高对比度


P10显示模块的引脚说明:

P10-display-module.jpg

●    Enable:此引脚用于通过向其提供PWM脉冲来控制LED面板的亮度。

●    A、B:这些称为复用选择引脚。他们采用数字输入来选择任何多路复用行。

●    Shift clock (CLK)、Store clock (SCLK) Data:这些是常规移位寄存器控制引脚。这里使用了移位寄存器74HC595。

P10-display-module-Pinout.png


连接电路图

下面给出了使用Arduino的P10模块的完整电路图:

Digital-Notice-Board-using-P10-LED-Matrix-Display-and-Arduino-Circuit-Diagram.png

Arduino UNO和P10显示模块根据引脚连接,实物连接如下所示:

Digital-Notice-Board-Setup.jpg


使用Arduino的P10 LED模块编程

成功完成硬件设置后,现在该对Arduino进行编程了。本文末尾给出了完整代码。该代码的说明如下。


首先,在程序中包含所有依赖库。在这里,我们使用“ DMD.h”库进行P10 led操作,从此处下载此库并将其安装在Arduino IDE中。之后,包括“ TimerOne.h”库,该库将用于中断任务。可以从这里下载该库


然后,包括所有必需的字体库,在本例中,我们将“ Arial Black字体”用于显示。

  1. #include <SPI.h>
  2. #include <DMD.h>
  3. #include <TimerOne.h>
  4. #include "SystemFont5x7.h"
  5. #include "Arial_black_16.h"
复制代码

在下一步中,定义LED显示板的行数和列数。在示例中,我们仅使用一个模块,因此ROW值和COLUMN值将为1。然后为在显示板上滚动的文本定义字体名称Arial_Black_16。

  1. #define ROW 1
  2. #define COLUMN 1
  3. #define FONT Arial_Black_16
  4. DMD led_module(ROW, COLUMN);
复制代码

函数scan_module()用于检查通过SPI端子从Arduino端传入的任何数据。如果有数据,那么它将触发一个中断引脚来执行某些事件。

  1. void scan_module()
  2. {
  3.   led_module.scanDisplayBySPI();
  4. }
复制代码

setup()函数中,初始化计时器并将中断附加到函数scan_module。函数clearScreen(true)用于设置所有像素为初始化状态,并都处于关闭状态以清除显示板。

  1. void setup()
  2. {
  3.   Timer1.initialize(2000);
  4.   Timer1.attachInterrupt(scan_module);
  5.   led_module.clearScreen( true );
  6. }
复制代码

要在模块中显示字符串,使用selectFont()函数选择字体,然后使用drawMarquee()函数在显示屏中显示字符串消息“ Welcome to display led”。

  1.    led_module.selectFont(FONT);
  2.    led_module.drawMarquee("<span style="text-indent: 28px; background-color: rgb(255, 255, 255);">Welcome to display led</span>",25, (32 * ROW), 0);
复制代码

最后,要在LED显示板上滚动文本,每隔一定时间间隔将整个消息从右移到左。

  1. long start = millis();
  2.     long timming = start;
  3.     boolean flag = false;
  4.     while (!flag)
  5.     {
  6.       if ((timming + 20) < millis())
  7.       {
  8.         flag = led_module.stepMarquee(-1, 0);
  9.         timming = millis();
  10.       }
  11.     }
复制代码

以上就是使用Arduino和LED点阵屏制作滚动文本广告牌的方法。


代码

以下是本文使用的完整的代码: main.rar (488 Bytes, 下载次数: 163)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-24 11:13 , Processed in 0.041649 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表