如何用Arduino的擴展IO接口與PCF8574通訊 - 【Arduino教程】

2021-02-14 單片機

乾貨下載添加微信好友「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個機械原理實驗》

May the force be with you

相關焦點

  • 如何將PCF8574 I2C LCD與Arduino I2C接口通訊? - 【Arduino教程】
    合作或投稿請發郵件到:rebaby@qq.com在這個項目中,我們將看到如何將I2C LCD與Arduino連接通訊。我們已經看到了如何將常規的:16×2 LCD與Arduino接口。通過將I2C LCD與Arduino一起使用,您可以保留Arduino UNO的所有數字I / O引腳,並通過I2C Communication與LCD一起使用。
  • Arduino_集合Arduino教程、Arduino IDE及設計應用的技術專題
    26# 雲端 說:2014-05-18 22:55 家庭物聯網,離不開arduino
  • Arduino入門1: Arduino的前世今生
    前言腦叔看網絡上的多數Arduino教程都是比較開門見山,不談「為什麼學」或者「應該怎麼學」之類的問題
  • 大牛輕鬆帶你玩轉Arduino智能硬體:(一)arduino入門:硬體介紹
    (一)arduino入門:硬體介紹認識arduino你都不需要去關心單片機編程繁瑣的細節,提供給你的是一套容易使用的工具包。· 軟體開源並可擴展 - Arduino軟體是開源的,對於有經驗的程式設計師可以對其進行擴展。Arduino程式語言可以通過C++庫進行擴展,· 硬體開源並可擴展 - Arduino板基於 Atmel 的ATMEGA8 和ATMEGA168/328 單片機。
  • arduino 從零開始(2)探索arduino開發板和arduino IDE
    1、你將會探索arduino開發板2、你將會打開並上傳程序到arduino 板3、你將會學到arduino程序的基本框架和基本函數4、你將會自己編寫並上傳arduino程序一、arduino 板簡單來說,arduino(硬體)就是一個可以用來根據你的要求進行編程從而可以和很多輸入輸出設備進行交互的一個微型電腦系統。
  • 用Arduino開發物聯網設備之初識Arduino
    硬體部分:最初Arduino硬體只有那麼幾種,uno、mini等,但是現在經過這麼多年的發展,越來越多的硬體支持了arduino開發環境,所以現在也很難去界定什麼是血統純正的arduino硬體了。軟體部分:這部分也就是我們平時說的Arduino,我們其實使用的就是arduino框架來對很多的mcu來進行編程。這裡很多小夥伴其實有很多疑問,比如為什麼要用arduino來進行?
  • 【arduino】流水燈
    最近球球小朋友對arduino產生了濃厚的興趣,沒事就找書或者找視頻進行學習。
  • Arduino基礎入門篇23—串口通訊
    在很多時候,Arduino需要和其他設備相互通訊,而最常見最簡單的方式就是串口通訊。本篇介紹Arduino硬體串口通訊,了解相關函數的使用。1. 硬體串口在PC機上最常見的串行通訊協議是RS-232串行協議,而各種微控制器(單片機)上採用的是TTL串行協議,兩者電平不同,需要經過相應電平轉換才能進行相互通訊。
  • Arduino為什麼這麼火
    正文:這一兩年間,arduino作為一個能夠快速表現設計想法的工具,日漸火了起來,愛好者們自發性、非官方組織起來的論壇社區日漸豐富和活躍,近一兩年小夥伴們的作品集中也越來越多地涉及arduino相關的項目案例,那麼我們就簡單地來看一下
  • Arduino 課時一:初識Arduino
    Arduino於2005年誕生於義大利,包含硬體:Arduino板、軟體:Arduino IDE.Arduino型號眾多,Arduino Uno是它的第一塊板子,是基於微控制器Atmega328,由若干輸入輸出接口等組成的開發板
  • 如何用Matlab連接控制Arduino:GUI界面製作與電機控制
    筆者以Matlab軟體研究如何控制Arduino,將從Matlab製作Arduino的GUI界面和simulink應用出發,探索如何使用Matlab連接和控制Arduino。  Matlab與Arduino聯合應用——GUI界面  首先介紹如何安裝配置一個基於Matlab的GUI界面,能夠實現對ArduinoIO口的操作。
  • arduino mega全解
    關於arduino mega相信大家對於這一開發板有了一定的了解,現在對這款開發板做一下系統的解說:本文引用地址:http://www.eepw.com.cn/article/147959.htm  熔絲位的問題一直是困擾用戶的一個問題,在用開發板的時候,由於用戶不小心碰到下載線導致了開發板與電腦的通信斷開,這就會有可能造成開發板的故障,需重新燒入熔絲位,在這裡我用的是智峰的燒錄軟體,
  • LABVIEW+Arduino
    而arduino可以模擬這些操作,再與LABVIEW相結合,可以在同一程序能實現切換頻點、通道等的操作,並根據測試需要將所需要的測試數據記錄在相應的表格內。一、什麼是arduinoArduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。由一個歐洲開發團隊於2005年冬季開發。
  • 脫離Arduino IDE的外部編譯及上傳模式
    將 %I 擴展到一個完全合格的路徑名 %~d0 僅將 %I 擴展到一個驅動器號%~p0 僅將 %I 擴展到一個路徑%~n0 僅將 %I 擴展到一個文件名 %~x0 僅將 %I 擴展到一個文件擴展名
  • Arduino入門參考教程(1)基礎知識與開發環境篇
    食用前請自帶飯碗——Arduino UNO R3(某寶有售,便宜的大概23RMB左右一塊)1.關於Arduino2.關於Arduino IDE(開發環境)3.關於Arduino UNO R3開發板    Arduino 是一款便捷靈活、方便上手的開源電子原型平臺,包含硬體(各種型號的arduino板)和軟體(arduino
  • 如何使用Arduino UNO製作一臺PM2.5顯示器
    打開APP 如何使用Arduino UNO製作一臺PM2.5顯示器 發表於 2019-10-29 10:45:10 步驟1:下載
  • 初步認識Arduino
    接口大概含義:USB口是用來接USB線用於供電和傳輸數據的(注意這邊是TypeB的USB口,接入PC端的則是TypeA的USB口)ATmega16U2是USB接口晶片:16KB的快閃記憶體Flash(跟8U2主要區別在於Flash容量),512B的靜態隨機存取存儲器
  • 【樹上動態】乾貨滿滿的《Arduino 是什麼》主題分享會
    圖為Arduino其中一款,名為UNO也就是說,Arduino其實是一款非常好用的開源平臺,任何人,即使不懂電腦編程,也能用 Arduino 做出很酷的東西,比如對傳感器作出回應,閃爍燈光,還能控制馬達。
  • Arduino串口通信簡介
    ;  delay(100);}上面代碼將從arduino通過串口傳送字符串到電腦端的串口監視器上。發送數據串口監視器上方有一個輸入框和一個send按鈕,在輸入框內輸入內容,點擊send按鈕就可以向arduino發送數據了。
  • 十個中文例程教會你輕鬆上手製作Arduino智能小車
    Arduino簡介本文引用地址:http://www.eepw.com.cn/article/201706/348117.htmArduino 是一款便捷靈活、方便上手的開源電子原型平臺,包含硬體(各種型號的arduino板)和軟體(arduino IDE)。