TFT液晶面板與三軸加速度計的配合使用–第2部分

點擊此處閱讀本文的第1部分 >

tft lcd

在第1部分中,我們能夠獲取KX022-1020加速度計的數值並將其顯示到TFT液晶LCD面板上。在第2部分中,我們將展示如何在讀取程式內容的同時控制TFT顯示幕!

今天的電子食譜

預計完成時間:60分鐘

所需零件:

您可以從以下網站購買羅姆感測器評估套件!

Chip One Stop

Mouser Electronics

 

透過Arduino在TFT液晶顯示幕上顯示資料

和之前一樣,我們使用SainSmart ST7735R TFT顯示幕。這是一款緊湊的LCD顯示幕,可相容Arduino和Raspberry Pi。該顯示幕具有內建microSD卡插槽,因此除了讀取和寫入資料外,還可以存儲和載入圖像。在本課程中,我們將僅嘗試在該TFT顯示幕上顯示數值。

我們開始吧!首先,將TFT顯示幕與Arduino連接起來。

tft lcd

圖1 SainSmart ST7735R TFT顯示幕

tft lcd

圖2 TFT顯示幕的背面

TFT 引腳定義:

  • VCC – 供電電壓
  • GND – 地
  • SCL – 序列時脈線
  • SDA – 序列資料線
  • RS / DC – 命令/資料選擇
  • RES – LCD 控制器復位
  • CS – 卡的片選訊號

將Arduino連至TFT顯示幕之後,我們來運行範例程式。

 

將TFT顯示幕程式館文件應用於Arduino

正如文章第1部分中提到的,我們需要對程式館檔(ST7735R)進行一些小的修改,以便讓TFT顯示幕相容Arduino系統。

用於Arduino的SainSmart 1.8 ST7735R TFT液晶顯示幕,搭載MicroSD卡槽和LED背光

Raspberry Pi 程式館 (ST7735R V0.2)

上述URL的頁面底部有一個下載連結。按一下頁面上標有 “Download Link” 的連結,下載完整的程式館、範例代碼及文件等。下載完成後,解壓檔並重新編寫必要的檔。

請用能夠編輯文本的編輯器打開 “ST7735.h” ,然後更改下圖所示的部分。您也可以使用Arduino IDE。

tft lcd

更改完成後,用zip再次壓縮 “TFT 18” 目錄,然後在Arduino(或Arduino Create)Add Library中將其作為一個程式館添加;或者將其放置在Arduino安裝目錄的“libraries”目錄下並載入該程式館。

導入程式館之後,請嘗試在範例程式中行動 “TFT 18” – “graphictest” 。

您會看到範例程式的顯示非常流暢。

範例程式 – graphictest

 

該TFT顯示幕的主要功能如下所示:

tft.drawPixel(x,y,color); – 在指定位置(x,y)顯示指定顏色(color)的點。

tft.drawCircle(x, y, radius, color); – 在指定位置(x,y)用指定半徑(radius)畫一個圓。

tft.fillRect(x1,y1, x2, y2, color); – 填充指定位置1(x1, y1)至指定位置2(x2, y2)之間的矩形。

tft.drawString(x, y, text, color); – 在指定位置(x,y)用指定顏色(color)顯示文本。

tft.fillScreen(0x0000); – 用指定顏色填充整個顯示幕。

儘管還有其他功能,但是上述主要功能已經能夠滿足幾乎所有我們的顯示要求。

 

將加速度計的數值繪製成佈局

接下來,讓我們在TFT顯示幕上顯示加速度計的數值!基本上,就感測器評估套件而言,我們無需更改TFT顯示幕這邊的連線。只需將KX022-1020加速度計插入感測器研發板即可。

tft lcd

圖3 加速度計和TFT顯示幕

顯示加速度計數值的程式如下:

 

運行上述程式後,顯示幕會將加速度計的數值用佈局顯示出來。

該程式流程摘要如下:

  1. 啟動時顯示“DEVICE PLUS !!”字元
  2. 獲取加速度計的數值並將其轉換為整數
  3. 根據數值顯示佈局和文本

每一訊框我們給x軸加1,以便從左到右繪製佈局。

當畫面到達120px顯示幕的邊緣時,程式會用drawrect清除佈局。螢幕上方的數位以相同的方式透過drawrect進行每訊框更新。

至此,利用TFT液晶顯示幕顯示加速度計的數值並繪製相關佈局的課程就結束了!我們還可以考慮研發更多的附帶專案。比如,我們可以將此TFT顯示幕與Arduino Pro Mini組合在一起,製作具有小型遊戲功能的手錶等;還可以利用感測器評估套件中的不同感測器來製作資料記錄器。

 

點擊此處閱讀本文的第1部分 >