利用Arduino制作8×10 LED矩陣
LED矩陣是使用Arduinos構(gòu)建的一些最受歡迎的項(xiàng)目。使用LED非常有趣,而且從它們那里獲得的輸出效果令人著迷。您可以將這些矩陣用于各種應(yīng)用程序,以創(chuàng)建具有滾動(dòng)文本和播放動(dòng)畫的標(biāo)示牌。構(gòu)建一個(gè)它真的很便宜和簡(jiǎn)單,它可以很容易地使用Arduino重新編程。您甚至可以自定義它以與音樂系統(tǒng)的輸出一起使用,因此我們可以獲得很酷的同步視覺效果。
在本教程中,我將向您展示如何使用Arduino和4017十年計(jì)數(shù)器構(gòu)建一個(gè)花哨的8×10 Arduino LED矩陣(帶滾動(dòng)文本和動(dòng)畫)。您也可以在線購(gòu)買組裝的LED矩陣。這種類型的矩陣易于制作和編程,是學(xué)習(xí)多路復(fù)用的好方法。
LED矩陣如何工作?整個(gè)Arduino LED矩陣項(xiàng)目的工作原理是多路復(fù)用。在這里,Arduino連接到4017十年計(jì)數(shù)器IC并通過(guò)兩條線發(fā)送數(shù)據(jù)。然后,來(lái)自Arduino的多路復(fù)用數(shù)據(jù)通過(guò)4017 IC解碼為L(zhǎng)ED的單獨(dú)信號(hào)。然后,它驅(qū)動(dòng)各行中的相應(yīng)LED。焊接矩陣選擇合適的LED是該項(xiàng)目最重要的部分之一。因?yàn)檫x擇合適的項(xiàng)目對(duì)于該項(xiàng)目的執(zhí)行至關(guān)重要。我建議使用5mm漫射LED,因?yàn)樗鼈兲峁┝讼喈?dāng)大的亮度并提供了清晰的圖像。
5mm擴(kuò)散LED焊接Arduino LED矩陣是一個(gè)棘手的部分,有很多方法可以做到這一點(diǎn),我將與你分享我的方法。您需要在IC列中連接LED的所有正極引線,在行中連接負(fù)極引線。您可以使用焊點(diǎn)原型板焊接其上的LED。將LED推過(guò)電路板上的相鄰孔。使用下面的電路圖將Arduino LED矩陣連接在一起。然后,取第一個(gè)LED的正極引線并將其向下彎曲到其他LED并焊接相互接觸的引腳。接下來(lái),取下您焊接的最后一根導(dǎo)線并再次向下彎曲并重復(fù),直到您在列中連接了所有正極導(dǎo)線。剪掉你沒用過(guò)的額外長(zhǎng)度的引線。
現(xiàn)在又出現(xiàn)了一個(gè)新的困境。也就是說(shuō):連接負(fù)極引腳,因?yàn)樗鼈儾荒芟裾龢O引線一樣彎曲和焊接,因?yàn)樗鼈儠?huì)相互短路。我的方法節(jié)省了大量時(shí)間并且更簡(jiǎn)單。訣竅是在列的連接上放一些磁帶,將它們與負(fù)極引腳隔離。如果你這樣做,你也可以彎曲負(fù)極引線并像正面那樣連接它們。他們不會(huì)相互缺口,因?yàn)樗麄儠?huì)被孤立。Arduino LED矩陣的電路如下圖所示:
Arduino LED矩陣連接通過(guò)電阻,您必須將每列連接到Arduino(引腳0-7)。4017的復(fù)位引腳連接到Arduino上的引腳8,時(shí)鐘引腳連接到Arduino上的引腳9。
Arduino LED矩陣的多路復(fù)用什么是多路復(fù)用?
它基本上是一種將信息分成小塊并逐個(gè)發(fā)送的方法。這樣你就可以在Arduino上保存很多引腳并保持你的程序簡(jiǎn)單。在我們的例子中,我們將要顯示的圖像分割成10個(gè)(10行)。我們想要掃描矩陣的行(一次點(diǎn)亮一行)并將信息從Arduino發(fā)送到列。所有列都是LED的正數(shù),行是負(fù)數(shù)。因此,如果第一行接地并且我們向第一列發(fā)送信號(hào),它將僅點(diǎn)亮行中的第一個(gè)LED。為了獲得良好的顯示效果,我們需要非??焖俚貟呙栊校灾劣谌搜壅J(rèn)為所有行都是同時(shí)連接的。
為何選擇IC 4017?
為了控制這種Arduino LED矩陣,4017 IC是最好的方法。這是一個(gè)了解該IC基礎(chǔ)知識(shí)的好網(wǎng)站:4017 IC。4017十年計(jì)數(shù)器幫助我們實(shí)現(xiàn)多路復(fù)用。該IC基本上掃描矩陣的行(一次點(diǎn)亮一行)。在我們的半導(dǎo)體例子中,我們想要將行連接到地,但是4017提供信號(hào)輸出并且不能將LED接地。為了解決這個(gè)小問(wèn)題,我們需要使用帶電阻的晶體管。
通過(guò)電阻,您必須將每列連接到Arduino(引腳0-7).4017的復(fù)位引腳轉(zhuǎn)到Arduino上的引腳8,時(shí)鐘引腳轉(zhuǎn)到Arduino上的引腳9。4017有10個(gè)輸出引腳,因此我們需要10個(gè)電阻和10個(gè)晶體管。我們將1K電阻連接到4017的輸出,另一端連接到晶體管的基極,如本頁(yè)頂部的電路圖所示。接下來(lái),我們將晶體管的集電極連接到LED行,將發(fā)射極連接到地。您也可以使用BC547 NPN晶體管。
編程Arduino LED矩陣我寫了一個(gè)小程序,滾動(dòng)文本并添加所有字母和數(shù)字。我為我的程序使用了端口,因?yàn)樗?jié)省了空間并且更容易處理。
如果您不知道如何使用Arduino上的端口,我建議您在開始之前訪問(wèn)Arduino網(wǎng)站以了解一些基本知識(shí)。這是鏈接:Arduino端口操作。
端口控制示例端口控制非常簡(jiǎn)單,請(qǐng)查看上圖作為示例。紅點(diǎn)表示LED為ON,白色為OFF。在矩陣的第一行,要打開第2和第7個(gè)LED,我們給Arduino端口命令:B01000010。這里第2和第7位為“1”,這又將LED打開?!癇”表示Arduino端口是輸出端口。我們對(duì)所有行進(jìn)行此練習(xí),最后,我們將在燈光中獲得笑臉,如上圖所示。
如果你想制作自己的圖像,我制作了一個(gè)Excel工具,可以讓你更容易地編寫圖像。你可以在我最后附上的zip文件夾中找到它。
最后,上傳程序時(shí)不要忘記拔掉引腳0和1。這些引腳也用作通信引腳,可能會(huì)導(dǎo)致程序出現(xiàn)一些錯(cuò)誤。