如何使用 I2C LCD2004 範例與教學 Arduino 與 Raspberry Pi 樹莓派教學

如何使用 I2C LCD2004 範例與教學 Arduino 與 Raspberry Pi 樹莓派教學

如何使用 I2C LCD2004 範例與教學 Arduino 與 Raspberry Pi 樹莓派教學

眾所周知,雖然 LCD 和一些其他顯示器大大增強了人機互動,但它們也有一個共同的缺點:當它們連接到控制器時,會佔用多個 IO 端口,而許多控制器並沒有那麼多外部端口,這也限制了控制器的其他功能。因此,採用 I2C 總線的 LCD2004 被開發出來以解決這個問題。

I2C 總線是一種由飛利浦(PHILIPS)發明的串行總線,它是一種高效的串行總線,具備多主機系統所需的總線規則和高、低速設備同步功能。I2C 總線僅需兩條雙向訊號線,即串行數據線(SDA)和串行時鐘線(SCL)。I2C LCD2004 上的藍色電位計用於調整背光亮度,使其更容易在 I2C LCD2004 上顯示內容。

  • GND:接地
  • VCC:電源供應,5V
  • SDA:串行數據線。通過上拉電阻連接至 VCC
  • SCL:串行時鐘線。通過上拉電阻連接至 VCC

I2C 位址

預設位址基本上為 0x27,但在某些情況下可能為 0x3F。

以預設位址 0x27 為例,可以通過短路 A0/A1/A2 焊點來修改裝置位址;在預設狀態下,A0/A1/A2 為 1,若焊點被短接,A0/A1/A2 將變為 0。

背光/對比度

可以透過跳線帽來啟用背光,拔下跳線帽則會關閉背光。背面的藍色電位計用於調整對比度(最亮的白色與最暗的黑色之間的亮度比例)。

  • 短路帽:可用於啟用背光,拔下此帽則會關閉背光。
  • 電位計:用於調整對比度(顯示文字的清晰度),順時針方向增加對比度,逆時針方向減少對比度。

Arduino 使用者

元件清單

連接電路
請參考下表,將 I2C LCD2004 模組與 Arduino Uno 開發板進行連接:

添加程式庫

在將程式碼上傳到控制板之前,您需要添加 LiquidCrystal_I2C 程式庫。

  1. 下載 LiquidCrystal_I2C 程式庫
  2. 打開 Arduino IDE,選擇「草圖」->「包含程式庫」->「加入 ZIP 程式庫」
  3. 找到您剛剛下載的 LiquidCrystal_I2C 文件,點擊打開。隨後會看到提示「已將程式庫添加至您的程式庫。請檢查『匯入程式庫』」。您也可以在「草圖」->「包含程式庫」->「LiquidCrystal_I2C」列表中看到剛剛匯入的程式庫。

複製程式碼

將以下程式碼複製到 Arduino IDE 中:

上傳程式碼

在上傳程式碼之前,請確保選擇正確的開發板和連接埠,請按照以下步驟操作:

  1. 點擊「工具」->「開發板」,然後選擇「Arduino/Genuino Uno」。

2. 接著選擇「工具」->「連接埠」。

3. 點擊上傳圖示,將程式碼上傳到控制板。

如果視窗底部出現「上傳完成」,表示程式已成功上傳。

讀取 I2C 位址 I2C_Scan
如果一切正常,但顯示屏僅在第一行顯示 16 個黑色方格,這可能表示 I2C 位址並非 0x27,因此您需要運行以下程式碼來讀取位址,然後將 0x27 修改為讀取到的位址。

Raspberry Pi 樹莓派使用教學

設定 I2C

啟用您的 Raspberry Pi 的 I2C 埠(如果已經啟用,請跳過此步驟;如果不確定是否已啟用,請繼續進行)。

步驟 1:運行以下指令。

步驟 2:選擇「3 接口選項」

步驟 3:選擇「P5 I2C」。

步驟 4:選擇「<Yes>」,然後「<Ok>」 -> 「<Finish>」。

步驟 5:檢查 I2C 模組是否已加載並啟用。

步驟 6:接著將出現以下代碼(數字可能會有所不同)。

步驟 7:安裝 i2c-tools。

步驟 8:檢查 I2C 裝置的位址。

如果已連接 I2C 裝置,則會顯示該裝置的位址。

步驟 9:安裝 libi2c-dev 或 smbus。

適用於 C 語言使用者

適用於 Python 使用者

下載並運行程式碼

步驟 1:下載程式碼包。

步驟 2:解壓縮程式碼包。

(適用於 C 語言使用者)

步驟 3:如果尚未安裝 wiringPi,您需要先進行安裝。

步驟 4:您可以通過以下指令來測試 wiringPi 程式庫是否成功安裝。

步驟 5:進入程式碼的資料夾。

步驟 6:編譯程式碼。

步驟 7:運行程式。

(適用於 Python 使用者)

步驟 3:進入程式碼的資料夾。

步驟 4:運行程式。

 

分享到社群

發佈留言


所有分類

  • 所有分類
  • 小小創客
  • 工具 & 控制組件
  •    輸入控制單元
  •    線材 & 配件 & 連接器
  • 無線和物聯網
  • Robotics 機器人
  •    智慧小車底盤套件
  • 感測器 / 傳感模組
  •    影像 / 成像 / 顏色 感測
  •    紅外線科技
  •    雜項未分類感測器
  •    壓力 / 彎曲 / 震動
  •    環境感測
  •       液體 / 水質 感測
  •       聲音傳感 / 音量感測
  •       氣體感測
  •       PM 2.5 空氣粉塵感測
  •       溫濕度感測
  •       光線 / 紫外線
  •       氣壓 / 地磁 / 多功能 IMU
  •       壓力 / 彎曲 / 震動
  •    距離感測 / 接近感測
  •    運動 / 位置 / 加速度
  •    生物識別技術
  •    電壓 / 電流
  • 功能模組零配件
  •    驅動模組/步進電機/馬達
  •    按鍵 / 輸入 / 人機介面模組
  •    LED / LCD / 液晶屏
  •    無線通訊模組
  •       RFID 無線射頻
  •       ZigBee 無線模組
  •       xbee 通訊模組
  •       Lora 遠距低功耗模組
  •       2.4G 無線模組
  •       藍牙模組
  •       WIFI 模組
  •    繼電器模組
  •    升壓/降壓/電源模組
  •    衛星定位 GPS
  •    其他功能模組
  •    綠能應用開發模組
  •    電磁鐵相關
  • DIY 套件與學習套件
  • 開發平台與品牌
  •    Arduino 開發板
  •    聯發科 Linkit Smart
  •    ESPRESSIF (ESP) 開發板
  •    BBC Micro Bit V2 單板電腦
  •    樹莓派 Raspberry Pi
  •    香蕉派 Banana PI
  •    其他類型開發板
  •    NVIDIA 人工智慧開發平台
  •    ROCK Pi 單板電腦
  •    AI 人工智慧
  •    SparkFun MicroMod 系列
  • Shield / 功能擴展板
  •    Arduino 功能擴展板
  • 其他產品
  • 工業物聯網 / 工控模組
  • 清倉限時出清活動
  • 人工智慧開發平台
  • Home Assistant 智慧家居
  •    ESPHOME 零組件周邊
  •    Tasmota 零組件周邊
  • 未分類
  • MATTER 智慧家居
  •    ESPHOME 零組件周邊