使用 Arduino Uno 操作一个 8x8 LED 矩阵
1) ARDUINO UNO
Arduino 是一个基于易于使用的硬件和软件的开源电子平台。Arduino 板子能够读取输入信号——例如传感器上的光、按钮上的手指触碰,或 Twitter 上的消息——并将其转换为输出动作,比如启动电机、点亮 LED 或在线发布内容。通过向板子上的微控制器发送一系列指令,你可以告诉它该做什么。为此,我们使用 Arduino 编程语言(基于 Wiring)以及基于 Processing 的 Arduino 软件(IDE)。
多年来,Arduino 已成为成千上万项目的“大脑”,从日常用品到复杂的科学仪器,无所不包。一个全球性的创客群体——包括学生、爱好者、艺术家、程序员和专业人士——围绕这一开源平台聚集在一起,他们的贡献汇聚成大量可获取的知识,对初学者和专家都大有帮助。
2) LED矩阵
什么是LED矩阵?LED矩阵是一种点阵显示屏,具有较低的分辨率,适用于工业或商业显示设备,也广泛用于业余人士的人机交互装置。它包含一个二维的二极管矩阵,阴极按行连接,阳极按列连接。通过控制每一对列或行上的二极管通电,可以独立控制每个LED点。这种矩阵因其能够显示静态和动态图像与文字而广受欢迎。图中展示了LED矩阵的示意图。
LED矩阵的类型:
LED矩阵在工业和商业领域应用广泛,本文将介绍其中一些根据结构分类的类型。
•8×8点阵
•5×7点阵
•128×16双线阵
•128×32四线阵
•128×64八线阵
•8×8点阵
在点阵中,二极管以行和列的方式连接在一起,目的是减少驱动点发光二极管所需的引脚数量。假设一个8×8点阵,每个发光二极管像素需要64个I/O引脚来显示。为了构成8×8点阵,所有阳极(anodes)都通过R1到R8的行进行连接,阴极(cathodes)则通过C1到C8的列进行连接。这样,所需的I/O引脚数量减少了16,如下图所示。
根据图示,每个LED都由其对应的行号和列号进行寻址。如果将R5拉高,同时将C4拉低,则第五行第四列的LED就会被点亮;同样,也可以通过逐行扫描或逐列扫描来实现显示效果。
5×7点阵:
一个5×7的LED矩阵包含5行和7列的发光二极管,这些二极管按图3所示方式连接起来。如图所示,若要显示字母“A”,首先将C1列拉高,并通过阻断其地线路径使其他列保持低电平。此时C1列已拉高,需开启该列中R2至R7行的LED。这是通过向这些行施加正向偏置电压来实现的。接下来选择C2列,取消选择其他列,并在R1和R5之间施加正向偏置电压,依此类推。
点阵的构造:
如果想制作自己的原型显示屏,这种显示结构非常简单。二极管只需焊接在Vero板或预先制作好的双面或单面电路板上即可。假设我们想要制作图2所示的8×8点阵原型显示屏,则需要64个发光二极管。这些二极管被焊接在面包板或单面电路板上。每个二极管的正极连接到另一个二极管的正极,以构成行;同样,8行由每个二极管的正极依次连接而成。每个二极管的负极则连接到另一个二极管的负极,从而构成列。所有这些二极管通过裸铜线相互连接,且所有连接必须正确焊接,否则无法实现各部分之间的良好连接。
点阵与微控制器的接口:
点阵显示屏由行和列组成,LED灯通过这些行和列连接。这些灯可以随意开关,但只能通过微控制器来实现。本文将介绍如何将PIC微控制器与图中所示的点阵显示屏进行接口连接。
3) 蓝牙模块
蓝牙是一种无线通信技术标准,通过短波长的超高频(UHF)无线电波,在固定设备与移动设备之间进行短距离数据传输。其工作频率范围位于工业、科学和医疗无线电频段,即2.402 GHz至2.480 GHz,并可用于构建个人局域网(PAN)。最初设计时,蓝牙旨在作为RS-232数据线的无线替代方案。
HC-05模块信息
HC-05模块配备红色LED灯,用于指示连接状态,即蓝牙是否已连接。在连接到HC-05模块之前,该红灯会以周期性方式持续闪烁。当成功连接到其他蓝牙设备后,闪烁频率将减慢至每两秒一次。
该模块工作电压为3.3V,但也可使用5V电源供电,因为模块内置了5V转3.3V的稳压器。
由于HC-05蓝牙模块的收发端(RX/TX)工作电平为3.3V,且微控制器能够检测到3.3V电平,因此无需对HC-05模块的发送电平进行转换。但我们需将微控制器的发送电平调整至HC-05模块的接收端(RX)输入电平。
本文编译自hackster.io





