ESP32彩屏顯示入門:我要五彩斑斕的黑,還有五顏六色的白 | ESP32學習之旅-Arduino版

微信封面

很差意思,本期課程用了那麼殺馬特的封面,可是這張圖卻充分表達了彩屏的特色:能夠顯示五彩斑斕的顏色。git

概述

一直在關注本系列教程的朋友,應該知道,前面幾期課程,咱們基本用到了掌控板自帶的 OLED 顯示屏來顯示內容,可是掌控板自帶的 OLED 顯示屏是一塊單色屏,看久了單色顯示屏,你是否是有點膩了呢?github

因此從本期內容開始,我將經過幾篇教程,帶你們玩轉彩色顯示屏。本篇是彩屏顯示的第一期:ESP32彩屏顯示入門:我要五彩斑斕的黑,經過本篇課程內容的學習,我將帶你們入門彩屏的使用。編程

我要五彩斑斕的黑

因爲掌控板上已經鏈接了一塊屏幕了,因此本期課程使用的硬件不是掌控板,而是另外一塊 ESP32 開發板:DFRobot 出品的 FireBeetle-ESP32。關於這塊開發板的介紹,我在這個系列的第一期就已經介紹過了,你們能夠直接去第一期查看:ESP32 概述與 Arduino 軟件準備微信

FireBeetle_Board-ESP32_V3.0

爲何選擇這塊開發板呢?由於 DFRobot 專門爲這塊開發板設計了簡單方便的擴展板,所以在後面項目接線的時候,就會特別方便;並且 DFRobot 還爲它設計了好看的矢量圖,做爲一個顏值控,後續繪製接線圖怎麼能少得了它!固然最重要的一個緣由是,我手裏除了掌控板,就這麼一塊 ESP32 的開發板……(這麼牽強的理由,你來打我呀性能

在這裏插入圖片描述

若是你選擇的是其餘 ESP32 開發板,也是沒有問題的,接線方法和程序也是徹底兼容的。學習

經常使用彩屏介紹

有了 ESP32 開發板,那麼又有哪些彩屏可使用呢?不論是從尺寸、分辨率、驅動芯片類型,實際上是有很是多的選擇的。最經常使用的一些彩屏尺寸有 1.5 寸、2.0 寸、2.4 寸、2.8 寸、3.2 寸等;分辨率類型有:128×160、240×240、240×320 等;驅動芯片型號有 ST773五、ST778九、ILI9341 等。以下圖所示,即爲一些創客製做中常見的彩屏。測試

彩屏大集合
(圖片來自:https://www.instructables.com...ui

想要了解詳細的彩屏選型,能夠直接去 Instructables 上看下面這篇評測文章,寫的很是詳細,這裏再也不重複造輪子了。spa

Select Color Display for ESP32:https://www.instructables.com/id/Select-Color-Display-for-ESP32/設計

在本期教程中,我使用的是一款 2.4 寸的 TFT_LCD 的彩屏,它的驅動芯片是 ILI9341,分辨率爲 240×320,以下圖所示。

ILI9341_2.4_TFT_LCD

這塊屏幕的詳細參數以下表所示:

屏幕參數

這塊彩屏採用的是 SPI 接線方式,引腳定義以下:

彩屏引腳說明表

SPI (Serial Peripheral Interface),即串行外圍設備接口,是一種高速全雙工的通訊總線。本質上和前面課程用過的 UART 串口、I2C 同樣,是一種通信協議。

SPI 的通訊原理很簡單,它以主從方式工做,這種模式一般有一個主設備和一個或多個從設備。SPI 通信使用 3 條總線( SCK、MOSI、MISO)及片選線(CS 或 SS):

  • MISO:Master Input Slave Output,主設備數據輸入,從設備數據輸出;
  • MOSI:Master Output Slave Input,主設備數據輸出,從設備數據輸入;
  • SCK:Serial Clock,時鐘信號,由主設備產生;
  • CS:Chip Select,從設備使能信號,由主設備控制。

彩屏驅動庫

針對不一樣的彩屏驅動芯片,經常使用的 Arduino 彩屏驅動庫也有不少種選擇,在 Arduino IDE 的庫管理器中,搜索「TFT」就能夠看到許多彩屏驅動庫,好比:

本教程使用的庫是 TFT_eSPI,選擇這個庫的緣由有:

  • 該庫在 GitHub 上 Star 的人數比較多,並且至今還在保持活躍地更新,因此可靠性、專業型比較有保證;
  • 支持各類經常使用的驅動芯片,好比 ST773五、ST778九、ILI9341 等,兼容性比較好;
  • 聽說這個庫的性能也是最出色的。這裏我沒有詳細考究與測試,並且對大部分用戶來講也不重要。

後面的彩屏系列教程,如無特殊說明,咱們就以這個庫爲例。

TFT_eSPI 庫文件安裝

在 Arduino 中打開庫管理器,搜索 TFT_eSPI,而後點擊安裝便可。

Arduino中搜索TFT_eSPI

TFT_eSPI 庫雖然有不少優點,可是針對普通用戶可能也有一個比較麻煩的地方,那就是安裝完這個庫以後,咱們須要針對不一樣的彩屏,對這個庫進行一些配置才能使用。

轉到 Arduino 庫文件安裝目錄,打開 TFT_eSPI 庫所在位置,以 Windows 系統爲例,該庫的安裝目錄通常爲:

C:\Users\<用戶名>\Documents\Arduino\libraries\TFT_eSPI

若是是你使用的是綠色版 Arduino 的話,該庫的安裝目錄通常爲:

<Arduino安裝目錄>\Arduino\portable\sketchbook\libraries\TFT_eSPI

而後在庫文件目錄中打開 User_Setup.h 這個文件,根據本身的屏幕類型與驅動芯片類型進行相應的設置,這裏以我使用的 2.4 寸 ILI9341 TFT LCD 彩屏爲例。若是你有耐心的話,想要仔細研究各類設置選項的話,也能夠仔細閱讀這個文件中的說明,按照它的示例進行設置便可;若是你嫌一堆英文看起來比較麻煩的話,直接按照個人教程設置也是能夠的。

首先須要設置的是彩屏的驅動芯片類型,這塊彩屏使用的驅動芯片爲 ILI9341,因此這裏咱們註釋掉其餘芯片,只留下 #define ILI9341_DRIVER 這行,以下圖所示:

User_Setup驅動類型選擇

接着設置彩屏鏈接的 IO 引腳,先註釋掉下圖中所示的默認引腳設置:

User_Setup註釋默認引腳

而後將引腳設置修改成:

// FireBeetle ESP32
#define TFT_MISO 19
#define TFT_MOSI 23  // fixed pin, SDA -> MOSI (IO23)
#define TFT_SCLK 18  // fixed pin, SCL -> SCK (IO18)
#define TFT_CS   27  // Chip select control pin D4 (IO27)
#define TFT_DC   25  // pin of your choice D2 (IO25)
#define TFT_RST  26  // pin of your choice D3 (IO26)

以下圖所示:

User_Setup接線引腳修改

修改完成後的 User_Setup.h 文件以下:

User_Setup

接線圖

根據前面 TFT_eSPI 驅動庫的設置,ESP32 與 彩屏的接線也比較簡單,只要按照代碼中對應接線便可。

注意:此處代碼中的引腳編號,我使用了 IOx 的編號,而不是 Dx 的編號形式,由於 IOx 編號的形式針對全部 ESP32 開發板都適用。FireBeetle-ESP32 開發板的 IOx 與 Dx 編號對應關係以下圖所示:

FireBeetle-ESP32引腳圖

接線圖以下:

彩屏接線圖

Hello 彩屏

全部這些都設置完成以後,咱們就能夠愉快地編寫程序、查看效果啦!

爲了更快的體驗彩屏的顯示效果,本篇暫時先不講解彩屏的編程與代碼,我給你們先上傳 TFT_eSPI 庫自帶的一些示例程序,看看效果。彩屏示例程序的路徑爲:

Arduino菜單欄→文件→示例→TFT_eSPI

以下圖所示:

彩屏示例路徑

而後隨便挑選幾個示例程序,上傳到 ESP32 中 查看效果。

注意:注意因爲我把視頻轉成了 GIF,因此看起來可能稍微有點卡頓,實際效果是很順滑的。

顯示不一樣顏色文字效果

在這裏插入圖片描述

在這裏插入圖片描述

黑客帝國代碼雨效果

在這裏插入圖片描述

立體圖形顯示效果

七彩文字顯示效果

參數跑分顯示效果

看完這些「五彩斑斕的黑」,是否是立刻想要入手一塊彩屏、而後編寫代碼玩玩呢?別急,下期教程,正式教你彩屏代碼編程!

總結

在本章中,咱們學習了:

  • 常見的彩屏類型與經常使用的彩屏驅動庫;
  • TFT_eSPI 驅動庫的設置方法;
  • 彩屏與 ESP32 的接線方法;
  • 上傳程序,查看彩屏的顯示效果。

這只是彩屏系列的入門篇,後面還會再寫幾篇專門對彩屏的編程進行詳細介紹,感興趣的話,能夠收藏點贊,咱們下期見!

相關文章
相關標籤/搜索