步骤1:组件
这是一个有关Adafruit HT16k33矩阵的基础项目,您需要:
Adafruit HT16k33 1.2‘’x 1.2‘’8x8双色LED矩阵。
Arduino(除了Uno以外的任何变体都是首选)。
面包板
步骤2:原理图
接线Adafruit HT16k33 LED矩阵这很容易,因为我们需要像通常在I2C设备上那样连接时钟和数据引脚。连接方式如下:
SCL(矩阵的时钟引脚)连接到A5(时钟的时钟引脚) Arduino Uno。有关Arduino的其他变型,请参见数据表)
与A4连接的SDA(矩阵的数据引脚)。(有关Arduino的其他变型,请参见数据表)
VCC连接至5V。
GND连接到0V。
您也可以参考图中所示的示意图。
步骤3:代码
Arduino代码
首先,我们将包含所有需要的库。
Wire.h:-用于I2C通信
Adafruit_LedBackpack
Adafruit_GFX
所有这些库都可以在Arduino IDE本身中使用。您只需要从Library Manager安装它们。 Sketch 》》 Include Library 》》 Manage Libraries
设置功能()
设置一个无符号整数8位数组,以strore8个二进制值表示8行,每行8位(8列) )。设置I2C通信的地址。
循环功能()
由于我们需要打印字符,因此需要实时的字符代码。最方便的方法是串行发送代码,Arduino将读取串行数据并相应地打印字符。串行发送一个数组可能很麻烦,因此我们可以发送一个字符串,其中所有8个代码(每个8位)用逗号分隔。
读取串行字符串:
if (Serial.available()》0)
{
data=Serial.readStringUntil(‘ ’);
Serial.println(data);
}
阅读文本后,我们需要解码此字符串并获取二进制值。众所周知,输入字符串的格式将始终相同。我们可以对其进行编码以找到子字符串,并将字符串转换为其等效的十进制值。然后我们将传递生成的十进制数组(uint8_t)以在矩阵上打印字符。
将8位字符串转换为十进制:
int val(String str)
{
int v=0;
for (int i=0;i《8;i++)
{
if (str[i]==‘1’)
{
v=v+power(2,(7-i));
}
}
return v;
}
使用幂函数(pow()),您需要处理双精度类型值,因此我们可以编写自己的幂函数为:
int power(int base,int exponent)
{
int c=1;
for (int i=0;i {
c=c*base;
}
return c;
}
现在,最后,我们将代码编写为使用生成的8个十进制值的数组(每行一个)打印字符。
void print_emoji( uint8_t emoji[],String color)
{
matrix.clear();
if (color==“red”)
{
matrix.drawBitmap(0, 0,emoji, 8, 8, LED_RED);
}
else
{
matrix.drawBitmap(0, 0,emoji, 8, 8, LED_GREEN);
}
matrix.writeDisplay();
delay(500);
}
您将很容易理解此代码,因为我们先清除矩阵,然后使用表情符号显示字符使用 matrix.drawBitmap()函数的数组。别忘了在所有格式之后写“ matrix.writeDisplay()”,因为此函数将仅显示到目前为止在矩阵上完成的所有格式。
现在您可以发送字符串具有所有代码值,Arduino将在矩阵上打印字符。您可以从下面下载Arduino代码。出于实验目的,您可以在串行监视器中写
B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100
此字符串,并可以看到矩阵上的字符。/p》
现在,当我们按“打印”按钮时,我们需要从软件自动发送串行数据。为了实现这一点的自动化,我们将制作一个演示8x8矩阵,并为用户提供选择应该给哪些单元着色的工具,然后该软件将自动生成代码并将数据以字符串格式串行发送到Arduino。我选择余下的工作。在处理过程中,我们可以使用64个按钮(带有按下功能的矩形)制作矩阵,并可以在开始时分配特定的值和颜色(让其为值为0的白色)。现在,每当按下按钮时,我们都会将按钮的颜色转换为黑色,并将其值设置为1。如果用户再次按下相同的按钮,则其值将再次更改为0,然后颜色恢复为白色。这将帮助用户轻松地一次又一次地更改代码,并且可以轻松进行修改,而无需再次擦除整个矩阵。单击“打印”按钮,我们将创建一个类似于上面演示示例的字符串。然后,该字符串将被发送到特定的串行端口。
您可以从下面下载处理代码。这是我的第一个处理代码。高度赞赏有关增强编码方式的建议。
您可以看到GUI的外观以及如何使用系统创建字符。在矩阵上创建相同字符几乎不需要几秒钟。
责任编辑:wv
-
Arduino
+关注
关注
188文章
6469浏览量
187118 -
面包板
+关注
关注
3文章
298浏览量
17569
发布评论请先 登录
相关推荐
评论