<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 這個(gè)控制LED的經(jīng)典算法 你會(huì )用嗎?

這個(gè)控制LED的經(jīng)典算法 你會(huì )用嗎?

作者: 時(shí)間:2023-04-14 來(lái)源:Digi-Key 收藏

查理復用算法(Charlieplesing),具備控制多個(gè)的能力,即可以用較少數量的微控制器輸出端來(lái)控制較多數量的 (微控制器輸出端少于數量)。在1995年,Maxim 公司的 Charles Allen 首次提出這一想法,并命名為 Charlieplesing。

本文引用地址:http://dyxdggzs.com/article/202304/445594.htm


問(wèn):什么是查理復用算法(Charlieplexing )? 這算法可以用來(lái)做什么?


查理復用算法(Charlieplesing),具備控制多個(gè)LED的能力,即可以用較少數量的微控制器輸出端來(lái)控制較多數量的 LED(微控制器輸出端少于LED數量)。在1995年,Maxim 公司的 Charles Allen 首次提出這一想法,并命名為 Charlieplesing。


查理復用算法使用微控制器的所有三種邏輯狀態(tài)以及LED的單向導電性來(lái)控制矩陣。如果你試圖顯示不同進(jìn)程的狀態(tài),并且不想占用多個(gè)微控制器引腳,那么這可能很有用。


以下是一組使用查理復用算法LED的最簡(jiǎn)單例子。


1681376755524993.jpg


注意,在上面的例子中,它使用了一組互補的 LED?;?LED 如何允許電流在一個(gè)方向流動(dòng)并阻止電流在另一個(gè)方向上流動(dòng),它允許我們根據輸入/輸出的設置來(lái)控制兩個(gè) LED。要使用此例子,可以通過(guò)更改引腳的輸出類(lèi)型來(lái)控制具有兩個(gè)引腳的兩個(gè) LED。如果你將引腳2設置為高電平,引腳1設置為低電平,則L1 -LED將點(diǎn)亮。如果將引腳1設置成高電平,而引腳2設置成低電平,那么L2 -LED將會(huì )點(diǎn)亮。


以下是如何在 Arduino 設置。


void setup() {

Serial.begin(9600);

}


void loop() {

pinMode(1,OUTPUT);

pinMode(2,OUTPUT);

pinMode(3,INPUT);


digitalWrite(2,HIGH);

digitalWrite(1,LOW);

delay(1000);


Serial.println("1");


pinMode(1,OUTPUT);

pinMode(2,OUTPUT);

pinMode(3,INPUT);


digitalWrite(1,HIGH);

digitalWrite(2,LOW);

delay(1000);


Serial.println("2");

}


現在看這個(gè)示意圖,你可能會(huì )想,“這怎么有用?我們只使用兩個(gè)引腳控制兩個(gè)LED?!弊屛覀兛纯串斘覀兲砑拥谌齻€(gè)引腳時(shí)會(huì )發(fā)生什么。


以下是如何設置3個(gè)引腳的LED。


1681376742742741.jpg


通過(guò)此設置可以看到,你可以使用3個(gè)引腳控制6個(gè) LED。要在此設置中控制LED,你需要使用微控制器的所有三種狀態(tài)。如果你想打開(kāi)L1- LED而不打開(kāi)其他LED,則必須將引腳2設置為高,將引腳1設置為低,將引腳3設置為輸入。引腳3必須設置為輸入的原因是將該引腳設置為高阻抗。這基本上從電路上斷開(kāi)了引腳。此外,如果我們將引腳3設置為L(cháng)OW,LED L4也會(huì )亮起。


現在,如果你想打開(kāi)L2-LED,用戶(hù)可以將引腳1設置為高,將引腳2設置為低,將引腳3設置為輸入。再次注意,如果我們沒(méi)有將引腳3設置為輸入,則L4-LED也將打開(kāi)。


然后,用戶(hù)可以完成此過(guò)程,直到他們按順序成功點(diǎn)亮每個(gè)LED。


→  如果你想用 Arduino 編寫(xiě)代碼, 請查看這里


現在我們已經(jīng)探索了2個(gè)引腳和3個(gè)引腳,你可以看到查理復用算法如何成為一個(gè)有用的工具。讓我們再為4個(gè)輸入引腳進(jìn)行一次設置。


在我們展示4個(gè)輸入引腳的設置之前,你能猜出我們能夠控制多少個(gè) LED 嗎?


通過(guò)將要使用的I/O數量乘以相同的I/O數量減1,可以計算出可以控制的LED數量。因此,例如,如果我們想使用4個(gè)I/O引腳,我們將該數字乘以3,這將讓我們知道,我們可以用4個(gè)I/O控制多達12個(gè)LED。


  以下是如何設置4個(gè) I/O 的 LED。


1681376715580950.jpg


注意,我對這一個(gè)連接進(jìn)行了顏色編碼,以使連接更清晰。如你所見(jiàn),通過(guò)在原理圖中再添加一個(gè)引腳,我們可以再添加 6個(gè) LED。為了控制LED,此設置與3個(gè)引腳的工作方式相同,但是,在這種情況下,我們將設置2個(gè)引腳作為輸入。這里是 Arduino 代碼,用于控制所有 12個(gè)LED。


正如你所看到的,如果你 I/O 引腳數量有限,這可能是一個(gè)有用的工具。


如果你想看到查理復用算法的其他選項,我看到的使用查理復用算法的最常見(jiàn)項目之一是 LED 立方體。如果你在網(wǎng)上搜索查理復用算法LED立方體,你會(huì )看到幾個(gè)不同的版本。



關(guān)鍵詞: Digi-Key LED

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>