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