第1步:組件
-Arduino UNO (x1)
-74HC595移位寄存器( x2)
-LEDs (x16)
-220omh電阻器(x16)
-多根導(dǎo)線
-兩個(gè)面包(一個(gè)帶有400針,另一個(gè)帶有830)
-電位器,用于控制亮度(可選)
第2步:電路
進(jìn)行電路(見(jiàn)上文)并按如下方式連接第一個(gè)移位寄存器:
-GND(引腳8)接地
-Vcc(引腳16)到5V
-OE(引腳13)接地
- MR(引腳10)至5V
-DS(引腳14)至Arduino引腳11
-SH_CP(引腳11)至Arduino引腳12
-ST_CP (引腳12)到Arduino引腳8
連接第二個(gè)移位寄存器完全相同,但是將DS(引腳14)連接到第一個(gè)寄存器引腳9。之后,將引腳:從兩個(gè)寄存器連接到LED的1、2、3、4、5、6、7和15。這種連接使所有引腳始終處于活動(dòng)狀態(tài)且可尋址,但是當(dāng)Arduino通電時(shí),某些LED可能會(huì)打開(kāi)。解決方案是將MR(引腳10)和OE(引腳13)直接連接到Arduino,但是這樣一來(lái),您必須犧牲2個(gè)Aurduino引腳。
要添加更多的移位寄存器,就像第二個(gè)一樣寄存器。始終將MR和OE引腳直接連接到Arduino,將DS引腳直接連接到先前的寄存器。
如果要調(diào)節(jié)LED的亮度,請(qǐng)按照上圖所示連接電位計(jì)以控制所有LED的電阻。
第3步:代碼
現(xiàn)有代碼旨在用于有限數(shù)量的移位寄存器和沒(méi)有通用的功能/方法可以做到這一點(diǎn)。作為軟件開(kāi)發(fā)人員,這對(duì)我來(lái)說(shuō)是不可接受的,并且我習(xí)慣于使所有內(nèi)容盡可能地動(dòng)態(tài),沒(méi)有限制。我重新設(shè)計(jì)了現(xiàn)有代碼示例,以允許您使用無(wú)限數(shù)量的移位寄存器。參見(jiàn)下面的代碼:
int numOfRegisters = 2;
byte * registerState;
void setup(){
//初始化數(shù)組
registerState =新字節(jié)[numOfRegisters];
for(size_t i = 0; i
registerState [i] = 0;
}
//。.. setup
}
void regWrite(int pin,bool state){
//確定寄存器int reg = pin/8;
//確定實(shí)際寄存器的
int actualPin = pin-(8 * reg);
//開(kāi)始會(huì)話
digitalWrite(latchPin,LOW);
for(int i = 0; i
//獲取寄存器的實(shí)際狀態(tài)
字節(jié)*狀態(tài)=?isterState[i];
//更新?tīng)顟B(tài)
if(i == reg){
bitWrite(* states,ActualPin,state);
}
//寫(xiě)入
shiftem(dataPin,clockPin,MSBFIRST,* sta TES);
}
//結(jié)束會(huì)話
digitalWrite(latchPin ,HIGH);
}
第4步:最終代碼
我將完整的源代碼發(fā)布在github上,因?yàn)檫@里不可讀:
https://github.com/jr2002008/Arduino-74HC595-shift-registers/blob/master/ArduinoLEDsWithShiftRegisters/ArduinoLEDsWithShiftRegisters.ino
在最終代碼中,我為這16個(gè)LED添加了幾種效果。上面的視頻演示了這些效果。如果要添加更多的LED,請(qǐng)按照前面所述連接更多的寄存器,并在代碼中更改 numOfRegisters 的值(還可以調(diào)整效果的邏輯)。
您也可以使用此代碼不僅僅用于LED,如果您只是想為Arduino使用更多引腳,請(qǐng)使用 regWrite(int引腳,布爾狀態(tài))函數(shù)為任何引腳寫(xiě)入狀態(tài),并且沒(méi)有限制多少移位寄存器您正在使用,只需更改 numOfRegisters 的值,其他所有操作都會(huì)自動(dòng)執(zhí)行。
責(zé)任編輯:wv
-
led
+關(guān)注
關(guān)注
242文章
23700瀏覽量
670895 -
移位寄存器
+關(guān)注
關(guān)注
3文章
287瀏覽量
22646 -
74HC595
+關(guān)注
關(guān)注
7文章
193瀏覽量
31463 -
Arduino
+關(guān)注
關(guān)注
188文章
6491瀏覽量
190093
發(fā)布評(píng)論請(qǐng)先 登錄
74VHC595;74VHCT595移位寄存器規(guī)格書(shū)

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

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

74HC594-Q100;74HCT594-Q100帶輸出寄存器的8位移位寄存器規(guī)格書(shū)

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

74LV595移位寄存器規(guī)格書(shū)

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

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

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

納祥科技74HC595D,一款應(yīng)用于LED廣告顯示屏的低功耗3態(tài)8位移位寄存器

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

移位寄存器右移是怎么移位的
74HC595D/74HCT595D(nexperia)移位寄存器_中文參數(shù)_功能特點(diǎn)_工作原理

評(píng)論