【導(dǎo)讀】查理復(fù)用算法(Charlieplesing),具備控制多個LED的能力,即可以用較少數(shù)量的微控制器輸出端來控制較多數(shù)量的 LED(微控制器輸出端少于LED數(shù)量)。在1995年,Maxim 公司的 Charles Allen 首次提出這一想法,并命名為 Charlieplesing。
問:什么是查理復(fù)用算法(Charlieplexing )? 這算法可以用來做什么?
查理復(fù)用算法(Charlieplesing),具備控制多個LED的能力,即可以用較少數(shù)量的微控制器輸出端來控制較多數(shù)量的 LED(微控制器輸出端少于LED數(shù)量)。在1995年,Maxim 公司的 Charles Allen 首次提出這一想法,并命名為 Charlieplesing。
查理復(fù)用算法使用微控制器的所有三種邏輯狀態(tài)以及LED的單向?qū)щ娦詠砜刂凭仃?。如果你試圖顯示不同進程的狀態(tài),并且不想占用多個微控制器引腳,那么這可能很有用。
以下是一組使用查理復(fù)用算法LED的最簡單例子。
注意,在上面的例子中,它使用了一組互補的 LED?;?LED 如何允許電流在一個方向流動并阻止電流在另一個方向上流動,它允許我們根據(jù)輸入/輸出的設(shè)置來控制兩個 LED。要使用此例子,可以通過更改引腳的輸出類型來控制具有兩個引腳的兩個 LED。如果你將引腳2設(shè)置為高電平,引腳1設(shè)置為低電平,則L1 -LED將點亮。如果將引腳1設(shè)置成高電平,而引腳2設(shè)置成低電平,那么L2 -LED將會點亮。
以下是如何在 Arduino 設(shè)置。
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");
}
現(xiàn)在看這個示意圖,你可能會想,“這怎么有用?我們只使用兩個引腳控制兩個LED?!弊屛覀兛纯串斘覀兲砑拥谌齻€引腳時會發(fā)生什么。
以下是如何設(shè)置3個引腳的LED。
通過此設(shè)置可以看到,你可以使用3個引腳控制6個 LED。要在此設(shè)置中控制LED,你需要使用微控制器的所有三種狀態(tài)。如果你想打開L1- LED而不打開其他LED,則必須將引腳2設(shè)置為高,將引腳1設(shè)置為低,將引腳3設(shè)置為輸入。引腳3必須設(shè)置為輸入的原因是將該引腳設(shè)置為高阻抗。這基本上從電路上斷開了引腳。此外,如果我們將引腳3設(shè)置為LOW,LED L4也會亮起。
現(xiàn)在,如果你想打開L2-LED,用戶可以將引腳1設(shè)置為高,將引腳2設(shè)置為低,將引腳3設(shè)置為輸入。再次注意,如果我們沒有將引腳3設(shè)置為輸入,則L4-LED也將打開。
然后,用戶可以完成此過程,直到他們按順序成功點亮每個LED。
→ 如果你想用 Arduino 編寫代碼, 請查看這里
現(xiàn)在我們已經(jīng)探索了2個引腳和3個引腳,你可以看到查理復(fù)用算法如何成為一個有用的工具。讓我們再為4個輸入引腳進行一次設(shè)置。
在我們展示4個輸入引腳的設(shè)置之前,你能猜出我們能夠控制多少個 LED 嗎?
通過將要使用的I/O數(shù)量乘以相同的I/O數(shù)量減1,可以計算出可以控制的LED數(shù)量。因此,例如,如果我們想使用4個I/O引腳,我們將該數(shù)字乘以3,這將讓我們知道,我們可以用4個I/O控制多達12個LED。
以下是如何設(shè)置4個 I/O 的 LED。
注意,我對這一個連接進行了顏色編碼,以使連接更清晰。如你所見,通過在原理圖中再添加一個引腳,我們可以再添加 6個 LED。為了控制LED,此設(shè)置與3個引腳的工作方式相同,但是,在這種情況下,我們將設(shè)置2個引腳作為輸入。這里是 Arduino 代碼,用于控制所有 12個LED。
正如你所看到的,如果你 I/O 引腳數(shù)量有限,這可能是一個有用的工具。
如果你想看到查理復(fù)用算法的其他選項,我看到的使用查理復(fù)用算法的最常見項目之一是 LED 立方體。如果你在網(wǎng)上搜索查理復(fù)用算法LED立方體,你會看到幾個不同的版本。
免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
推薦閱讀: