在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用晶體管實(shí)現(xiàn)多路復(fù)用

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-01 10:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:晶體管背景

如何使用晶體管實(shí)現(xiàn)多路復(fù)用

如何使用晶體管實(shí)現(xiàn)多路復(fù)用

晶體管起著多種作用,但它們基本上是電子開關(guān)。這正是我們將如何使用它們進(jìn)行多路復(fù)用的方法。

我實(shí)際上并不會(huì)研究它們的工作原理或其他任何東西,而只是將其視為電子開關(guān)。我將使用NPN晶體管,這是最常用的晶體管。有一個(gè)發(fā)射極,一個(gè)基極和一個(gè)集電極,確保將電路組合在一起時(shí)知道哪個(gè)引腳。電流從集電極流向發(fā)射極,而基極則啟用/禁用該電流。實(shí)際上,這就是使它成為開關(guān)的原因。如果您要使用兩個(gè)不同的電源或需要大量電流,這也很有用。由于底座與收集器和發(fā)射器是分開的,因此可以單獨(dú)供電。這有什么用?那么,所有微控制器都有一個(gè)數(shù)字引腳(GPIO)最大輸出電流,通常不會(huì)超過200mA。如果一次有多個(gè)LED亮起,則可能超過200mA,這對(duì)微控制器不利。因此,使用晶體管,微控制器無需向?qū)嶋H組件(例如LED)提供電流。與復(fù)用無關(guān),但您也可以使用晶體管讓微控制器控制不同的電源以及繼電器的使用方法。上面的第二幅圖是使用晶體管的陽極和陰極原理圖的基本原理圖。 (注意:不需要陽極電路上的電容器)。該電路實(shí)際上不是陽極或陰極,但是我這樣稱呼它們是因?yàn)殛枠O電路的輸出連接到LED的陽極。而陰極電路連接到LED的陰極。 LED的陽極是電流進(jìn)入組件的地方,陰極是電流離開組件的地方。因此,當(dāng)然,陽極晶體管電路為VCC提供電源,陰極晶體管電路為地提供電源。

我正在使用的晶體管:http://www.taydaelectronics.com/2n3904-npn-general-propose-transistor.html

步驟2:多路復(fù)用

多路復(fù)用時(shí),將其視為行和列,具體取決于您的處理方式(在本例中為LEDs)您總是會(huì)有行和列。在最后一步,您看到了陽極和陰極的示意圖,一個(gè)是行,另一個(gè)是列。

此步驟中的圖片顯示了一組9個(gè)LED,共有3行和3列。行和列無關(guān)緊要,它們的順序是什么,或者陽極/陰極是哪一個(gè),但是硬件必須與軟件匹配!對(duì)于圖片,該行是該列上的“主要”。我的意思是,如果您查看這些步驟,則將一行設(shè)置為亮,而將某些列設(shè)置為為LED供電。怎么做?好吧,根據(jù)代碼的不同,您需要做一個(gè)“顯性的”,我這樣做是通過讓行函數(shù)每次行更改時(shí)都調(diào)用列函數(shù)來實(shí)現(xiàn)的。

由于有3個(gè)步驟,最終圖像顯示“您看到的內(nèi)容” , 這是如何運(yùn)作的?好吧,如果發(fā)生這種變化,每隔1毫秒說一次,那么人眼就無法分辨出差異,這與電視上的刷新率或每秒幀數(shù)非常相似。因此,實(shí)際上一次只能打開一排LED,但在眼睛上它們似乎一次都亮著。

當(dāng)您添加更多的行和列時(shí),多路復(fù)用率會(huì)進(jìn)一步提高!假設(shè)您想要一個(gè)16 x 16的顯示屏,即256個(gè)LED。使用16行,16列的多路復(fù)用,因此32個(gè)引腳可控制256個(gè)LED! 32仍然是很多數(shù)字引腳(Arduino只有12 。..),但是您可以在其中使用移位寄存器使用更少的引腳。

現(xiàn)在,這確實(shí)帶來了一個(gè)問題,以便不斷查看此圖像。代碼必須每隔幾毫秒不斷更改行,以便所有行都處于打開狀態(tài)。因此,延遲等功能無法與多路復(fù)用一起使用。不幸的是,Arduino代碼似乎嚴(yán)重依賴于延遲。..解決方案?使用最后一個(gè)示例中的Atmega328s計(jì)時(shí)器/計(jì)數(shù)器,您可以看到實(shí)現(xiàn)計(jì)時(shí)器之一的代碼。

步驟3:制作多路復(fù)用原理圖

您需要確定要作為陽極或陰極的行/列,但實(shí)際上并不重要。在示意圖中,我選擇了行作為陽極,列選擇了陰極。

在示意圖中,由于行是陽極,所以LED陽極的每一行都連接到陽極彼此。列的情況相同,LED的所有陰極都已連接。

多路復(fù)用與將LED直接連接至引腳的真正不同之處在于控制接地的方式。如果僅將LED連接到引腳,則LED的陰極通常連接到公共接地。通過多路復(fù)用電路,微控制器控制接地的可用性。這使您可以禁用整個(gè)行或列,因?yàn)樵撾娐酚捎跊]有接地而無法完成。

在任何情況下,這都是理想的電路,但是對(duì)于陽極,您不一定需要一個(gè)晶體管。如果您想使用微控制器并從中汲取電流,則可以直接將引腳連接到LED的陽極。但是,這并不理想,因?yàn)槟鷱奈⒖刂破骷橙‰娏鳎拖裎以诓襟E1中所說的那樣,微控制器具有最大的電流供應(yīng)。陽極不一定需要一個(gè)晶體管,但陰極必須有一個(gè)。您仍然需要啟用/禁用地面才能使多路復(fù)用工作。

第二張圖片顯示的原理圖與我在示例中使用的物理電路幾乎相同。下一步將顯示如何編寫用于復(fù)用的程序。

步驟4:復(fù)用代碼

要實(shí)現(xiàn)復(fù)用,您將需要編寫代碼以某種方式。實(shí)際上并沒有那么復(fù)雜,可以說行在列上是“主要的”。這意味著單行晶體管導(dǎo)通,而該行的列運(yùn)行一次。之后,您移至下一行并一次又一次地執(zhí)行相同操作,直到重復(fù)為止!

刷新LED的速度不夠快而無法注意到的問題是您無法擁有同步系統(tǒng)。這意味著您不能有長時(shí)間持續(xù)的延遲。因此,如果您有1秒的延遲,那么行和列所在的位置將只在整個(gè)整秒鐘顯示一次。

最簡單的方法是使用兩個(gè)函數(shù),其中一個(gè)函數(shù)重復(fù)調(diào)用另一個(gè)函數(shù)。由于在這種情況下行是列的“主要”,我們將有兩個(gè)函數(shù)可以調(diào)用它們:

-Display_LED()

-Column_Load()

所以這是一些sudo代碼:

無效Display_LED(char a,char b,char c)

{

Column_Load(a);

digitalWrite(transistor_pin1,HIGH);

delay(1);

digitalWrite(transistor_pin1,LOW);

//根據(jù)行數(shù)重復(fù)

}

因此,上面的Display_LED函數(shù)是行的“顯性”函數(shù)。同樣,您可以使用行或列作為主導(dǎo),這并不重要。首先,您調(diào)用列函數(shù)來設(shè)置這些晶體管的開或關(guān)。然后將某個(gè)行晶體管設(shè)置為高電平。我的延遲很短,所以LED亮了1ms。如果將其更改為1000毫秒,您實(shí)際上可以看到每個(gè)更改。這就是為什么您不能在程序的其余部分中使用延遲的原因。從那里關(guān)閉晶體管,并重復(fù)從a到b的代碼,然后切換到第二行。

void Column_Load(char LEDs)

{

如果(LEDs_on == 0x07)

{

digitalWrite(colum1_transistor,HIGH)

digitalWrite(colum2_transistor,HIGH)

digitalWrite(colum3_transistor,HIGH)

}

}

此函數(shù)非常簡單,具體取決于值參數(shù)是否已按照需要設(shè)置LED。如果您使用PORT_和DDR_,那么編寫代碼實(shí)際上比使用digitalWrites簡單。在大多數(shù)情況下,我將vale設(shè)置為十六進(jìn)制值,因此,如果我輸入0x03,這意味著LED 1和3在2處于關(guān)閉狀態(tài)時(shí)都打開。

下一步是使用上述以下功能的3x3 LED陣列示例。唯一的區(qū)別是行和列是相反的。

步驟5:3 x 3 LED顯示示例

示例代碼:

您可以使用以下代碼查看帶有LED指示燈的圖片。該代碼也作為.ino文件附加。點(diǎn)亮的LED由0x02,0x05,0x02設(shè)置。這些十六進(jìn)制值的十進(jìn)制表示形式是00000010,00000101,00000010。您可以查看這些值如何與顯示匹配。

如果您想自己嘗試一下,下面提供了代碼,只需復(fù)制第3步中的電路即可!

/*晶體管多路復(fù)用3x3 LEDs

通過: Marty Peltz

日期:2013年7月19日

目的:使用多路復(fù)用以3x3模式控制9個(gè)LED。

用于Martin Peltz的Instructiable

*/

/****變量* ***/ char col1_cathode = 0;

char col2_cathode = 1; char col3_cathode = 2;

char row1_anode = 3;

char row2_anode = 4;

char row3_anode = 5;

void setup()

{

//將引腳設(shè)置為輸出

pinMode(col1_cathode,OUTPUT);

pinMode(col2_cathode,OUTPUT);

pinMode(col3_cathode,OUTPUT) );

pinMode(row1_anode,OUTPUT);

pinMode(row2_anode,OUTPUT);

pinMode(row3_anode,OUTPUT);

//關(guān)閉所有GPIO引腳

digitalWrite(col1_cathode,LOW) );

digitalWrite(col2_cathode,LOW);

digitalWrite(col3_cathode,LOW);

digitalWrite(row1_anode,LOW);

digitalWrite(row2_anode,LOW);

digitalW rite(row3_anode,LOW);

}

無效循環(huán)()

{

display_LED(0x02,0x05,0x02);

}

/****顯示LED功能* ***/

/*用途:使用要顯示的十六進(jìn)制參數(shù)調(diào)用此函數(shù)

*注意:此函數(shù)控制陰極,在我的情況下控制列

*/

void display_LED (字符c1,字符c2,字符c3)

{

row_anode(c1);//用第一個(gè)十六進(jìn)制值調(diào)用row_anode

digitalWrite(col1_cathode,HIGH);//顯示第一列

delay(1);//等待一小段延遲,以便LED亮起1ms

digitalWrite(col1_cathode,LOW);//禁用第一列,然后繼續(xù)

row_anode(c2);//用第二個(gè)十六進(jìn)制值調(diào)用row_anode

digitalWrite(col2_cathode,HIGH);//顯示第二列

delay(1);//等待一小段延遲,以便LED點(diǎn)亮1ms。

digitalWrite(col2_cathode,LOW);//禁用第二列,然后繼續(xù)

row_anode(c3);//用第二個(gè)十六進(jìn)制值調(diào)用row_anode

digitalWrite(col3_cathode,HIGH);//顯示第三列

delay(1);//等待一小段延遲,以便LED亮起1ms

digitalWrite(col3_cathode,LOW);//禁用第三列,然后繼續(xù)操作

//(請(qǐng)注意,嘗試將1ms更改為100ms-1s,您會(huì)看到不同)

}

/****陰極(列)功能** **/

/*目的:取參數(shù)值并打開相關(guān)的引腳

*注意:由于使用Arduinos digitalWrite,必須設(shè)置引腳,

*但是,如果使用DDRx/PORTx,則可以僅應(yīng)用十六進(jìn)制值,用于設(shè)置端口上的引腳。

*/ void row_anode(char LEDs_on)

{

if(LEDs_on == 0x00)

{

digitalWrite(row1_anode,LOW );

digitalWrite(row2_anode,LOW);

digitalWrite(row3_anode,LOW);

}

else if(LEDs_on == 0x01)

{

digitalWrite(row1_anode,HIGH) ;

digitalWrite(row2_anode,LOW);

digitalWrite(row3_anode,LOW);

}

否則if(LEDs_on == 0x02)

{

digitalWrite(row1_anode,LOW);

digitalWrite(row2_anode,HIGH);

digitalWrite(row3_anode,LOW);

}

否則if(LEDs_on == 0x03)

{

digitalWrite(row1_anode,HIGH);

digitalWrite(row2_anode,HIGH);

digitalWrite(row3 _anode,LOW);

}

否則if(LEDs_on == 0x04)

{

digitalWrite(row1_anode,LOW);

digitalWrite(row2_anode,LOW);

digitalWrite(row3_anode ,HIGH);

}

else if(LEDs_on == 0x05)

{

digitalWrite(row1_anode,HIGH);

digitalWrite(row2_anode,LOW);

digitalWrite(row3_anode, HIGH);

}

否則if(LEDs_on == 0x06)

{

digitalWrite(row1_anode,LOW);

digitalWrite(row2_anode,HIGH);

digitalWrite(row3_anode,HIGH );

}

否則if(LEDs_on == 0x07)

{

digitalWrite(row1_anode,HIGH);

digitalWrite(row2_anode,HIGH);

digitalWrite(row3_anode,HIGH) ;

}

}

步驟6:3 x 3 LED示例-多個(gè)顯示器

擴(kuò)展示例代碼:

在此情況下,我通過設(shè)置Atmega328的寄存器實(shí)現(xiàn)了一個(gè)Timer。這允許1秒的計(jì)時(shí)器是異步的,因此不會(huì)造成顯示延遲。要設(shè)置寄存器,您確實(shí)需要查看Atmega328的數(shù)據(jù)表。

當(dāng)定時(shí)器中斷每1秒關(guān)閉一次時(shí),我將計(jì)數(shù)器增加3,以顯示數(shù)組中的下一組值。數(shù)組具有要用于顯示的值。

要查看示例,請(qǐng)查看附件。

步驟7:結(jié)論

我希望一旦您了解了復(fù)用的概念實(shí)際上非常簡單,該指令就很有幫助。

我計(jì)劃使另一個(gè)指令與移位寄存器進(jìn)行復(fù)用。除了一些額外的編碼,電路之外,它的復(fù)雜程度也沒有太多,而且您可以使用更少的引腳!

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 晶體管
    +關(guān)注

    關(guān)注

    77

    文章

    10014

    瀏覽量

    141470
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    NMUX1237模擬多路復(fù)用器/解復(fù)用器規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《NMUX1237模擬多路復(fù)用器/解復(fù)用器規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 02-20 16:21 ?0次下載
    NMUX1237模擬<b class='flag-5'>多路復(fù)用</b>器/解<b class='flag-5'>復(fù)用</b>器規(guī)格書

    CBT3251 FET多路復(fù)用器/多路分解器規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《CBT3251 FET多路復(fù)用器/多路分解器規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 02-11 17:24 ?0次下載
    CBT3251 FET<b class='flag-5'>多路復(fù)用</b>器/<b class='flag-5'>多路</b>分解器規(guī)格書

    CBT3253 FET多路復(fù)用器/多路分解器規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《CBT3253 FET多路復(fù)用器/多路分解器規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 02-11 17:23 ?0次下載
    CBT3253 FET<b class='flag-5'>多路復(fù)用</b>器/<b class='flag-5'>多路</b>分解器規(guī)格書

    多路復(fù)用模擬輸入應(yīng)用中使用ADS8411

    電子發(fā)燒友網(wǎng)站提供《在多路復(fù)用模擬輸入應(yīng)用中使用ADS8411.pdf》資料免費(fèi)下載
    發(fā)表于 10-22 09:32 ?0次下載
    在<b class='flag-5'>多路復(fù)用</b>模擬輸入應(yīng)用中使用ADS8411

    AM18xx引腳多路復(fù)用實(shí)用程序

    電子發(fā)燒友網(wǎng)站提供《AM18xx引腳多路復(fù)用實(shí)用程序.pdf》資料免費(fèi)下載
    發(fā)表于 10-14 11:17 ?0次下載
    AM18xx引腳<b class='flag-5'>多路復(fù)用</b>實(shí)用程序

    AM17xx引腳多路復(fù)用實(shí)用程序

    電子發(fā)燒友網(wǎng)站提供《AM17xx引腳多路復(fù)用實(shí)用程序.pdf》資料免費(fèi)下載
    發(fā)表于 10-14 10:22 ?0次下載
    AM17xx引腳<b class='flag-5'>多路復(fù)用</b>實(shí)用程序

    通過使用多路復(fù)用實(shí)現(xiàn)基于SPI的閃存擴(kuò)展

    電子發(fā)燒友網(wǎng)站提供《通過使用多路復(fù)用實(shí)現(xiàn)基于SPI的閃存擴(kuò)展.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 10:50 ?0次下載
    通過使用<b class='flag-5'>多路復(fù)用</b>器<b class='flag-5'>實(shí)現(xiàn)</b>基于SPI的閃存擴(kuò)展

    多路復(fù)用器應(yīng)用中的防護(hù)

    電子發(fā)燒友網(wǎng)站提供《多路復(fù)用器應(yīng)用中的防護(hù).pdf》資料免費(fèi)下載
    發(fā)表于 09-21 10:47 ?0次下載
    <b class='flag-5'>多路復(fù)用</b>器應(yīng)用中的防護(hù)

    基于帶寬的無源多路復(fù)用器>Ron

    電子發(fā)燒友網(wǎng)站提供《基于帶寬的無源多路復(fù)用器>Ron.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 10:46 ?0次下載
    基于帶寬的無源<b class='flag-5'>多路復(fù)用</b>器>Ron

    電源多路復(fù)用器基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《電源多路復(fù)用器基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 09-21 10:21 ?0次下載
    電源<b class='flag-5'>多路復(fù)用</b>器基礎(chǔ)知識(shí)

    為MCU擴(kuò)展選擇正確的多路復(fù)用

    電子發(fā)燒友網(wǎng)站提供《為MCU擴(kuò)展選擇正確的多路復(fù)用器.pdf》資料免費(fèi)下載
    發(fā)表于 09-18 11:52 ?0次下載
    為MCU擴(kuò)展選擇正確的<b class='flag-5'>多路復(fù)用</b>器

    如何使用多路復(fù)用器處理高壓共模應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《如何使用多路復(fù)用器處理高壓共模應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 11:34 ?0次下載
    如何使用<b class='flag-5'>多路復(fù)用</b>器處理高壓共模應(yīng)用

    多路復(fù)用器將取代繼電器應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《多路復(fù)用器將取代繼電器應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 10:05 ?0次下載
    <b class='flag-5'>多路復(fù)用</b>器將取代繼電器應(yīng)用說明

    多路復(fù)用器和信號(hào)開關(guān)詞匯表

    電子發(fā)燒友網(wǎng)站提供《多路復(fù)用器和信號(hào)開關(guān)詞匯表.pdf》資料免費(fèi)下載
    發(fā)表于 09-05 11:44 ?0次下載
    <b class='flag-5'>多路復(fù)用</b>器和信號(hào)開關(guān)詞匯表

    電源多路復(fù)用器電路設(shè)計(jì)指南

    電子發(fā)燒友網(wǎng)站提供《電源多路復(fù)用器電路設(shè)計(jì)指南.pdf》資料免費(fèi)下載
    發(fā)表于 07-13 09:33 ?2次下載
    主站蜘蛛池模板: 手机看片福利日韩 | 国产精品久久久久久久久免费观看 | 亚洲午夜久久久精品影院视色 | 美女被免网站在线视频 | 丁香花在线观看免费观看 | 日韩一级在线观看 | 国产免费午夜高清 | 成人免费看黄网站无遮挡 | 色婷婷精品综合久久狠狠 | 性网站免费 | 五月激情丁香 | 人人搞人人搞 | 色网站免费看 | 亚洲第二色 | 色综合天天 | 97影院理论午夜论不卡 | 在线观看黄的网站 | 特级毛片aaaa级毛片免费 | 天天搞天天色 | 1024手机最新手机在线 | 日本在线观看高清不卡免v 日本在线观看永久免费网站 | 久久国产乱子伦精品免 | 亚洲亚洲人成网站在线观看 | www.xxxx欧美 | h网站亚洲 | 午夜看大片 | 性欧美一区 | 天天爱天天做久久天天狠狼 | v视界影院最新地址 | 久青草国产高清在线视频 | 九九久久久久午夜精选 | 女上男下边吃奶边做视频成都 | 毛片网站在线 | 韩国特黄特色a大片免费 | 五月深爱婷婷 | 亚洲男人天堂2021 | 色婷婷六月丁香在线观看 | 国产a三级三级三级 | 日日爱网站 | 五月婷婷丁香久久 | 亚洲第一黄色网址 |