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

    关注

    187

    文章

    6461

    浏览量

    186566
  • 面包板
    +关注

    关注

    3

    文章

    298

    浏览量

    17533
收藏 人收藏

    评论

    相关推荐

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    Freepik携手Magnific AI推出AI图像生成器

    近日,设计资源巨头Freepik携手Magnific AI,共同推出了革命性的AI图像生成器——Freepik Mystic,这一里程碑式的发布标志着AI图像创作领域迈入了一个全新的高度
    的头像 发表于 08-30 16:23 1068次阅读

    NVIDIA NeMo加速并简化自定义模型开发

    如果企业希望充分发挥出 AI 的力量,就需要根据其行业需求量身定制的自定义模型。
    的头像 发表于 07-26 11:17 672次阅读
    NVIDIA NeMo加速并简化<b class='flag-5'>自定义</b>模型开发

    NVIDIA AI Foundry 为全球企业打造自定义 Llama 3.1 生成式 AI 模型

    Foundry 提供从数据策管、合成数据生成、微调、检索、防护到评估的全方位生成式 AI 模型服务,以便部署自定义 Llama 3.1 NVIDIA NIM 微服务和新的 NVIDIA NeMo
    发表于 07-24 09:39 675次阅读
    NVIDIA AI Foundry 为全球企业打造<b class='flag-5'>自定义</b> Llama 3.1 <b class='flag-5'>生成</b>式 AI 模型

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗
    的头像 发表于 05-16 18:18 1266次阅读
    HarmonyOS开发案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 583次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    微软Dev Home应用提供自定义文件管理支持

    据悉,Microsoft 近期发布了 0.13 版 Dev Home 应用程序,除修复多项 BUG 外,还新增了自定义文件资源管理器功能。该应用支持用户在应用内创建虚拟机,利用微软旗下的 Hyper V 技术生成本地虚拟机。
    的头像 发表于 04-26 11:15 407次阅读

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 961次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 594次阅读

    Minitab 交互式表格生成器

    生成器
    MinitabUG
    发布于 :2024年04月03日 15:58:54

    RL78的代码生成器发布说明

    电子发烧友网站提供《RL78的代码生成器发布说明.pdf》资料免费下载
    发表于 01-30 09:48 0次下载
    RL78的代码<b class='flag-5'>生成器</b>发布说明

    MicroClock可编程 时钟生成器5X1503数据手册

    电子发烧友网站提供《MicroClock可编程 时钟生成器5X1503数据手册.pdf》资料免费下载
    发表于 01-14 10:56 0次下载
    MicroClock可编程 时钟<b class='flag-5'>生成器</b>5X1503数据手册

    HKA5278 128音符旋律生成器一般说明

    电子发烧友网站提供《HKA5278 128音符旋律生成器一般说明.pdf》资料免费下载
    发表于 01-10 09:09 0次下载

    博途用户自定义库的使用

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

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

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