91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

自定義字符生成器的制作

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-19 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:組件

這是一個(gè)有關(guān)Adafruit HT16k33矩陣的基礎(chǔ)項(xiàng)目,您需要:

Adafruit HT16k33 1.2‘’x 1.2‘’8x8雙色LED矩陣。

Arduino(除了Uno以外的任何變體都是首選)。

面包板

電源

步驟2:原理圖

自定義字符生成器的制作

接線Adafruit HT16k33 LED矩陣這很容易,因?yàn)槲覀冃枰裢ǔT?a href="http://www.makelele.cn/tags/i2c/" target="_blank">I2C設(shè)備上那樣連接時(shí)鐘和數(shù)據(jù)引腳。連接方式如下:

SCL(矩陣的時(shí)鐘引腳)連接到A5(時(shí)鐘的時(shí)鐘引腳) Arduino Uno。有關(guān)Arduino的其他變型,請(qǐng)參見數(shù)據(jù)表)

與A4連接的SDA(矩陣的數(shù)據(jù)引腳)。(有關(guān)Arduino的其他變型,請(qǐng)參見數(shù)據(jù)表)

VCC連接至5V。

GND連接到0V。

您也可以參考圖中所示的示意圖。

步驟3:代碼

Arduino代碼

首先,我們將包含所有需要的庫。

Wire.h:-用于I2C通信

Adafruit_LedBackpack

Adafruit_GFX

所有這些庫都可以在Arduino IDE本身中使用。您只需要從Library Manager安裝它們。 Sketch 》》 Include Library 》》 Manage Libraries

設(shè)置功能()

設(shè)置一個(gè)無符號(hào)整數(shù)8位數(shù)組,以strore8個(gè)二進(jìn)制值表示8行,每行8位(8列) )。設(shè)置I2C通信的地址。

循環(huán)功能()

由于我們需要打印字符,因此需要實(shí)時(shí)的字符代碼。最方便的方法是串行發(fā)送代碼,Arduino將讀取串行數(shù)據(jù)并相應(yīng)地打印字符。串行發(fā)送一個(gè)數(shù)組可能很麻煩,因此我們可以發(fā)送一個(gè)字符串,其中所有8個(gè)代碼(每個(gè)8位)用逗號(hào)分隔。

讀取串行字符串:

if (Serial.available()》0)

{

data=Serial.readStringUntil(‘ ’);

Serial.println(data);

}

閱讀文本后,我們需要解碼此字符串并獲取二進(jìn)制值。眾所周知,輸入字符串的格式將始終相同。我們可以對(duì)其進(jìn)行編碼以找到子字符串,并將字符串轉(zhuǎn)換為其等效的十進(jìn)制值。然后我們將傳遞生成的十進(jìn)制數(shù)組(uint8_t)以在矩陣上打印字符。

將8位字符串轉(zhuǎn)換為十進(jìn)制:

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;

}

使用冪函數(shù)(pow()),您需要處理雙精度類型值,因此我們可以編寫自己的冪函數(shù)為:

int power(int base,int exponent)

{

int c=1;

for (int i=0;i {

c=c*base;

}

return c;

}

現(xiàn)在,最后,我們將代碼編寫為使用生成的8個(gè)十進(jìn)制值的數(shù)組(每行一個(gè))打印字符。

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);

}

您將很容易理解此代碼,因?yàn)槲覀兿惹宄仃?,然后使用表情符?hào)顯示字符使用 matrix.drawBitmap()函數(shù)的數(shù)組。別忘了在所有格式之后寫“ matrix.writeDisplay()”,因?yàn)榇撕瘮?shù)將僅顯示到目前為止在矩陣上完成的所有格式。

現(xiàn)在您可以發(fā)送字符串具有所有代碼值,Arduino將在矩陣上打印字符。您可以從下面下載Arduino代碼。出于實(shí)驗(yàn)?zāi)康?,您可以在串行監(jiān)視器中寫

B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100

此字符串,并可以看到矩陣上的字符。/p》

現(xiàn)在,當(dāng)我們按“打印”按鈕時(shí),我們需要從軟件自動(dòng)發(fā)送串行數(shù)據(jù)。為了實(shí)現(xiàn)這一點(diǎn)的自動(dòng)化,我們將制作一個(gè)演示8x8矩陣,并為用戶提供選擇應(yīng)該給哪些單元著色的工具,然后該軟件將自動(dòng)生成代碼并將數(shù)據(jù)以字符串格式串行發(fā)送到Arduino。我選擇余下的工作。在處理過程中,我們可以使用64個(gè)按鈕(帶有按下功能的矩形)制作矩陣,并可以在開始時(shí)分配特定的值和顏色(讓其為值為0的白色)?,F(xiàn)在,每當(dāng)按下按鈕時(shí),我們都會(huì)將按鈕的顏色轉(zhuǎn)換為黑色,并將其值設(shè)置為1。如果用戶再次按下相同的按鈕,則其值將再次更改為0,然后顏色恢復(fù)為白色。這將幫助用戶輕松地一次又一次地更改代碼,并且可以輕松進(jìn)行修改,而無需再次擦除整個(gè)矩陣。單擊“打印”按鈕,我們將創(chuàng)建一個(gè)類似于上面演示示例的字符串。然后,該字符串將被發(fā)送到特定的串行端口。

您可以從下面下載處理代碼。這是我的第一個(gè)處理代碼。高度贊賞有關(guān)增強(qiáng)編碼方式的建議。

您可以看到GUI的外觀以及如何使用系統(tǒng)創(chuàng)建字符。在矩陣上創(chuàng)建相同字符幾乎不需要幾秒鐘。

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6526

    瀏覽量

    197083
  • 面包板
    +關(guān)注

    關(guān)注

    4

    文章

    299

    瀏覽量

    18861
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    debian image-69上自定義 linux 的啟動(dòng)問題求解

    我構(gòu)建了自定義內(nèi)核,但我在加載它時(shí)遇到問題。 啟動(dòng)掛起: [ 1.052175] 釋放未使用的內(nèi)核映像 (initmem) 內(nèi)存:2168K [ 1.068868] 將 /init 作為 init
    發(fā)表于 03-20 07:25

    SBC案例生成器對(duì)VisionFive2的支持

    最近收到了我的 VisionFive2,并且是 SBC 模型框架和 SBC 案例生成器的開發(fā)人員,我為那些對(duì)標(biāo)準(zhǔn)和自定義案例感興趣的人在這兩個(gè)應(yīng)用程序中添加了對(duì) VisionFive2 SBC
    發(fā)表于 03-18 08:21

    探索Renesas 9FGV0431:低功耗PCIe時(shí)鐘生成器的卓越之選

    探索Renesas 9FGV0431:低功耗PCIe時(shí)鐘生成器的卓越之選 引言 在當(dāng)今的電子設(shè)計(jì)領(lǐng)域,PCIe技術(shù)的廣泛應(yīng)用對(duì)時(shí)鐘生成器提出了更高的要求。Renesas的9FGV0431作為一款專為
    的頭像 發(fā)表于 03-15 17:25 ?895次閱讀

    如何為 Vision Five 2 編譯自定義 Linux 內(nèi)核?

    Vision Five 2 的 Debian 用戶指南只提供了半頁關(guān)于如何編譯自己的內(nèi)核的相當(dāng)稀疏的內(nèi)容。僅從該文檔中,我無法制作我的自定義內(nèi)核。那里的信息似乎相當(dāng)不完整。如果有人能提供一些
    發(fā)表于 02-24 07:44

    電能質(zhì)量監(jiān)測(cè)裝置可自定義監(jiān)測(cè)時(shí)段嗎?

    電能質(zhì)量監(jiān)測(cè)裝置普遍支持自定義監(jiān)測(cè)時(shí)段,現(xiàn)代中高端裝置還具備分時(shí)差異化監(jiān)測(cè)與靈活觸發(fā)能力,可按時(shí)間、事件或混合策略定制采集與存儲(chǔ),兼顧精度、效率與存儲(chǔ)成本。 一、自定義監(jiān)測(cè)時(shí)段的核心實(shí)現(xiàn)方式 1.
    的頭像 發(fā)表于 12-10 16:49 ?1101次閱讀

    無圖形界面模式下自定義檢查工具的應(yīng)用

    此前文章已介紹 ANSA 中的自定義檢查工具。本文將探討該功能在無圖形界面(No-GUI)模式下的應(yīng)用,旨在滿足標(biāo)準(zhǔn)化工作流程的需求,適用于需要高度自動(dòng)化的前處理場(chǎng)景。通過集成自定義檢查,用戶可實(shí)現(xiàn)工作流程的高效自動(dòng)化運(yùn)行。
    的頭像 發(fā)表于 11-30 14:13 ?621次閱讀
    無圖形界面模式下<b class='flag-5'>自定義</b>檢查工具的應(yīng)用

    采用匯編指示符來使用自定義指令

    具體實(shí)現(xiàn) 1、采用.word .half .dword等匯編指示符直接插入自定義指令,這種方法需要自己指定寄存器。其中.word為插入一個(gè)字的數(shù)據(jù)即32位,.half為插入半字即16位
    發(fā)表于 10-28 06:02

    LOTO示波器自定義解碼功能—CANFD解碼

    LOTO示波器軟件更新了自定義解碼功能,并在bilibili上傳了演示視頻,視頻鏈接: https://www.bilibili.com/video/BV1wq3ezjEjQ
    的頭像 發(fā)表于 07-11 10:34 ?1096次閱讀
    LOTO示波器<b class='flag-5'>自定義</b>解碼功能—CANFD解碼

    大彩講堂:VisualTFT軟件如何自定義圓形進(jìn)度條

    VisualTFT軟件如何自定義圓形進(jìn)度條
    的頭像 發(fā)表于 07-07 17:10 ?1698次閱讀
    大彩講堂:VisualTFT軟件如何<b class='flag-5'>自定義</b>圓形進(jìn)度條

    KiCad 中的自定義規(guī)則(KiCon 演講)

    “ ?Seth Hillbrand 在 KiCon US 2025 上為大家介紹了 KiCad 的規(guī)則系統(tǒng),并詳細(xì)講解了自定義規(guī)則的設(shè)計(jì)與實(shí)例。? ” ? 演講主要圍繞 加強(qiáng) KiCad 中的自定義
    的頭像 發(fā)表于 06-16 11:17 ?2235次閱讀
    KiCad 中的<b class='flag-5'>自定義</b>規(guī)則(KiCon 演講)

    HarmonyOS應(yīng)用自定義鍵盤解決方案

    自定義鍵盤是一種替換系統(tǒng)默認(rèn)鍵盤的解決方案,可實(shí)現(xiàn)鍵盤個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對(duì)按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤可以
    的頭像 發(fā)表于 06-05 14:19 ?2447次閱讀

    如何使用自定義設(shè)置回調(diào)函數(shù)?

    你好,我正在嘗試編寫自己的自定義設(shè)置回調(diào)函數(shù),并使用 fastEnum=false。 是否有任何代碼示例或資料可供我參考? void CyU3PUsbRegisterSetupCallback
    發(fā)表于 05-21 06:11

    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制器的高效加工指令自定義封裝

    LabVIEW高效加工指令自定義封裝
    的頭像 發(fā)表于 04-08 13:49 ?3720次閱讀
    LabVIEW運(yùn)動(dòng)控制(三):EtherCAT運(yùn)動(dòng)控制器的高效加工指令<b class='flag-5'>自定義</b>封裝

    MIMXRT1176如何在MBDT中正確實(shí)現(xiàn)自定義LUT?

    我正在嘗試創(chuàng)建自定義 LUT,但不確定如何進(jìn)行。默認(rèn)閃存類型為 ISSI IS25WP064A-JBLE,但我想使用 FM25V02A-GTR。我嘗試用我自己的 LUT 條目修改生成的文件
    發(fā)表于 04-08 07:56

    EB Tresos狀態(tài)顯示無法運(yùn)行生成器是什么原因?qū)е碌模?/a>

    我正在嘗試集成 MCAL 包,但在生成過程中收到如下驗(yàn)證錯(cuò)誤:“無法為模塊”Dio_TS_T40D2M20I0R0“運(yùn)行生成器
    發(fā)表于 04-02 08:06