如何將PCF8574 I2C LCD與Arduino I2C接口通訊? - 【Arduino教程】

2021-02-13 單片機

乾貨下載添加微信好友「5834434」(必須備註「單片機:學校/公司+研究方向」,否則無法通過驗證),獲取海量單片機教程及其他學習資料!合作或投稿請發郵件到:rebaby@qq.com

在這個項目中,我們將看到如何將I2C LCD與Arduino連接通訊。我們已經看到了如何將常規的:16×2 LCD與Arduino接口。通過將I2C LCD與Arduino一起使用,您可以保留Arduino UNO的所有數字I / O引腳,並通過I2C Communication與LCD一起使用。


下圖所示的字母數字字符LCD是許多DIY項目中經常使用的組件之一。它通常與Arduino一起使用,以顯示各種信息,例如傳感器讀數,GSM模塊的消息或任何狀態信息。

連接16×2或20×4字符LCD的最簡單方法是選擇所需大小的LCD模塊,然後以4位模式將其連接到Arduino UNO。但是此設置的主要缺點是,即使在4位模式下,LCD也需要Arduino的6個數字IO引腳才能正常通信。

如果您的項目需要與多個傳感器和其他IO設備接口,那麼您可能需要儘可能多的Arduino IO引腳。如果LCD本身利用了可用的13個數字IO引腳中的6個,那麼您只剩下7個用於連接其他組件的引腳。


解決方案是在Arduino上使用I2C LCD。為此,將基於I2C的GPIO擴展器與常規的16×2字母數字字符LCD配合使用。

下圖顯示了基於PCF8574 IC的模塊,該模塊專門配置用於LCD顯示器。

您可以將此模塊直接插入常規LCD的引腳,並通過與Arduino(或任何微控制器)的I2C通信來傳輸數據。


PCF8574是基於I2C的I / O擴展器IC,可為具有I2C接口的微控制器提供8位I / O擴展。僅使用I2C接口的兩行,即SDA(串行數據)和SCL(串行時鐘),就可以配置8個雙向I / O引腳。

注意:將提供有關PCF8574 GPIO擴展器的單獨教程。因此,我將在該教程中提供有關PCF8574 IC的更多詳細信息。


下圖顯示了將I2C LCD與Arduino連接的電路圖。

 


Arduino UNO

16×2液晶顯示器

PCF8574 I2C液晶背包

連接線

電路連接

首先,將PCF8574模塊插入LCD顯示器背面。檢查兩個模塊的引腳。使用以下圖像作為參考。

通常,I2C引腳從LCD模塊中出來,以便與Arduino輕鬆連接,如下圖所示。

將I2C模塊連接到LCD後,將PCF8574模塊的GND和VCC引腳連接到Arduino的GND和5V引腳。最後是SDA和SCL引腳。將它們分別連接到Arduino UNO的A4和A5引腳。


I2C通信中的重要步驟是弄清從設備的地址。基於PCF8574 IC的A0,A1和A2引腳,I2C從模塊的地址是固定的。

不用從數據表中計算從設備地址,而是讓我們使用一個簡單的Arduino代碼確定地址並將其顯示在串行終端上。首先,按照上面的電路圖進行連接。

然後上傳以下代碼以查看I2C從設備地址。

上載代碼後,打開串行監視器,並將波特率設置為9600。在我的情況下,地址為0X3F。因此,在實際編程中(要在LCD上顯示內容),我必須使用此地址。


在進入代碼之前,您需要一個名為「 LiquidCrystal_I2C」的特殊庫。它基於我們通常使用但針對I2C通信進行了修改的「 LiquidCrystal」庫。您可以從下載庫這個連結(https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library)。這裡可以直接下載I2C庫,長按二維碼可直接進入:https://www.lanzous.com/iawj0lc

下載zip文件,解壓縮內容並將目錄重命名為「 LiquidCrystal-I2C」,然後將該文件夾放置在Arduino安裝的庫中(通常是C:\ Program Files(x86)\ Arduino \ libraries)。

以下是用於在LCD模塊上顯示文本的簡單測試代碼。


該項目的工作非常簡單。它只是LCD擴展的I2C協議。由於I2C總線上的從站地址很重要,因此在計算它們時要非常小心,因為它們直接在程序中使用。除了I2C從站地址外,LCD的所有其他功能與常規LCD庫類似。


乾貨下載:添加微信好友「5834434」(必須備註「單片機:學校/公司+研究方向」,否則無法通過驗證),獲取海量單片機教程及其他學習資料,合作/投稿請發郵件到rebaby@qq.com!

熱門文章推薦:直接點擊進入

001:《單片機初學者必看》

002:《周立功寫給學單片機的年輕人的話》

003:《牛人談:軟體與硬體的入門難度與精通時間跨度》

004:《學習51單片機有感;學習用書推薦;必寫的幾個程序》

005:《幾種使用過的單片機比較》

006:《ARM+LINUX學習路線(學習順序,知識點及書籍推薦)》

007:《ARM/DSP/FPGA/CPLD/SOPC/SOC區別和聯繫》

008:《趣味電子製作:藝術家手中的食品發電-電子diy》

009:《我的經歷: 從一名產線工人到單片機工程師》

010:《硬體工程師要學習的東西》

011:《學習51單片機的感悟:一通則百通》

012:《各種傳感器工作原理動態圖,這也太全了吧!》

013:《小心!這幾項都符合說明你的手機已被監控》
014:《這小東西其實是個發電機?自己動手做個就不用怕停電了》
015:《國外的DIY網站和電子類的網站收集(各種奇怪高能項目)》
016:《電子工程師們都在用哪些APP?》
017:《一張圖看懂程式設計師的職業規劃》
018:《10個輕鬆上手製作的Arduino項目》
019:《手機在充電時到底是先插手機還先插電源?》

020:《學習模電的真諦》
021:《男生必學的撩妹搭訕的7個機械原理實驗》

May the force be with you

相關焦點

  • 如何用Arduino的擴展IO接口與PCF8574通訊 - 【Arduino教程】
    合作或投稿請發郵件到:rebaby@qq.com在本教程中,我們將看到如何藉助PCF8574 IO擴展器板擴展Arduino UNO板的IO功能。通過將PCF8574與Arduino UNO接口,可以增加Arduino的IO引腳數,從而不必擔心連接多個IO設備(如LED,LCD顯示器,電機,傳感器等)。
  • 嵌入式Linux下I2C接口調試
    簡介I2C是嵌入式設備最為常用的接口之一,常用於如下面這些應用場景,因此本文就基於嵌入式Linux演示在User Space進行I2C設備調試。Apalis iMX6Q核心版默認定義提供了三個I2C總線可供外部使用(i2c-2為核心板內部電源管理使用),如下所示,其中i2c-1為通用I2C接口;i2c-0為DDC接口,用於連接HDMI DDC/EDID接口,不能用做通用I2C接口;而i2c-3通常用於連接camera接口使用,不過也可以用做通用I2C接口。
  • 如何將I2C LCD與STM32F103C8T6連接 - 【STM32教程】
    合作或投稿請發郵件到:rebaby@qq.com在本教程中,我將向您展示如何將I2C LCD與基於STM32F103C8T6 MCU的STM32 Blue Pill Board接口。如果您還記得「將16X2 LCD與STM32F103C8T6接口」的教程,我已經向您展示了將LCD與STM32連接並顯示一些信息有多麼簡單。
  • arduino和processing通訊 第一講
    今天就來一個arduino和processing最簡單的互動教程,為啥是最簡單呢,因為只用到了一塊arduino板還有一個按鈕,
  • Arduino 通過 I2C 驅動 LCD1602 液晶屏
    下面 Arduino 實驗室將對這個模塊的使用做一個介紹。硬體說明IIC「Inter-Integrated Circuit 集成電路總線」是一種串行通信總線,應用於板載低速設備間的通訊。由飛利浦公司開發的這一通訊協議,其目的就是為了簡化系統硬體設計,減少設備間的連線。
  • Linux驅動之I2C總線
    2177i2c_register_board_info(0, i2c-devs0, ARRAY_SIZE(i2c_devs0));2178i2c_register_board_info(1, i2c-devs1, ARRAY_SIZE(i2c_devs1));2179i2c_register_board_info(2, i2c-devs2, ARRAY_SIZE
  • ESkill LCD2004液晶模塊ARDUINO連接應用
    lcd.createChar(0, bell);lcd.createChar(1, note);lcd.createChar(2, clock);lcd.createChar(3, heart);lcd.createChar(4, duck);lcd.createChar(5, check);lcd.createChar
  • TMS320VC5410A I/O口的多種擴展與I2C接口模擬
    在這裡要注意:在配置hpi接口為通用i/o口時,在硬體設計上需要將5410a的第92引腳(hpiena)懸空或者接地,來禁止hpi接口。 2 模擬i2c接口與tlv320aic23的通信 2.1 i2c接口和tlv320aic23簡介 i2c(inter-integrated circuit)總線是一種由philips公司開發的兩線式串行總線,用於連接微控制器及其外圍設備。
  • 如何將光學旋轉編碼器與Arduino連接 - 【單片機教程-Arduino-光學旋轉編碼器】
    合作或投稿請發郵件到:rebaby@qq.com關鍵詞:ARDUINO、光學編碼器、旋轉編碼器、教程大家好,我們將學習如何將光學旋轉編碼器與arduino微控制器連接。首先,我們了解什麼是光學旋轉編碼器。
  • RT-Thread設備框架使用指南——I2C 總線設備
    停止條件: 在 SDA 為低電平時,主機將 SCL 拉高並保持高電平,然後在將 SDA 拉高,表示傳輸結束。訪問 I2C 總線設備一般情況下 MCU 的 I2C 器件都是作為主機和從機通訊,在 RT-Thread 中將 I2C 主機虛擬為 I2C總線設備,I2C 從機通過 I2C 設備接口和 I2C 總線通訊,相關接口如下所示:函數原型功能簡介rt_device_find()根據 I2C 總線設備名稱查找設備獲取設備句柄
  • Arduino_集合Arduino教程、Arduino IDE及設計應用的技術專題
    26# 雲端 說:2014-05-18 22:55 家庭物聯網,離不開arduino
  • arduino 從零開始(2)探索arduino開發板和arduino IDE
    你將會學到什麼?
  • RT-Thread I2C總線設備學習筆記
    如何看懂時序圖(以SPI/I2C為例)淺談總線通信機制(通信基礎+串口+I2C)我們接下來將基於小熊派開發平臺進行實踐。接下來,我們將基於RT-Thread Studio來構建。2、開始實踐上一節我們已經熟悉了怎麼創建工程和配置項目了,這節我們直接略過這兩步操作,直接看硬體圖。2.1 硬體原理圖參考上面文章給出的文章連結。2.2 軟體功能實現
  • 理解i2c設備註冊
    i2c體系結構分三部分:本文從i2c adapter的註冊入手,慢慢勾勒出目前內核中的融入設備驅動模型方式的i2c設備註冊流程。然後,走到 i2c_register_adapter,其核心處理有:調用device_register,將該adapter融入到sysfs裡。將該adapter的bus設置為i2c_bus_type。可見,adapter也是被當作一個(特殊的)i2c device看待,掛接到i2c bus上了。
  • Arduino常用的三種通信協議UART, I2C和SPI
    根據串行數據的傳輸方向,我們可以將通信分為單工,半雙工,雙工。單工:是指數據傳輸僅能沿一個方向,不能實現反向傳輸。半雙工:是指數據傳輸可以沿兩個方向,但不能同時進行傳輸。全雙工:是指數據可以同時進行雙向傳輸。
  • 【初識Arduino & Mind+】基於mind+ Arduino入門教程00
    TX、RX是串口通訊指示燈,比如我們在下載程序的過程中,這兩個燈就會不停閃爍。Arduino板子和電腦間,我們有USB線這一硬體構建了物理連接。但僅僅做到這一步就好比是買來了各式各樣的硬體、組裝好了電腦,但是沒有軟體無法使用這些硬體。那麼要如何建立這兩者之間信息層的連接,讓我們開始玩轉Arduino板呢?答案便是Mind+!
  • 基於I2C總線性能問答集錦
    [答:Alex] Philips很多的緩衝器可以級聯,所以允許無限的緩衝器[問:qinzhiwoo] I2C總線如何於並行總線轉換2)I2C總線如何識別同種帶有I2C接口的器件,並對他們讀寫[答:Victor] 1.
  • 【arduino】流水燈
    最近球球小朋友對arduino產生了濃厚的興趣,沒事就找書或者找視頻進行學習。
  • 大牛輕鬆帶你玩轉Arduino智能硬體:(一)arduino入門:硬體介紹
    (一)arduino入門:硬體介紹認識arduino你都不需要去關心單片機編程繁瑣的細節,提供給你的是一套容易使用的工具包。輸入電壓:USB接口供電或者5V-12V外部電源供電。 輸出電壓:支持3.3V級5V DC輸出。
  • Arduino 課程 第 9 課 LCD1602 I2C 液晶實驗
    或者單獨下載LiquidCrystal_I2C,解壓縮後,將文件夾拷貝至C:\Program Files (x86)\Arduino\libraries目錄下。LiquidCrystal_I2C lcd(0x27,16,2);初始化對象中有三個參數,分別對應 地址、列、行。地址取決於轉接板上A0 A1 A2 的連接。