乾貨下載:添加微信好友「5834434」(必須備註「單片機:學校/公司+研究方向」,否則無法通過驗證),獲取海量單片機教程及其他學習資料!合作或投稿請發郵件到:rebaby@qq.com
在本教程中,我們將看到如何藉助PCF8574 IO擴展器板擴展Arduino UNO板的IO功能。通過將PCF8574與Arduino UNO接口,可以增加Arduino的IO引腳數,從而不必擔心連接多個IO設備(如LED,LCD顯示器,電機,傳感器等)。
Arduino UNO是電子產品的初學者和業餘愛好者的入門板,可實現各種應用。我看到了幾個使用Arduino開發的項目,從簡單的電機控制到帶有圖形OLED顯示屏的完整氣象站。
Arduino UNO的主要問題之一是可在我們的項目中使用的數字IO引腳數。我們知道Arduino UNO板帶有13個數字IO引腳和5個模擬輸入引腳。
對於簡單的項目,這可能就足夠了,但是如果您要開發一個包含大量傳感器,顯示單元(LCD或OLED),電機控制和通訊(例如Serial,又要佔用兩個IO引腳)的複雜項目,則你要擔心一點
如果您有Arduino Mega開發板,那麼這將不是問題,因為您有大量的IO引腳。問題僅在於UNO和Nano等較小的電路板。
要解決此問題,可以使用PCF8574 IO擴展器模塊。我已經使用此IC通過I2C引腳將16×2 LCD顯示器與Arduino接口。在此處查看該項目。
PCF8574是I2C總線到8位並行總線IO擴展器IC。它以一種簡單且具有成本效益的方法為許多微控制器提供GPIO擴展。該IC的接口是使用SDA(數據)和SCL(時鐘)線路的I2C(或I 2 C)。因此,如果您的微控制器的IO引腳數量有限且具有I2C功能,則可以使用該IC擴展IO引腳。
以下是採用SOIC封裝的PCF8574 IC的引腳圖。
該封裝中有16個引腳,下表給出了簡單的引腳說明。
當您購買基於PCF8574 IC的IO擴展模塊時,必須小心,因為市場上有兩種類型的使用PCF8574 IC的板卡。一個是完整的IO擴展器模塊,可以訪問所有埠引腳,INT引腳和地址引腳。下圖顯示了此模塊。這是我們將在項目中使用的模塊。
還有另一塊板配置為與16×2或20×4字符LCD顯示器接口。在此板上,地址引腳被拉高,您無法訪問所有IO引腳和INT引腳。因此,購買前請檢查兩次。
由於PCF8574模塊的工作是擴展微控制器的IO功能,因此我們可以將其與Arduino UNO板一起使用,以將數字IO數量增加到21。該模塊的IO埠引腳可以用作輸入或輸出
以下是PCF8574與微控制器接口的簡單框圖,其中兩個IO埠引腳配置為輸入,一個引腳用於驅動LED,其餘引腳用作多個外圍設備的控制引腳(輸出)。
我們可以對Arduino UNO板和PCF8574 IO擴展板使用類似的設置來控制各種外設。
以下是PCF8574與Arduino UNO板接口以控制8個LED的電路圖。
Arduino UNO(或任何Arduino板)
PCF8574 IO擴展板
連接線
5V電源
8個LED
8 x330Ω電阻
由於PCF8574模塊適用於I2C通信,因此我們必須使用Arduino的I2C引腳來控制模塊的IO引腳。Arduino UNO的引腳A4和A5是I2C引腳,其中A4是SDA(數據)引腳,而A5是SCL(時鐘)引腳。
將這些引腳連接到PCF8574板上相應的SDA和SCL引腳。現在,將模塊的VCC和GND引腳連接到Arduino的+ 5V和GND引腳。
為了測試項目,讓我們將一些LED連接到PCF8574模塊的IO埠,以便我們可以使用Arduino對其進行控制。因此,在VCC和IO埠之間連接8個LED和相應的限流電阻。
注意:我沒有在電路圖中連接串聯限流電阻。但是我建議您連接它們,只是為了安全起見。
注意:建議為LED使用外部5V電源,而不要通過Arduino板給LED供電。
首先,我們必須找出PCF8574模塊的I2C總線從設備地址。使用以下代碼計算模塊的地址。就我而言,當A0,A1和A2引腳連接到LOW時,地址原來是0x20。因此,我將在實際代碼中使用此地址。
進入實際項目,除了Arduino IDE附帶的「 Wire」庫外,您不需要任何其他庫。使用以下代碼切換備用LED。
該項目的工作非常簡單。我已使用I2C通信將PCF8574與Arduino連接。確定PCF8574模塊的從站地址後,我們必須使用該地址開始I2C通信。
當LED連接到IO埠時,您要做的就是以HEX格式發送不同模式的LED觸發代碼。
由於I2C不使用Arduino的任何現有數字IO引腳,因此您在Arduino UNO板上總共獲得21個IO引腳(在Arduino UNO上為13個,在PCF8574 IO埠上為8個),您可以使用更大的引腳項目。
這個簡單的項目,其中通過將PCF8574與Arduino 的擴展IO接口連接來增加Arduino UNO板的IO引腳數。使用此IO擴展模塊,您可以連接許多IO設備,例如溫度傳感器,溼度傳感器,16×2 LCD顯示器,狀態LED,繼電器,電機等,而無需擔心IO引腳的數量。
乾貨下載:添加微信好友「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個機械原理實驗》