【雕爺學編程】Arduino動手做(134)---PCF8574T擴展模塊

7款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備逐一動手嘗試系列實驗,不管成功(程序走通)與否,都會記錄下來—小小的進步或是搞不掂的問題,希望能夠拋磚引玉。
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗一百三十四:I2C接口I/O擴展模塊 支持級聯(lián)PCF8574T模塊

PCF8574T
是CMOS電路,它通過兩條雙向總線可使大多數(shù)MCU實現(xiàn)遠程I/O擴展。該器件包含一個8位準雙向口和一個總線接口。pcf8574t 電流消耗很低,并且輸出鎖存,具有大電流驅(qū)動能力,可直接驅(qū)動LED。它還帶有一種中斷接線可與MCU的中斷邏輯相連。通過INT發(fā)送中斷信號,遠端I/O口不必經(jīng)過總線通信就通知MCU是否有數(shù)據(jù)從端口輸入。這意味著 pcf8574t 可以作為一個單被控器。

PCF8574邏輯圖

各P口輸入輸出簡化示意圖




雙線雙向總線(I2C)的8位輸入/輸出(I/O)擴展器
設(shè)計用于2.5-V至6-V VCC操作。PCF8574通過I2C為大多數(shù)微控制器系列提供通用遠程I/O擴展接口[串行時鐘(SCL),串行數(shù)據(jù)(SDA)。該設(shè)備具有一個8位準雙向I/O端口(P0–P7),包括帶有大電流驅(qū)動的鎖存輸出直接驅(qū)動LED的能力。每個準雙向I/O都可以用作輸入或輸出,而無需使用數(shù)據(jù)方向控制信號。開機時,I/O很高。在此模式下,只有VCC的電流源活躍。另一個強大的拉向VCC允許快速上升到重負荷輸出邊緣。這個裝置轉(zhuǎn)動當輸出被寫入高位并被SCL的負邊緣關(guān)閉時打開。I/O應(yīng)該很高,在用作輸入之前。PCF8574提供了一個開漏輸出(int),可以連接到微控制器。在輸入模式下,端口輸入的任何上升或下降沿都會產(chǎn)生中斷。后續(xù)時間,tiv,int是有效的。當端口上的數(shù)據(jù)改變時,中斷電路復(fù)位并重新激活從產(chǎn)生中斷的端口讀取或?qū)懭朐荚O(shè)置或數(shù)據(jù)。重置發(fā)生在在SCL信號上升沿后的確認位處的讀取模式,或在SCL信號從高到低轉(zhuǎn)換后的確認位。確認期間發(fā)生的中斷由于在該脈沖期間中斷復(fù)位,時鐘脈沖可能丟失(或非常短)。每次變更復(fù)位后的I/O被檢測到,并且在下一個上升時鐘邊緣之后,被發(fā)送。作為int讀取,或者寫入,另一個設(shè)備不影響中斷電路。通過在這條線路上發(fā)送中斷信號,遠程I/O可以通知微控制器是否有輸入數(shù)據(jù)在其端口上,無需通過I2C總線進行通信。因此,pcf8574可以保持簡單的從機裝置。

I2C接口I/O 8位擴展? 支持級聯(lián)PCF8574T模塊

I2C接口I/O擴展模塊功能:
基于I2C接口的I/O擴展模塊,使用2個I/O可擴展8個I/O。支持級聯(lián),最多可同時使用8個模塊,擴張到64個I/O。通過撥碼開關(guān)設(shè)置模塊地址,將3位撥碼開關(guān)全部撥到’ON’上。此時模塊地址為0x27。
PCB Size: 37.5mm x 16.7mm



Arduino實驗開源代碼
通過模塊上撥碼開關(guān)不同位置,來設(shè)置模塊I2C地址
1上2上3上? 為0x27

通過模塊上撥碼開關(guān)不同位置,來設(shè)置模塊I2C地址
1下2上3上??為0x23

1下2上3上? ?為0x23

通過模塊上撥碼開關(guān)不同位置,來設(shè)置模塊I2C地址
1上2上3上??為0x27
1下2上3上??為0x23
1下2下3上??為0x21
1下2下3下??為0x20
1上2下3下??為0x24
1上2上3下??為0x26
1下2上3下??為0x22
1上2下3上??為0x25


Arduino實驗開源代碼
實驗開源仿真編程(Linkboy V4.62)


