步驟1:您要使用什么組件需要嗎?
1 Arduino Mega(我使用便宜的克?。?;
1個(gè)2.2英寸SPI TFT顯示模塊240 x 320 ILI9341;
2 SPI 5v至3v3電平轉(zhuǎn)換器;
1個(gè)AT24C256串行EEPROM模塊;
1 Arduino Uno原型板;
1母對(duì)母接頭電纜;
1母USB連接器;
1被動(dòng)壓電蜂鳴器;
2個(gè)4k7電阻器;
用于ld的1200歐姆電阻器;
1 40針接頭連接器公頭;
1 40針接頭連接器母;
幾種顏色的電線用于連接原型板上的組件;
我自己使用了許多廉價(jià)的克隆,如果您想要優(yōu)質(zhì)的組件并且用于《實(shí)例Arduino板沒(méi)有驅(qū)動(dòng)程序問(wèn)題,您可以購(gòu)買(mǎi)原裝零件,這些便宜的TFT模塊的觸摸界面非常糟糕,以至于我不使用它,因此您還可以訂購(gòu)更便宜的無(wú)觸摸芯片。使用2板的4線電平轉(zhuǎn)換器,我相信也有單板8線的轉(zhuǎn)換器。我使用標(biāo)準(zhǔn)(Arduno Uno,由于尺寸)prot otype板因?yàn)橐子谑褂茫€可以使用普通的PCB實(shí)驗(yàn)板。蜂鳴器必須是被動(dòng)的才能將其用作揚(yáng)聲器。我使用母頭連接器將電平轉(zhuǎn)換器和eeprom模塊放置在板上,您不必這樣做,這樣可以節(jié)省空間和金錢(qián),但是它不那么容易更換零件,也不容易將導(dǎo)線焊接到電路板上。如果沒(méi)有板子擋住板子。
步驟2:全部放在一起。
在大多數(shù)情況下,當(dāng)我構(gòu)建項(xiàng)目時(shí),我首先將其構(gòu)建在試驗(yàn)板上,以查看一切是否都按預(yù)期的方式工作。我進(jìn)行了所有測(cè)試,因此您可以跳過(guò)此階段。我將eeprom模塊的引腳和電平轉(zhuǎn)換器的引腳焊接在組件側(cè),以便可以將它們上下顛倒放置在原型板上。您可以按照任何方便的順序放置組件,如果要使用原始的3D打印外殼,則唯一需要放置在特定位置的就是USB連接器
步驟3:整個(gè)圖
該圖似乎有些混亂,但是很難繪制標(biāo)準(zhǔn)組件之間所有連接的圖。我將嘗試解釋一下,我沒(méi)有畫(huà)所有的電源線和地線,首先,我將Eeprom板上的插頭引腳,轉(zhuǎn)換板推入,并在原型板上找到一個(gè)點(diǎn)(在中間),為布線。然后,我找到了一個(gè)合適的區(qū)域來(lái)放置用于將電線連接至顯示板的凸頭。然后,我將它們焊接到板上并進(jìn)行所有電源連接,以使事情井井有條。我使用黑色電線接地,紅色使用5V電線,橙色使用3V3電線。在轉(zhuǎn)換板上,您只需要連接一根接地線,它們就內(nèi)部連接在板上。
在左上角,您將看到鍵盤(pán)的USB連接器。這是一個(gè)標(biāo)準(zhǔn)的母頭USB連接器,外部引腳是電源引腳,另外兩個(gè)引腳是data +和data-引腳。我利用了一個(gè)事實(shí),即普通USB鍵盤(pán)具有“回退”模式到PS2模式(一種簡(jiǎn)單的串行協(xié)議),可以由Arduino處理器輕松解釋。當(dāng)兩個(gè)數(shù)據(jù)引腳都通過(guò)“上拉”電阻器連接到正5電壓時(shí),就會(huì)發(fā)生這種“后退”。這解釋了兩個(gè)4k7上拉電阻。 USB引腳2是數(shù)據(jù),必須連接到Arduino的引腳2,USB引腳3是必須連接到Arduino引腳3的時(shí)鐘。鍵盤(pán)CLK在引腳3上非常重要,因?yàn)檫@是讀取鍵盤(pán)代碼的中斷例程。
左下角的Eeprom模塊是標(biāo)準(zhǔn)的I2C設(shè)備,可以連接到鍵盤(pán)的A4和A5。 Arduino的。在Mega上,這些不是標(biāo)準(zhǔn)的I2C引腳,但我使用非常簡(jiǎn)單的軟件I2C,并且占用的內(nèi)存很少,可以使用這些引腳。
壓電蜂鳴器必須是被動(dòng)類(lèi)型,并且可以連接在接地和引腳8。該引腳是軟件定義的,您可以使用任何其他引腳。
顯示器的連接要復(fù)雜一些,因?yàn)轱@示線均為3v3(盡管顯示器電源強(qiáng)大)使用板載電源穩(wěn)壓器時(shí)為5V),因此我們必須使用小型轉(zhuǎn)換器板將所有線路從5v轉(zhuǎn)換為3v3并向后轉(zhuǎn)換。這些板具有Hv(高電壓)和Lv(低電壓)側(cè),Hv側(cè)為連接到Arduino,Lv端連接到顯示器。這些轉(zhuǎn)換器是雙向的,因此它們將雙向工作。我使用了來(lái)自Arduino Mega中部連接器的SPI信號(hào),該連接器上還有一個(gè)額外的電源和接地引腳。將Mosi,Miso和Clk引腳連接到轉(zhuǎn)換器,并將Lv側(cè)連接到顯示器和SD引腳。其他線路(如芯片選擇線,復(fù)位引腳)分別連接至Arduino Mega d5至D10引腳(分別位于Hv側(cè)和Lv一側(cè))至顯示器和SD卡連接器。
用萬(wàn)用表測(cè)試所有連接,通常我至少有一個(gè)不良的焊點(diǎn),看起來(lái)像是一個(gè)良好的連接,但事實(shí)并非如此,在完全組裝完所有零件之后,您可能會(huì)永遠(yuǎn)搜索。在給電路板上電之前,還要用萬(wàn)用表檢查短路情況。
現(xiàn)在是時(shí)候測(cè)試所有內(nèi)容并加載軟件了。
步驟4:軟件
當(dāng)我開(kāi)始這個(gè)項(xiàng)目時(shí),我打算使用Arduino Nano和盡可能多的標(biāo)準(zhǔn)庫(kù)。我發(fā)現(xiàn)(很多次以前)很多標(biāo)準(zhǔn)庫(kù)的內(nèi)存占用非常大,它們通常具有比我需要的功能更多的功能,有時(shí)并不能提供我需要的所有功能。我自己寫(xiě)了很多小型庫(kù),例如一個(gè)簡(jiǎn)單的I2C庫(kù),它不占用大量?jī)?nèi)存,只具有一些功能。我還為顯示器和鍵盤(pán)編寫(xiě)了庫(kù),以便僅用最少的內(nèi)存就可以擁有所需的功能。 Arduino Nano受到限制,因此在項(xiàng)目進(jìn)行到一半時(shí),我將其更改為具有更多I/O引腳和8 K內(nèi)存的Arduino Mega。我現(xiàn)在使用的唯一外部庫(kù)是Arduino IDE軟件包中標(biāo)準(zhǔn)的SDcard庫(kù)。如果您將文件解壓縮到Arduino項(xiàng)目目錄中,則應(yīng)該能夠?qū)⑵渚幾g為Arduino Mega開(kāi)發(fā)板并上傳。我提供了完整的源代碼(請(qǐng)保留我的名字),您可以根據(jù)需要進(jìn)行修改或擴(kuò)展。可以從我的網(wǎng)站下載該軟件包的最新版本(1.0.1):https://www.heinpragt.com/techniek/arduino/arduino_basic_computer.php。在Arduino草圖文件夾中,還有一個(gè)(Word)文檔,其中包含基本語(yǔ)言的文檔。
在我的網(wǎng)站上,您還可以下載用于3D打印機(jī)的一組STL文件,以打印我為我的版本設(shè)計(jì)這種情況下具有顯示器的安裝點(diǎn),外部的Arduino Mega底部具有連接器,用于連接外部設(shè)備。
簡(jiǎn)單的示例基本程序
10 REM PROGRAM TO CONVERT FROM FAHRENHEIT TO CELSIUS
15 CLS
20 INPUT “Temperature in Fahrenheit”;F
30 C=5/9*(F-32)
40 PRINT “Temperature in Celsius is : ”;C
50 END
步驟5:已知問(wèn)題
TFT顯示器不支持水平方向的硬件滾動(dòng),因此我不得不創(chuàng)建一個(gè)軟件滾動(dòng)條。由于內(nèi)存緩沖區(qū)較小,因此滾動(dòng)速度很慢。我的建議是使用屏幕區(qū)域,并盡可能避免滾動(dòng)。
過(guò)一會(huì)兒,盒子會(huì)變得很容易縮開(kāi),使零件變得太容易分開(kāi),我在零件重疊的情況下在盒子上鉆了一些小孔,并使用很小的螺釘(1毫米)將所有東西緊密地固定在一起。
責(zé)任編輯:wv
-
計(jì)算機(jī)系統(tǒng)
+關(guān)注
關(guān)注
0文章
289瀏覽量
24149 -
Arduino
+關(guān)注
關(guān)注
188文章
6474瀏覽量
187432 -
TFT顯示屏
+關(guān)注
關(guān)注
1文章
7瀏覽量
2018
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論