0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣使用74HC595增加Arduino的數字引腳

454398 ? 來源:wv ? 2019-10-22 17:26 ? 次閱讀

步驟1:制作該項目所需的條件

硬件:

4個74HC595移位寄存器

4個16引腳DIP IC插座

16個1N4001二極管

1個40Pin接頭連接器2.54mm

2個10K電阻

1330電阻

1個5mm LED

一個PCB,您可以從easyEDA訂購不到5美元的軟件

該軟件:

Arduino IDE

MegaDAS_IOExtension庫

步驟2:關于主要組件(74HC595)

硬件部分它非常簡單,并且基于74HC595移位寄存器,因此是一種簡便且經濟的方法,可以增加開發(fā)板上的數字I/O引腳數量。這種集成電路本質上是數字的,就像Arduino上的數字引腳一樣,這意味著它們只能讀取或寫入高或低邏輯電平,不應將其用于從模擬傳感器或電位計讀取數據。

我們可以找到許多基于這種移位寄存器的硬件和電路,例如Adafruit電機護罩,7段模塊。該電路的使用非常方便,并且是多路復用的一種很好的動手方法,它是一種有效的技術,用于控制連接在一起的許多組件。

您可以在線訂購5張74HC595圖片,價格低于6 $:亞馬遜

那么如何使用74HC595!

該電路提供了三個接口引腳,分別是SHIFT_CLOCK(SH_CP),LATCH_CLOCK(ST_CP)和數據引腳(DS)。

第一步是將數據存儲在存儲寄存器中,為此,我們需要將鎖存器引腳設置為LOW以禁用輸出,這樣當我們向74HC595發(fā)送新數據時,輸出引腳將保持不變。

下一步是通過對時鐘引腳施加脈沖并從數據引腳發(fā)送新數據的每個字節(jié),逐位串行發(fā)送數據。

最后一步是將閂鎖引腳設置為高電平。這樣,寄存器將更新(并行輸出)。

您可以在其數據表中找到有關該集成電路的更多詳細信息。

我只是在解釋如何移位寄存器可以工作,但是,我們將不做所有這些工作,因為我們將使用Arduino SPI庫來控制整個過程,并且不要忘記您將擁有一個庫來控制模塊,而這只是有關移位寄存器的最后信息它具有8個并行輸出(Q0-Q7)和一個串行輸出(Q7‘)以進行級聯(lián)。

步驟3:硬件設計(電路)

IOExtension模塊基于四個移位寄存器(74HC595),可提供16個數字輸入和16個數字輸出,您只需在開發(fā)板上使用四個引腳即可控制模塊,另外還需要Vcc和Gnd引腳

為了具有32個I/O引腳,我們將使用四個移位寄存器(74HC595),如圖所示C。四個寄存器應具有同步的數據并同時更新所有輸出和輸入,這就是為什么我們應該將所有LATCH_CLOCK引腳以及所有SHIFT_CLOCK都連接在一起,但是第一個寄存器的Data引腳將連接到的原因您的Arduino開發(fā)板和其余寄存器將通過串行輸出(Q7’)相互連接,這意味著將第一個移位寄存器的串行輸出連接至下一個移位寄存器的數據引腳,依此類推。

我強烈推薦easyEDA網站制作您的PCB。

但是什么是easyEDA!

這是一個免費的在線電子設計自動化社區(qū),允許創(chuàng)建,測試和編輯

在此處查找指向easyEDA平臺的鏈接。

此在線程序在所有平臺(甚至是android)上均受支持,借助easyEDA,您可以為文檔制作Schematic Capture,電路仿真,在線PCB設計,可導入PCB和原理圖文件,因此從這一點上我們可以理解,我們可以在此在線設計器中創(chuàng)建PCB,也可以僅使用其他軟件來制造PCB,然后將gerber文件上傳到easyEDA進行訂購。

協(xié)同設計是最好的easyEDA的一部分,您可以使用公共或私人訪問權限輕松協(xié)作并就設計發(fā)表評論。社區(qū)提供了完善的云開發(fā),但這還不是全部,我們仍然擁有這個出色的Google chrome擴展,可以讓您隨時了解所有聊天伙伴和合作伙伴的活動。

登錄后,開始一個新項目給它起個名字并選擇其隱私權,別忘了簡短的描述對您的合作伙伴總有好處,然后自動協(xié)助將指導您從選項和工具入手。在這個項目中,我們將使電路如圖所示。 easyEDA庫中有一些不可用的組件,例如74hc595移位寄存器,因此您應該在其他公共項目中進行搜索,只需寫下標簽并單擊搜索,當找到它時,選擇它,然后將其放在空白表中即可,但是您需要封裝表示形式以完成PCB設計,因此請單擊封裝的空白區(qū)域并進行更新。

完成原理圖后,您可以為文檔下載漂亮的PDF或圖像。關于PCB,單擊“將項目轉換為PCB”,您將獲得適合您的電路的PCB,我在這個平臺上真正喜歡的是它可以為您提供所需的組件,因此可以按您希望的方式放置它們。 easyEDA解決了手動路由的問題,使您只需單擊一下即可制作自動路由器。

完成任務后,您可以添加一些選項,例如圖像以改善外觀,并添加一些指示器標簽,然后如果要為PCB下訂單,請單擊制造輸出按鈕。我們的模塊每5張圖片不到30美元,這是一個不錯的購買價格。

PCB收到很好

僅僅6天,我就收到了訂單,給我留下了深刻的印象

第4步:軟件(庫)

IOGA擴展庫是由MEGA DAS社區(qū)開發(fā)的,目的是促進使用同一社區(qū)制造的數字擴展模塊(基于74HC595換檔注冊人)。

這是一個Github鏈接,用于下載該庫。

此庫包含所有必需的API,可以肯定地將這些庫添加到您的libreries目錄中,然后將它們用Arduino IDE編寫的代碼中使用。 。該軟件包還包含示例文件,您可以在其中找到一些基本示例來演示如何將模塊連接到開發(fā)板上以及如何利用API(例如DigitalRead和DigitalWrite示例),這些API表現出與Arduino digitalRead和digitalWrite API相同的行為。/p》

DigitalRead示例:

#include//包含MegaDAS_IOExtension頭文件

const int SH_CP = 13;//13或ICSP-3(適用于Arduino Uno,Nano,Leonardo和101)52或//ICSP-3(適用于Arduino Mega2560和Mega1280)

const int DS = 11;//11或ICSP-4(適用于Arduino Uno,Nano,Leonardo和101)51或//ICSP-4(適用于Arduino Mega2560和Mega1280)

const int ST_CP = 3;

const int IN_P = 4;

const int LED = 13;

IOExtension myExt(SH_CP,DS,ST_CP,IN_P);//創(chuàng)建實例并命名為您想要的任何名稱(在此示例中,實例為myExt)

void setup(){

pinMode(LED,OUTPUT);//將LED引腳配置為輸出引腳

}

void loop(){

if(myExt.DigitalRead(1)== HIGH)//讀取擴展模塊digitalWrite(LED,HIGH)的第一個輸入引腳//如果擴展輸入為HIGH

else

digitalWrite(LED,LOW),則將LED輸出設置為HIGH;//如果擴展輸入為低,則將LED輸出設置為低

}

DigitalWrite示例:

#include//包含MegaDAS_IOExtension頭文件

const int SH_CP = 13;//13或ICSP-3(適用于Arduino Uno,Nano,Leonardo和101)52或//ICSP-3(適用于Arduino Mega2560和Mega1280)

const int DS = 11;//11或ICSP-4(用于Arduino Uno,Nano,Leonardo和101)51或

//ICSP-4(用于Arduino Mega2560和Mega1280)

const int ST_CP = 3;

const int IN_P = 4;

const int LED = 2;

IOExtension myExt(SH_CP,DS,ST_CP,IN_P);//創(chuàng)建實例并命名為所需名稱(在此示例中,實例為myExt)

void setup(){pinMode(LED,OUTPUT);//將LED引腳配置為輸出引腳}

void loop(){

myExt.DigitalWrite(LED,HIGH);//將第五個擴展模塊引腳設置為HIGH

digitalWrite(LED,HIGH);//將第五個Arduino板引腳設置為HIGH

delay(1000);

myExt.DigitalWrite(LED,LOW);//將第五個擴展模塊引腳設置為HIGH

digitalWrite(LED,LOW);//將第五個Arduino板引腳設置為HIGH

delay(1000);

}

我們試圖確保您不會發(fā)現任何編碼錯誤經過大量示例和不同用途組合測試后,由該庫引起的。

該庫允許用戶編寫最少的代碼來控制所有輸入和輸出,因此僅使用兩個簡單的指令(例如DigitalRead(Pinx)或DigitalWrite(Pinx,value))就可以直接使模塊運行并以肯定的方式確定MEGA DAS社區(qū)創(chuàng)建了這個Arduino庫,以通過一些示例來解釋該模塊的使用。

步驟5:進行一些測試

按照上面的說明,我們得到了令人滿意的結果,我們可以在沒有任何問題的情況下使用新的GPIO引腳。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 引腳
    +關注

    關注

    16

    文章

    1621

    瀏覽量

    52478
  • 74HC595
    +關注

    關注

    7

    文章

    193

    瀏覽量

    31508
  • Arduino
    +關注

    關注

    189

    文章

    6493

    瀏覽量

    190279
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    飛凌嵌入式ElfBoard ELF 1板卡-LCD-IOMUX修改

    LCD數據引腳,做以下更改: 由于我們的LCD_PWREN是使用IO擴展芯片SN74HC595D: 而不是i.MX6ULL芯片的原生GPIO所以我們注釋掉LCD_RST引腳: 當然也要將擴展
    發(fā)表于 06-07 10:58

    74VHC595;74VHCT595移位寄存器規(guī)格書

    電子發(fā)燒友網站提供《74VHC595;74VHCT595移位寄存器規(guī)格書.pdf》資料免費下載
    發(fā)表于 02-14 16:11 ?0次下載
    <b class='flag-5'>74VHC595</b>;<b class='flag-5'>74VHCT595</b>移位寄存器規(guī)格書

    74VHC595-Q100;74VHCT595-Q100移位寄存器規(guī)格書

    電子發(fā)燒友網站提供《74VHC595-Q100;74VHCT595-Q100移位寄存器規(guī)格書.pdf》資料免費下載
    發(fā)表于 02-14 15:13 ?0次下載
    <b class='flag-5'>74VHC595</b>-Q100;<b class='flag-5'>74VHCT595</b>-Q100移位寄存器規(guī)格書

    74HC595-Q100;74HCT595-Q100移位寄存器規(guī)格書

    電子發(fā)燒友網站提供《74HC595-Q100;74HCT595-Q100移位寄存器規(guī)格書.pdf》資料免費下載
    發(fā)表于 02-08 17:26 ?0次下載
    <b class='flag-5'>74HC595</b>-Q100;<b class='flag-5'>74HCT595</b>-Q100移位寄存器規(guī)格書

    74HC595;74HCT595移位寄存器規(guī)格書

    電子發(fā)燒友網站提供《74HC595;74HCT595移位寄存器規(guī)格書.pdf》資料免費下載
    發(fā)表于 02-08 16:49 ?0次下載
    <b class='flag-5'>74HC595</b>;<b class='flag-5'>74HCT595</b>移位寄存器規(guī)格書

    74HC193;74HC7193二進制加減計數器規(guī)格書

    電子發(fā)燒友網站提供《74HC193;74HC7193二進制加減計數器規(guī)格書.pdf》資料免費下載
    發(fā)表于 02-07 16:28 ?0次下載
    <b class='flag-5'>74HC</b>193;<b class='flag-5'>74HC</b>7193二進制加減計數器規(guī)格書

    CD74HC244和SN74HC244有什么區(qū)別?

    TI的CD74HC244和SN74HC244有什么區(qū)別
    發(fā)表于 01-14 07:11

    74hc244和74hc373功能區(qū)別是什么?

    要用74hc373做模擬并口,用于擴展io,leader說這個做輸出可以,不能作為輸入。說是74hc244可以做輸入的,就是外部開關量作為輸入,經過74hc再到mcu。 這倆是哪的區(qū)別導致的呢?一個貌似是總線驅動,一個是鎖存。
    發(fā)表于 12-24 07:05

    SN74HC244和SN74LV244數據速率如何通過Datasheet參數計算?

    SN74HC244和SN74LV244在選型比較中有提到其Data rate分別為56Mbps和220Mbps。 1:(重點)是通過在Datasheet中Switching
    發(fā)表于 12-04 08:31

    CD74HC4046頻率的公式是怎樣的,怎么配置?

    CD74HC4046只看到規(guī)格書里有幾個圖,其求頻率的公式是怎樣的,怎么配置?
    發(fā)表于 11-11 06:43

    74hc595的功能及作用是什么

    74HC595是一款常用的8位串行輸入、并行輸出的移位寄存器,廣泛應用于LED顯示、驅動繼電器、電機控制等領域。 74HC595的功能及作用 在數字電子領域,74HC595是一款非常受
    的頭像 發(fā)表于 10-21 09:57 ?3120次閱讀

    74HC595常用移位寄存器芯片資料包

    在電子項目中,74HC595 是一款常用的移位寄存器芯片,它在很多領域都有著廣泛的應用。?74HC595 具有多個顯著的特點。首先,它可以實現串行輸入并行輸出,這意味著只需要很少的控制引腳就可以控制
    發(fā)表于 09-24 17:19 ?0次下載

    74HC595PW(nexperia)移位寄存器中文參數_功能圖_引腳圖_封裝尺寸

    Nexperia的 74HC595PW 是一款性能卓越的8位串入/串或并出移位寄存器,適用于需要高效數據轉換和存儲的電子系統(tǒng)。此芯片廣泛應用于計數器、移位寄存器等領域,憑借其靈活的設計和出色的性能
    的頭像 發(fā)表于 09-10 14:37 ?1090次閱讀
    <b class='flag-5'>74HC595</b>PW(nexperia)移位寄存器中文參數_功能圖_<b class='flag-5'>引腳</b>圖_封裝尺寸

    74HC595D,118 (nexperia)8位移位寄存器中文參數_功能優(yōu)點_功能圖_封裝

    74HC595D,118是nexperia安世生產的一款具有存儲寄存器和三態(tài)輸出的8位移位寄存器,集成了存儲寄存器和三態(tài)輸出,專為靈活的串行到并行數據轉換設計。允許級聯(lián)多個寄存器并有各自獨立的時鐘。允許使用限流電阻將輸入接口連接到超過VCC的電壓。(買安世元器件,去安瑪芯城就夠了?。?!)
    的頭像 發(fā)表于 07-31 12:00 ?1070次閱讀
    <b class='flag-5'>74HC595</b>D,118 (nexperia)8位移位寄存器中文參數_功能優(yōu)點_功能圖_封裝

    SM74HC595D高速CMOS器件規(guī)格書

    電子發(fā)燒友網站提供《SM74HC595D高速CMOS器件規(guī)格書.pdf》資料免費下載
    發(fā)表于 07-11 11:15 ?0次下載

    電子發(fā)燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品