将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏。本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式。

1. 点阵屏介绍

LED点阵屏由LED发光二极管组成,通过控制LED亮灭来显示文字、图片、动画、视频等,被广泛应用于公共场合做信息展示,如广告屏、公告牌等。

LED点阵屏按照LED发光颜色可分为单色、双色、三色灯等,可显示红、黄、绿甚至是真彩色。根据LED的数量又分为4x4、8x8、16x16等不同类型。多色点阵屏工艺要求相对较高,需要考虑多种颜色混合时对色彩的影响。这里我们通过单色8x8点阵屏来了解其原理。

不同点阵屏封装不同,8x8点阵屏由8行8列共64个LED灯组成,其内部结构如下图:

每个LED放置在行线和列线的交叉点上,当对应的某一行电平拉高,某一列电拉低,则对应交叉点的LED就会点亮。

8x8点阵屏有16个管脚,将有丝印的一边朝下,逆时针编号为1–8,9–16。

其对应内部管脚定义如下如所示:

比如我们要点亮第一行第一列LED灯,则对应将点阵屏的第9脚拉高,第13脚拉低,其他LED控制以此类推即可。

2. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • 8*8点阵屏

3. 实验步骤

1. 根据原理图搭建电路。

根据点阵屏管脚定义,点阵屏的[9, 14, 8, 12, 1, 7, 2, 5]分别连接开发板的[6,11, 5, 9, 14, 4, 15, 2],这8个引脚为LED的正极;

点阵屏的[13, 3, 4, 10, 6, 11, 15, 16]分别连接开发板的[10,16, 17, 7, 3, 8, 12, 13],这8个引脚为LED的负极。

这里需要注意,Uno R3开发板的A0–A5也可以做普通GPIO使用,编号分别为14–19。

实验原理图如下图所示:

实物连接图如下图所示:

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

/** Matrix* 点阵屏显示驱动*/int leds[8] = {6, 11, 5, 9, 14, 4, 15, 2}; //点阵屏正极引脚
int gnds[8] = {10, 16, 17, 7, 3, 8, 12, 13}; //点阵屏负极引脚void setup() {for (int i = 0; i < 8; i++){pinMode(leds[i], OUTPUT);pinMode(gnds[i], OUTPUT);digitalWrite(gnds[i], HIGH); //负极引脚拉高,熄灭所有LED}
}void ledopen()
{for (int i = 0; i < 8; i++)//将点阵屏正极拉高,负极拉低,开启显示{digitalWrite(leds[i], HIGH);digitalWrite(gnds[i], LOW);}
}void ledclean()
{for (int i = 0; i < 8; i++)//将点阵屏正极ladies,负极拉高,关断显示{digitalWrite(leds[i], LOW); digitalWrite(gnds[i], HIGH);}
}//逐列扫描
void ledCol()
{for (int i = 0 ; i < 8; i++){digitalWrite(gnds[i], LOW); for (int j = 0; j < 8; j++){digitalWrite(leds[j], HIGH);delay(40);}digitalWrite(gnds[i], HIGH);ledclean();}
}//逐行扫描
void ledRow()
{for (int i = 0 ; i < 8; i++){digitalWrite(leds[i], HIGH);for (int j = 0; j < 8; j++){digitalWrite(gnds[j], LOW);delay(40);}digitalWrite(leds[i], LOW);ledclean();}
}void loop() {ledopen(); //全部打开delay(500);ledclean(); //全部关闭delay(500);ledCol(); //列扫描ledRow(); //行扫描}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

4. 实验现象

LED点阵屏点亮然后熄灭,然后逐列点亮,逐行点亮。

5. 实验分析

LED点阵屏不过是多个LED组合在一起来驱动,基本的驱动方式是逐行扫描或者逐列扫描。通过两个for循环嵌套来进行操作,外部循环控制列,内部循环遍历行,或者外部循环控制行,内部循环遍历列,相对操作还是非常简单的。当逐行或者逐列扫描足够快的时候,人眼就会因为视觉暂存而看到同时点亮的效果。

当对多块点阵屏进行操作时,使用IO引脚直接驱动的方式就显得不切实际了,一方面这需要占用很多的IO口,另一方面IO驱动能力毕竟有限,所以点阵屏还有专门的驱动电路和IC芯片来满足更高的应用要求。

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:

Arduino基础入门篇19—点阵屏相关推荐

  1. arduino点阵声音频谱_Arduino基础入门篇19—点阵屏

    将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏.本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式. 1. 点阵屏介绍 LED点阵屏 ...

  2. Arduino基础入门篇01—进入Arduino的世界

    欢迎来到Arduino的世界,本文主要介绍Arduino的优势,开发所涉及的硬件分类,开发语言及开发环境的下载.可登陆Arduino官网学习了解更多Arduino信息. 什么是Arduino Ardu ...

  3. Arduino基础入门篇02—Arduino开发环境IDE安装使用

    工欲善其事,必先利其器.本文主要介绍Arduino开发环境IDE的安装及功能介绍. Arduino IDE安装 从官网下载IDE开发环境,IDE下载地址 .笔者使用Win10系统,点击 Windows ...

  4. Arduino基础入门篇26—步进电机

    步进电机是一种将电脉冲转化为角位移的执行机构.通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角),多用于雕刻机.3D打印机等需要精确控制的设备.本篇 ...

  5. Arduino基础入门篇30—数字温度传感器DS18B20

    温度传感器的种类繁多,按照测量方式分为接触式和非接触式,按照传感器材料分为热电阻和热电偶两类,按照工作原理分为模拟式和数字式.上一篇介绍了模拟温度传感器LM35,本篇介绍数字温度传感器DS18B20的 ...

  6. Arduino基础入门篇16—数码管库的使用

    Arduino官方提供了丰富的驱动库来方便对外设进行操作,很多爱好者也在开源精神下提供了很多第三方库.本篇介绍数码管库的使用,通过读取电位器输入,使用数码管库驱动数码管显示对应数据. SevSeg库是 ...

  7. Arduino基础入门篇06—流动的LED灯

    上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯.本篇将使用面包板搭建电路,多个LED灯配合显示流动效果. 1. 实验材料 Uno R3开发板 配套USB数据线 面包板及配套连 ...

  8. Arduino基础入门篇17—四位数码管的驱动

    本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 数 ...

  9. Arduino基础入门篇(按键控制LED)

    本篇我们主要介绍通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的. 一.按键开关介绍 按键开关主要是指轻触式按键开关,也称之为轻触开关.按键开关是一种电子开关,属于电子元器件类,最早 ...

  10. Arduino基础入门篇10—电位器控制LED灯

    本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度. 模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚.它可以将 ...

最新文章

  1. append从一个添加到另一_真特么激动第一个爬虫----爬取豆瓣电影top250
  2. linux认证授权系统,linux高级操作系统用户认证与授权-20210323002921.doc-原创力文档...
  3. mysql 源码 库函数_【MySQL】MHA源代码之主库选取(二)
  4. linux 设置ftp自启,CentOS vsftpd设置安装自启动配置
  5. 台式电脑没鼠标怎么移动光标_零基础学电脑从入门到精通 电脑零距离
  6. Maven项目编译工具的使用
  7. Windows下卸载TensorFlow
  8. PTC Creo 8最新版下载
  9. 自动控制原理专业词汇中英文对照(一)
  10. 地理信息系统名词解释大全
  11. UE4遇到的各种奇葩问题
  12. 玩转华为ENSP模拟器系列 | 配置L3VdPdNd迭代SR-BE隧道示例
  13. WMS仓储管理系统在各种行业中,都有哪些作用
  14. 菜鸟级别批处理命令IF~ELSE语法问题
  15. Squeeze-and-Excitation Networks(SENet) 学习笔记
  16. wps在Ubuntu不能使用中文
  17. 37来电号码归属地的显示
  18. 广州尔码喻晓马全面深入阐释:何为大数据
  19. 各种颜色发光二极管的工作电压
  20. 工业废水的种类及其处理工艺简析

热门文章

  1. fai 安装debian
  2. 支配树(Dominator Tree)
  3. SHAP 可视化解释机器学习模型简介
  4. Deformable Kernel Networks for Joint Image Filtering论文笔记
  5. 手把手教用爬虫爬sciencedirect学术研究
  6. java api接口_Java程序API数据接口
  7. PR视频去水印—中间值
  8. Ubuntu 20.04 安装 Seismic Unix
  9. iOS IPv6测试环境搭建及服务器ipv6测试
  10. 单片机C语言延时程序