步驟1:制作該項(xiàng)目所需的條件
硬件:
4個(gè)74HC595移位寄存器
4個(gè)16引腳DIP IC插座
16個(gè)1N4001二極管
2個(gè)10K電阻
1330電阻
1個(gè)5mm LED
一個(gè)PCB,您可以從easyEDA訂購(gòu)不到5美元的軟件
該軟件:
Arduino IDE
步驟2:關(guān)于主要組件(74HC595)
硬件部分它非常簡(jiǎn)單,并且基于74HC595移位寄存器,因此是一種簡(jiǎn)便且經(jīng)濟(jì)的方法,可以增加開(kāi)發(fā)板上的數(shù)字I/O引腳數(shù)量。這種集成電路本質(zhì)上是數(shù)字的,就像Arduino上的數(shù)字引腳一樣,這意味著它們只能讀取或?qū)懭敫呋虻瓦壿嬰娖剑粦?yīng)將其用于從模擬傳感器或電位計(jì)讀取數(shù)據(jù)。
我們可以找到許多基于這種移位寄存器的硬件和電路,例如Adafruit電機(jī)護(hù)罩,7段模塊。該電路的使用非常方便,并且是多路復(fù)用的一種很好的動(dòng)手方法,它是一種有效的技術(shù),用于控制連接在一起的許多組件。
您可以在線訂購(gòu)5張74HC595圖片,價(jià)格低于6 $:亞馬遜
那么如何使用74HC595!
該電路提供了三個(gè)接口引腳,分別是SHIFT_CLOCK(SH_CP),LATCH_CLOCK(ST_CP)和數(shù)據(jù)引腳(DS)。
第一步是將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)寄存器中,為此,我們需要將鎖存器引腳設(shè)置為L(zhǎng)OW以禁用輸出,這樣當(dāng)我們向74HC595發(fā)送新數(shù)據(jù)時(shí),輸出引腳將保持不變。
下一步是通過(guò)對(duì)時(shí)鐘引腳施加脈沖并從數(shù)據(jù)引腳發(fā)送新數(shù)據(jù)的每個(gè)字節(jié),逐位串行發(fā)送數(shù)據(jù)。
最后一步是將閂鎖引腳設(shè)置為高電平。這樣,寄存器將更新(并行輸出)。
您可以在其數(shù)據(jù)表中找到有關(guān)該集成電路的更多詳細(xì)信息。
我只是在解釋如何移位寄存器可以工作,但是,我們將不做所有這些工作,因?yàn)槲覀儗⑹褂肁rduino SPI庫(kù)來(lái)控制整個(gè)過(guò)程,并且不要忘記您將擁有一個(gè)庫(kù)來(lái)控制模塊,而這只是有關(guān)移位寄存器的最后信息它具有8個(gè)并行輸出(Q0-Q7)和一個(gè)串行輸出(Q7‘)以進(jìn)行級(jí)聯(lián)。
步驟3:硬件設(shè)計(jì)(電路)
IOExtension模塊基于四個(gè)移位寄存器(74HC595),可提供16個(gè)數(shù)字輸入和16個(gè)數(shù)字輸出,您只需在開(kāi)發(fā)板上使用四個(gè)引腳即可控制模塊,另外還需要Vcc和Gnd引腳
為了具有32個(gè)I/O引腳,我們將使用四個(gè)移位寄存器(74HC595),如圖所示C。四個(gè)寄存器應(yīng)具有同步的數(shù)據(jù)并同時(shí)更新所有輸出和輸入,這就是為什么我們應(yīng)該將所有LATCH_CLOCK引腳以及所有SHIFT_CLOCK都連接在一起,但是第一個(gè)寄存器的Data引腳將連接到的原因您的Arduino開(kāi)發(fā)板和其余寄存器將通過(guò)串行輸出(Q7’)相互連接,這意味著將第一個(gè)移位寄存器的串行輸出連接至下一個(gè)移位寄存器的數(shù)據(jù)引腳,依此類推。
我強(qiáng)烈推薦easyEDA網(wǎng)站制作您的PCB。
但是什么是easyEDA!
這是一個(gè)免費(fèi)的在線電子設(shè)計(jì)自動(dòng)化社區(qū),允許創(chuàng)建,測(cè)試和編輯
在此處查找指向easyEDA平臺(tái)的鏈接。
此在線程序在所有平臺(tái)(甚至是android)上均受支持,借助easyEDA,您可以為文檔制作Schematic Capture,電路仿真,在線PCB設(shè)計(jì),可導(dǎo)入PCB和原理圖文件,因此從這一點(diǎn)上我們可以理解,我們可以在此在線設(shè)計(jì)器中創(chuàng)建PCB,也可以僅使用其他軟件來(lái)制造PCB,然后將gerber文件上傳到easyEDA進(jìn)行訂購(gòu)。
協(xié)同設(shè)計(jì)是最好的easyEDA的一部分,您可以使用公共或私人訪問(wèn)權(quán)限輕松協(xié)作并就設(shè)計(jì)發(fā)表評(píng)論。社區(qū)提供了完善的云開(kāi)發(fā),但這還不是全部,我們?nèi)匀粨碛羞@個(gè)出色的Google chrome擴(kuò)展,可以讓您隨時(shí)了解所有聊天伙伴和合作伙伴的活動(dòng)。
登錄后,開(kāi)始一個(gè)新項(xiàng)目給它起個(gè)名字并選擇其隱私權(quán),別忘了簡(jiǎn)短的描述對(duì)您的合作伙伴總有好處,然后自動(dòng)協(xié)助將指導(dǎo)您從選項(xiàng)和工具入手。在這個(gè)項(xiàng)目中,我們將使電路如圖所示。 easyEDA庫(kù)中有一些不可用的組件,例如74hc595移位寄存器,因此您應(yīng)該在其他公共項(xiàng)目中進(jìn)行搜索,只需寫(xiě)下標(biāo)簽并單擊搜索,當(dāng)找到它時(shí),選擇它,然后將其放在空白表中即可,但是您需要封裝表示形式以完成PCB設(shè)計(jì),因此請(qǐng)單擊封裝的空白區(qū)域并進(jìn)行更新。
完成原理圖后,您可以為文檔下載漂亮的PDF或圖像。關(guān)于PCB,單擊“將項(xiàng)目轉(zhuǎn)換為PCB”,您將獲得適合您的電路的PCB,我在這個(gè)平臺(tái)上真正喜歡的是它可以為您提供所需的組件,因此可以按您希望的方式放置它們。 easyEDA解決了手動(dòng)路由的問(wèn)題,使您只需單擊一下即可制作自動(dòng)路由器。
完成任務(wù)后,您可以添加一些選項(xiàng),例如圖像以改善外觀,并添加一些指示器標(biāo)簽,然后如果要為PCB下訂單,請(qǐng)單擊制造輸出按鈕。我們的模塊每5張圖片不到30美元,這是一個(gè)不錯(cuò)的購(gòu)買(mǎi)價(jià)格。
PCB收到很好
僅僅6天,我就收到了訂單,給我留下了深刻的印象
第4步:軟件(庫(kù))
IOGA擴(kuò)展庫(kù)是由MEGA DAS社區(qū)開(kāi)發(fā)的,目的是促進(jìn)使用同一社區(qū)制造的數(shù)字?jǐn)U展模塊(基于74HC595換檔注冊(cè)人)。
這是一個(gè)Github鏈接,用于下載該庫(kù)。
此庫(kù)包含所有必需的API,可以肯定地將這些庫(kù)添加到您的libreries目錄中,然后將它們用Arduino IDE編寫(xiě)的代碼中使用。 。該軟件包還包含示例文件,您可以在其中找到一些基本示例來(lái)演示如何將模塊連接到開(kāi)發(fā)板上以及如何利用API(例如DigitalRead和DigitalWrite示例),這些API表現(xiàn)出與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)建實(shí)例并命名為您想要的任何名稱(在此示例中,實(shí)例為myExt)
void setup(){
pinMode(LED,OUTPUT);//將LED引腳配置為輸出引腳
}
void loop(){
if(myExt.DigitalRead(1)== HIGH)//讀取擴(kuò)展模塊digitalWrite(LED,HIGH)的第一個(gè)輸入引腳//如果擴(kuò)展輸入為HIGH
else
digitalWrite(LED,LOW),則將LED輸出設(shè)置為HIGH;//如果擴(kuò)展輸入為低,則將LED輸出設(shè)置為低
}
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)建實(shí)例并命名為所需名稱(在此示例中,實(shí)例為myExt)
void setup(){pinMode(LED,OUTPUT);//將LED引腳配置為輸出引腳}
void loop(){
myExt.DigitalWrite(LED,HIGH);//將第五個(gè)擴(kuò)展模塊引腳設(shè)置為HIGH
digitalWrite(LED,HIGH);//將第五個(gè)Arduino板引腳設(shè)置為HIGH
delay(1000);
myExt.DigitalWrite(LED,LOW);//將第五個(gè)擴(kuò)展模塊引腳設(shè)置為HIGH
digitalWrite(LED,LOW);//將第五個(gè)Arduino板引腳設(shè)置為HIGH
delay(1000);
}
我們?cè)噲D確保您不會(huì)發(fā)現(xiàn)任何編碼錯(cuò)誤經(jīng)過(guò)大量示例和不同用途組合測(cè)試后,由該庫(kù)引起的。
該庫(kù)允許用戶編寫(xiě)最少的代碼來(lái)控制所有輸入和輸出,因此僅使用兩個(gè)簡(jiǎn)單的指令(例如DigitalRead(Pinx)或DigitalWrite(Pinx,value))就可以直接使模塊運(yùn)行并以肯定的方式確定MEGA DAS社區(qū)創(chuàng)建了這個(gè)Arduino庫(kù),以通過(guò)一些示例來(lái)解釋該模塊的使用。
步驟5:進(jìn)行一些測(cè)試
按照上面的說(shuō)明,我們得到了令人滿意的結(jié)果,我們可以在沒(méi)有任何問(wèn)題的情況下使用新的GPIO引腳。
-
引腳
+關(guān)注
關(guān)注
16文章
1224瀏覽量
51090 -
74HC595
+關(guān)注
關(guān)注
7文章
193瀏覽量
31022 -
Arduino
+關(guān)注
關(guān)注
188文章
6478瀏覽量
188267
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
74VHC595;74VHCT595移位寄存器規(guī)格書(shū)

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

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

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

74hc244和74hc373功能區(qū)別是什么?
74hc595的功能及作用是什么
74HC595常用移位寄存器芯片資料包
74HC595PW(nexperia)移位寄存器中文參數(shù)_功能圖_引腳圖_封裝尺寸

SM74HC595D高速CMOS器件規(guī)格書(shū)
74HC595D/74HCT595D(nexperia)移位寄存器_中文參數(shù)_功能特點(diǎn)_工作原理

SN74HC595-EP帶3態(tài)輸出寄存器的8位移位寄存器數(shù)據(jù)表

采用三態(tài)輸出寄存器的 8 位移位寄存器SN74HC595B數(shù)據(jù)表

stm8s-discovery驅(qū)動(dòng)74hc595,管腳怎樣連接?
具有三態(tài)輸出寄存器的CD74HC595 8位移位寄存器數(shù)據(jù)表

評(píng)論