chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

步驟1:晶體管背景

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

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

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

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

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

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

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

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

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

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

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

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

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

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

多路復(fù)用與將LED直接連接至引腳的真正不同之處在于控制接地的方式。如果僅將LED連接到引腳,則LED的陰極通常連接到公共接地。通過多路復(fù)用電路,微控制器控制接地的可用性。這使您可以禁用整個行或列,因為該電路由于沒有接地而無法完成。

在任何情況下,這都是理想的電路,但是對于陽極,您不一定需要一個晶體管。如果您想使用微控制器并從中汲取電流,則可以直接將引腳連接到LED的陽極。但是,這并不理想,因為您從微控制器汲取電流,就像我在步驟1中所說的那樣,微控制器具有最大的電流供應(yīng)。陽極不一定需要一個晶體管,但陰極必須有一個。您仍然需要啟用/禁用地面才能使多路復(fù)用工作。

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

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

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

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

最簡單的方法是使用兩個函數(shù),其中一個函數(shù)重復(fù)調(diào)用另一個函數(shù)。由于在這種情況下行是列的“主要”,我們將有兩個函數(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)。然后將某個行晶體管設(shè)置為高電平。我的延遲很短,所以LED亮了1ms。如果將其更改為1000毫秒,您實際上可以看到每個更改。這就是為什么您不能在程序的其余部分中使用延遲的原因。從那里關(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_,那么編寫代碼實際上比使用digitalWrites簡單。在大多數(shù)情況下,我將vale設(shè)置為十六進制值,因此,如果我輸入0x03,這意味著LED 1和3在2處于關(guān)閉狀態(tài)時都打開。

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

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

示例代碼:

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

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

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

通過: Marty Peltz

日期:2013年7月19日

目的:使用多路復(fù)用以3x3模式控制9個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功能* ***/

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

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

*/

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

{

row_anode(c1);//用第一個十六進制值調(diào)用row_anode

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

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

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

row_anode(c2);//用第二個十六進制值調(diào)用row_anode

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

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

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

row_anode(c3);//用第二個十六進制值調(diào)用row_anode

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

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

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

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

}

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

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

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

*但是,如果使用DDRx/PORTx,則可以僅應(yīng)用十六進制值,用于設(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示例-多個顯示器

擴展示例代碼:

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

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

要查看示例,請查看附件。

步驟7:結(jié)論

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

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

責(zé)任編輯:wv

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

    關(guān)注

    78

    文章

    10396

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    德州儀器 TPS211x 系列電源多路復(fù)用器:特性、應(yīng)用與設(shè)計要點

    工程師們提供了一種高效、可靠的解決方案,可實現(xiàn)兩個電源之間的無縫切換。本文將詳細介紹 TPS211x 系列的特性、應(yīng)用場景以及設(shè)計要點。 文件下載: tps2110.pdf 一、TPS211x 系列概述 TPS211x 系列包括 TPS2110、TPS2111 等型號,是一種雙輸入、單輸出的電源
    的頭像 發(fā)表于 03-01 09:15 ?183次閱讀

    TPS22981:3.3 - 18V Thunderbolt? 電源多路復(fù)用器設(shè)計指南

    TPS22981:3.3 - 18V Thunderbolt? 電源多路復(fù)用器設(shè)計指南 在電子設(shè)備的電源管理領(lǐng)域,高效且可靠的電源切換和電流控制至關(guān)重要。TI 的 TPS22981 電源多路復(fù)用
    的頭像 發(fā)表于 02-28 17:25 ?1027次閱讀

    MAX4315:高速低功耗視頻多路復(fù)用放大器的設(shè)計指南

    MAX4310 - MAX4315:高速低功耗視頻多路復(fù)用放大器的設(shè)計指南 在視頻信號處理和切換應(yīng)用中,選擇合適的多路復(fù)用放大器至關(guān)重要。今天我們就來深入探討一下Maxim公司的MAX4310
    的頭像 發(fā)表于 01-28 16:40 ?381次閱讀

    高速三通道2:1多路復(fù)用器AD8185的特性與應(yīng)用

    高速三通道2:1多路復(fù)用器AD8183/AD8185的特性與應(yīng)用 在當(dāng)今高速電子系統(tǒng)設(shè)計中,對于能夠實現(xiàn)快速信號切換和處理的高性能多路復(fù)用器的需求日益增長。AD8183和AD8185作為Analog
    的頭像 發(fā)表于 01-24 15:10 ?564次閱讀

    深入解析CD405xB系列:多功能模擬多路復(fù)用器與解復(fù)用

    深入解析CD405xB系列:多功能模擬多路復(fù)用器與解復(fù)用器 在電子設(shè)計的廣闊領(lǐng)域中,模擬多路復(fù)用器與解復(fù)用器是實現(xiàn)信號選擇和分配的關(guān)鍵組件。
    的頭像 發(fā)表于 01-16 13:55 ?249次閱讀

    SN74CBTLV3251:高速FET多路復(fù)用器/解復(fù)用器的詳細剖析

    SN74CBTLV3251:高速FET多路復(fù)用器/解復(fù)用器的詳細剖析 作為電子工程師,在設(shè)計電路時,選擇合適的多路復(fù)用器/解復(fù)用器至關(guān)重要。今天,我們就來深入了解一下德州儀器(TI
    的頭像 發(fā)表于 01-16 11:30 ?208次閱讀

    探索SN74CBT16214C:高性能12位1-of-3 FET多路復(fù)用器/解復(fù)用

    探索SN74CBT16214C:高性能12位1-of-3 FET多路復(fù)用器/解復(fù)用器 在電子設(shè)計領(lǐng)域,選擇合適的多路復(fù)用器/解復(fù)用器對于實現(xiàn)
    的頭像 發(fā)表于 01-16 10:15 ?278次閱讀

    深入解析SN74HCS153-Q1:汽車級雙4選1多路復(fù)用

    深入解析SN74HCS153-Q1:汽車級雙4選1多路復(fù)用器 在電子設(shè)計領(lǐng)域,多路復(fù)用器是實現(xiàn)數(shù)據(jù)選擇和路由的關(guān)鍵組件。今天我們要詳細探討的是德州儀器(TI)的SN74HCS153-Q1,一款專為
    的頭像 發(fā)表于 01-13 14:00 ?310次閱讀

    探索TMUX6208與TMUX6209:高性能模擬多路復(fù)用器的卓越之選

    探索TMUX6208與TMUX6209:高性能模擬多路復(fù)用器的卓越之選 在電子工程師的日常設(shè)計工作中,選擇合適的模擬多路復(fù)用器至關(guān)重要。德州儀器(Texas Instruments
    的頭像 發(fā)表于 01-13 11:15 ?255次閱讀

    Texas Instruments TMUX7208和TMUX7209:高精度多路復(fù)用器的卓越之選

    Texas Instruments TMUX7208和TMUX7209:高精度多路復(fù)用器的卓越之選 在電子設(shè)計的領(lǐng)域中,高精度多路復(fù)用器是實現(xiàn)信號選擇和切換的關(guān)鍵組件。Texas
    的頭像 發(fā)表于 01-13 10:55 ?234次閱讀

    探索TMUX405x系列多路復(fù)用器:設(shè)計與應(yīng)用指南

    探索TMUX405x系列多路復(fù)用器:設(shè)計與應(yīng)用指南 在電子設(shè)計領(lǐng)域,多路復(fù)用器是一種基礎(chǔ)且關(guān)鍵的組件,它能在多個信號源中進行切換,常用于信號的多路選擇與傳輸。今天,我們聚焦于TI(德州儀器)推出
    的頭像 發(fā)表于 01-13 09:30 ?350次閱讀

    SN74AHCT157-Q1:高性能CMOS多路復(fù)用器的設(shè)計與應(yīng)用解析

    SN74AHCT157-Q1:高性能CMOS多路復(fù)用器的設(shè)計與應(yīng)用解析 在電子設(shè)計領(lǐng)域,多路復(fù)用器是實現(xiàn)數(shù)據(jù)選擇和路由的關(guān)鍵元件。今天,我們來深入探討德州儀器(TI)的SN74AHCT157-Q1
    的頭像 發(fā)表于 01-12 16:30 ?225次閱讀

    SN74ACT153:雙4選1數(shù)據(jù)選擇器/多路復(fù)用器的詳細剖析

    SN74ACT153:雙4選1數(shù)據(jù)選擇器/多路復(fù)用器的詳細剖析 在電子設(shè)計領(lǐng)域,數(shù)據(jù)選擇器和多路復(fù)用器是常見且關(guān)鍵的組件,它們能夠高效地實現(xiàn)數(shù)據(jù)的選擇和路由。今天我們要深入探討的是德州儀器(TI
    的頭像 發(fā)表于 01-12 13:45 ?432次閱讀

    模擬多路復(fù)用器CBMG708/709#芯片 #國產(chǎn)替代 #國產(chǎn)芯片

    多路復(fù)用
    芯佰微電子
    發(fā)布于 :2025年11月18日 09:28:24

    是否可以以某種方式利用 VBUS_CTRL 引腳來控制 NMOS 晶體管或模擬比較器?

    數(shù)據(jù)通信(通過將其連接到外部應(yīng)用程序 MCU)。 我們想到的解決方案是使用 USB 數(shù)據(jù)多路復(fù)用器。 我們正在尋找一種方法,一旦 USB PD / BC1.2 協(xié)商完成,就可以自動切換 D+ 和 D+
    發(fā)表于 05-19 06:14