0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自定义字符生成器的制作

454398 来源:网络整理 作者:网络整理 2019-11-19 10:47 次阅读

步骤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
    +关注

    关注

    184

    文章

    6422

    浏览量

    184628
  • 面包板
    +关注

    关注

    2

    文章

    296

    浏览量

    17402
收藏 人收藏

    评论

    相关推荐

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 246次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用

    TSMaster报文发送的信号生成器操作说明

    类型有8种,今天重点和大家分享一下关于TSMaster信号生成器的8种类型的使用方式。本文关键字:信号生成器、正弦、斜坡脉冲、值范围、切换、随机、自定义、系统变量目
    的头像 发表于 12-23 08:21 267次阅读
    TSMaster报文发送的信号<b class='flag-5'>生成器</b>操作说明

    Python生成器的使用方法

    举一个例子,编写一个函数计算一串数字里所有偶数的个数,其实是很简单的问题,但是有些人是用生成器这么写的: In [ 66 ]: def f1 ( x ): ....: return sum
    的头像 发表于 11-03 15:41 219次阅读

    Android端自定义铃声 MobPush对安卓端自定义铃声的教程

    如何为APP推送设置独特的通知铃声呢?本次带来的是MobPush对安卓端自定义铃声的教程,快来看看吧~
    的头像 发表于 10-21 15:34 782次阅读
    Android端<b class='flag-5'>自定义</b>铃声 MobPush对安卓端<b class='flag-5'>自定义</b>铃声的教程

    labview超快自定义控件制作和普通自定义控件制作

    labview超快自定义控件制作和普通自定义控件制作
    发表于 08-21 10:32 5次下载

    Versal GTY/GTYP:使用PRBS生成器和检查器

    本文涵盖了在 Versal GTY 和 GTYP 中使用模式生成器和检查器时对以下操作的限制
    的头像 发表于 07-10 17:18 679次阅读

    教程 3:构建自定义配置文件

    教程 3:构建自定义配置文件
    发表于 07-06 18:49 0次下载
    教程 3:构建<b class='flag-5'>自定义</b>配置文件

    教程 2:自定义配置文件示例

    教程 2:自定义配置文件示例
    发表于 07-04 20:50 0次下载
    教程 2:<b class='flag-5'>自定义</b>配置文件示例

    IzoT 资源报告生成器用户指南

    IzoT 资源报告生成器用户指南
    发表于 07-04 20:46 0次下载
    IzoT 资源报告<b class='flag-5'>生成器</b>用户指南

    将使用代码生成器生成的项目移植到与智能配置器一起使用的项目

    将使用代码生成器生成的项目移植到与智能配置器一起使用的项目
    发表于 06-30 20:54 0次下载
    将使用代码<b class='flag-5'>生成器</b><b class='flag-5'>生成</b>的项目移植到与智能配置器一起使用的项目

    labview自定义控件

    labview自定义精美控件
    发表于 05-15 16:46 9次下载

    用于改进应用的自定义逻辑外设

    具有可配置自定义逻辑 (CCL) 外设。为了快速轻松地进行设置,MPLAB® 代码配置器 (MCC) 可用于为正在使用的外设设置和生成 API。
    的头像 发表于 05-06 09:51 571次阅读
    用于改进应用的<b class='flag-5'>自定义</b>逻辑外设

    外设驱动生成器V.1.02指导手册

    外设驱动生成器V.1.02 指导手册
    发表于 04-28 18:44 0次下载
    外设驱动<b class='flag-5'>生成器</b>V.1.02指导手册

    外设驱动生成器V.1.03 用户手册

    外设驱动生成器V.1.03 用户手册
    发表于 04-26 20:05 0次下载
    外设驱动<b class='flag-5'>生成器</b>V.1.03 用户手册

    外设驱动生成器V.1.03 指导书

    外设驱动生成器V.1.03 指导书
    发表于 04-26 20:05 0次下载
    外设驱动<b class='flag-5'>生成器</b>V.1.03 指导书