第1步:組件
-Arduino UNO (x1)
-74HC595移位寄存器( x2)
-LEDs (x16)
-220omh電阻器(x16)
-多根導(dǎo)線
-兩個(gè)面包(一個(gè)帶有400針,另一個(gè)帶有830)
-電位器,用于控制亮度(可選)
第2步:電路
進(jì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ì)打開。解決方案是將MR(引腳10)和OE(引腳13)直接連接到Arduino,但是這樣一來,您必須犧牲2個(gè)Aurduino引腳。
要添加更多的移位寄存器,就像第二個(gè)一樣寄存器。始終將MR和OE引腳直接連接到Arduino,將DS引腳直接連接到先前的寄存器。
如果要調(diào)節(jié)LED的亮度,請(qǐng)按照上圖所示連接電位計(jì)以控制所有LED的電阻。
第3步:代碼
現(xiàn)有代碼旨在用于有限數(shù)量的移位寄存器和沒有通用的功能/方法可以做到這一點(diǎn)。作為軟件開發(fā)人員,這對(duì)我來說是不可接受的,并且我習(xí)慣于使所有內(nèi)容盡可能地動(dòng)態(tài),沒有限制。我重新設(shè)計(jì)了現(xiàn)有代碼示例,以允許您使用無限數(shù)量的移位寄存器。參見下面的代碼:
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);
//開始會(huì)話
digitalWrite(latchPin,LOW);
for(int i = 0; i
//獲取寄存器的實(shí)際狀態(tài)
字節(jié)*狀態(tài)=?isterState[i];
//更新狀態(tài)
if(i == reg){
bitWrite(* states,ActualPin,state);
}
//寫入
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ù)為任何引腳寫入狀態(tài),并且沒有限制多少移位寄存器您正在使用,只需更改 numOfRegisters 的值,其他所有操作都會(huì)自動(dòng)執(zhí)行。
責(zé)任編輯:wv
-
led
+關(guān)注
關(guān)注
242文章
23391瀏覽量
663684 -
移位寄存器
+關(guān)注
關(guān)注
3文章
270瀏覽量
22354 -
74HC595
+關(guān)注
關(guān)注
7文章
193瀏覽量
30963 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187978
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
74HC594;74HCT594移位寄存器規(guī)格書
![<b class='flag-5'>74HC</b>594;<b class='flag-5'>74</b>HCT594<b class='flag-5'>移位寄存器</b>規(guī)格書](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
74LV595移位寄存器規(guī)格書
![<b class='flag-5'>74LV595</b><b class='flag-5'>移位寄存器</b>規(guī)格書](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
74HC595-Q100;74HCT595-Q100移位寄存器規(guī)格書
![<b class='flag-5'>74HC595</b>-Q100;<b class='flag-5'>74HCT595</b>-Q100<b class='flag-5'>移位寄存器</b>規(guī)格書](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
74HC595;74HCT595移位寄存器規(guī)格書
![<b class='flag-5'>74HC595</b>;<b class='flag-5'>74HCT595</b><b class='flag-5'>移位寄存器</b>規(guī)格書](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
74HC597;74HCT597移位寄存器規(guī)格書
![<b class='flag-5'>74HC</b>597;<b class='flag-5'>74</b>HCT597<b class='flag-5'>移位寄存器</b>規(guī)格書](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
74hc595的功能及作用是什么
74HC595常用移位寄存器芯片資料包
74HC595PW(nexperia)移位寄存器中文參數(shù)_功能圖_引腳圖_封裝尺寸
![<b class='flag-5'>74HC595</b>PW(nexperia)<b class='flag-5'>移位寄存器</b>中文參數(shù)_功能圖_引腳圖_封裝尺寸](https://file1.elecfans.com//web2/M00/05/E5/wKgZombf6Q6AVtUDAAD8v25Z-7o106.jpg)
移位寄存器右移是怎么移位的
74HC595D/74HCT595D(nexperia)移位寄存器_中文參數(shù)_功能特點(diǎn)_工作原理
![<b class='flag-5'>74HC595</b>D/<b class='flag-5'>74HCT595</b>D(nexperia)<b class='flag-5'>移位寄存器</b>_中文參數(shù)_功能特點(diǎn)_工作原理](https://file1.elecfans.com//web2/M00/EC/19/wKgZomZhFz6AZU6lAAFYFn40Wu8678.jpg)
SN74HC595-EP帶3態(tài)輸出寄存器的8位移位寄存器數(shù)據(jù)表
![SN<b class='flag-5'>74HC595</b>-EP帶3態(tài)輸出<b class='flag-5'>寄存器</b>的8位<b class='flag-5'>移位寄存器</b>數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
采用三態(tài)輸出寄存器的 8 位移位寄存器SN74HC595B數(shù)據(jù)表
![采用三態(tài)輸出<b class='flag-5'>寄存器</b>的 8 位<b class='flag-5'>移位寄存器</b>SN<b class='flag-5'>74HC595</b>B數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
具有三態(tài)輸出寄存器的CD74HC595 8位移位寄存器數(shù)據(jù)表
![具有三態(tài)輸出<b class='flag-5'>寄存器</b>的CD<b class='flag-5'>74HC595</b> 8位<b class='flag-5'>移位寄存器</b>數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
具有三態(tài)輸出寄存器的 8 位移位寄存器SN74LV595A-Q1數(shù)據(jù)表
![具有三態(tài)輸出<b class='flag-5'>寄存器</b>的 8 位<b class='flag-5'>移位寄存器</b>SN<b class='flag-5'>74LV595</b>A-Q1數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
具有三態(tài)輸出寄存器的 SNx4HC595 8位移位寄存器數(shù)據(jù)表
![具有三態(tài)輸出<b class='flag-5'>寄存器</b>的 SNx4<b class='flag-5'>HC595</b> 8位<b class='flag-5'>移位寄存器</b>數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論