這篇文章來源于DevicePlus.com英語網站的翻譯稿。
本文最初發布在deviceplus.jp網站上,而后被翻譯成英語。
Devices Plus的電子制作系列文章已經形成了一個龐大的體系。讀者們也很喜歡根據我們的文章制作一些自己的作品。
然而,最近一位讀者表示,“雖然我可以做出作品,但是我并沒有真正掌握背后的原理。”確實,談到電力、電子、電路和程序等內容,有些東西并不是那么簡單,有時很難理解背后的基本原理。甚至我們編輯部的人員有時也會感到頭疼!
此次的分享嘉賓是伊藤尚未先生,一位媒體藝術家和作家,以講解“更深層次的原理”而聞名。本文將以閃爍LED燈項目為例講述一些基本原理。要學的東西很多,所以我們直接學習最為重要的部分。當然,學完原理之后,我們還要理論聯系實際,學以致用。
[目錄]
前言
從閃爍LED學起
歐姆定律
Raspberry Pi的GPIO
通過晶體管控制LED
關于閃爍LED的更多知識
閃爍LED項目開發
如何應用我們的設計?
前言
在過去幾年中,隨著電子行業的發展,微控制器變得非常流行。現在,我們可以使用緊湊的小型器件來感知和控制各種事物,包括光、聲音、運動和圖像,這感覺很神奇。我小時候的未來夢想正在慢慢實現,這令我感慨萬千。
電子制作的內容已經發生了變化,早已不再是用晶體管制作收音機的時代了。進入媒體藝術領域以后,我把電子作品視為工具和材料,就像畫筆和顏料,幫助我在藝術領域更充分地表現自己。藝術的表達方式有很多種,而另一方面,愛好動手制作的這類人被稱為“創客”。當我看到很多地方都在舉辦相關活動時,我感慨“興趣愛好”作為一種亞文化的概念已經發生了變化。
現在,我喜歡用Raspberry Pi進行電子設計,人們可以輕松訪問該系統的各種資源。其操作系統還安裝了多種應用程序,而且簡單易用。
本文使用的Raspberry Pi 3 Model B+
從閃爍LED學起
“閃爍LED”,顧名思義,您會在電路中看到LED燈交替點亮和熄滅。當然,讓LED燈閃爍很簡單,我們可以利用晶體管和電容等元件重現電路的構建。順便說一下,下圖這個電路是在我的電子作品中經常使用的一種電路,叫做非穩態多諧振蕩器電路。該電路由兩個晶體管、兩個電容、四個電阻和一個LED組成。這些器件焊接在電路板上,用干電池供電。
電路示例:非穩態多諧振蕩器
作品示例:鐵路標志
在該電路中,LED燈會以大約一秒的間隔閃爍。如果想改變燈的閃爍速度,我們得改變電容的容值和電阻值。要加快閃爍速度,就要減小的電容容值。
我們可以通過微控制器實現這個調整。
通過Raspberry Pi的GPIO輸出點亮LED非常簡單且易于處理。這方面內容很多書籍中都有介紹,而且市面上有許多功能模塊化的專用擴展板,都能提供相關詳細信息。但是,他們并沒有深入探討構建電子電路所需的一些最基本的重要知識,所以讓我們在這里回顧一下。請回憶一下小學和初中科技課本上學到的知識。
歐姆定律
歐姆定律的描述為:電流=電壓/電阻。我學習這個定律的時候,該公式被寫成I = E/R。現在的公式是A = V/Ω,對吧?
貌似現在的教科書用的基本都是這個公式,“A(安培)= V(伏特)/Ω(歐姆)”強調的是單位本身,可能更直觀易懂。
您可能會在參考書中看到這樣的圖,但是請注意自己對這個公式的記憶方法。對了,我有一個動物園的朋友,他是這樣記憶這個公式的:
“地平線將地球分為上下兩部分,天空中有海鷗,海中有魷魚和章魚”
現在,我們就以電池點亮LED為例來說明歐姆定律的實際應用。您可以將LED連接到電源(此處為電池),但由于LED是一種二極管,因此電流有一個方向:將A(陽極)連接到電源正極,將K(陰極)連接到電源負極。
這個連接方向雖然正確,但實際上如果這樣直接連接,LED可能會損壞。為避免損壞器件,流過器件的電流大小必須正確。
正確的電流值請參考器件的額定參數表(技術規格書)。我們以一個參數為3.5V/20mA的白光LED為例,這種電參數可以解釋為“如果電壓電流位于這個安全范圍內,那么不會損壞”。換句話說,“如果電參數超出這個范圍,它可能會損壞。”
因此,適用于該LED的最佳電壓為3.5V,流過的最佳電流為0.02A。
首先,如果電壓為3.5V,就得考慮使用電壓更高的電源,比如一個由四節干電池組成的6V電源。嚴格來說,一節新電池的電壓可能接近1.6V。當然,目前我們先按照四節電池總電壓為6V進行討論,稍后再介紹全新電池的電壓情況。
我想把6V中的3.5V電壓施加到LED上,那么剩下的2.5V就得施加到另一個元器件上。這可以通過分壓來實現,因此LED需要串聯一個負載,一個簡單的電阻器即可。
我們來回想一下微型燈泡串聯和并聯的實驗情況,它們的亮度不一樣。負載(微型燈泡)串聯時,電路電壓分配到兩個微型燈泡上,負載加倍,所以流過電路的電流為1/2,微型燈泡較暗。
微型燈泡存在個體差異(比如疲勞程度),這會導致負載有所不同
分壓之后,每個元件得到一部分電壓。現在,我們返回來討論LED。由于LED是半導體,我們不將其視為負載。因此即使是分壓電路,電路中的電流也得通過除LED以外的元件進行計算。
流過電路的電流應該是20mA,那么我們應該使用多大的電阻呢?這可以使用歐姆定律計算。因為“電阻=電壓/電流”,2.5V/0.02A=125Ω,所以LED應串聯一個125Ω的電阻。電路電壓由LED和電阻器分壓。
然而,市場上并沒有阻值是125Ω的電阻。最接近的電阻阻值為120Ω和130Ω。如果選用120Ω,那么根據歐姆定律,電路的電流為25/120 = 0.0208333。這個值超過了20mA,因此我們應選用130Ω的電阻。電流不超過20mA就可以了。
現在,我們討論使用全新干電池的情況。如果每節電池的電壓是1.6V,那么總電壓就是6.4V。如果電阻上的電壓為2.9V,那么經過計算其阻值為145Ω。所以,選用一個150Ω的電阻足夠了。當然,電阻越大電路越安全,但是LED會變的更暗。請根據自己的設計環境選擇適當的阻值。該電阻被稱為限流電阻,因為它的作用就是控制流過電路的電流。
Raspberry Pi的GPIO
Raspberry Pi有許多稱為GPIO的輸入/輸出端口,可用于控制外部設備。我沒有描述這方面的細節,那我該如何解釋電信號是如何產生的呢?
比如,用這個端子能否點亮LED?
當然可以!然而,如前所述,不同LED的額定參數不同。比如,如果我們要點亮一個紅色2.0V 20mA的LED,需要使用一個限流電阻。GPIO的輸出電壓為3.3V,那么分給限流電阻的電壓為1.3V,通過的電流為20mA。不過,Raspberry Pi的GPIO最大只能提供16mA的電流,根據歐姆定律,限流電阻應為“1.3V/0.016 = 81.25Ω”,所以我使用了100Ω電阻。雖然這樣無法達到該LED的額定性能,但是足以點亮它。您可以很容易地在面包板上做一下這個實驗。
實現LED燈閃爍最好的方法還是使用Scratch。
聲明GPIO,將GPIO4設為輸出,然后向GPIO4輸出ON (Hi)。
如果使用左圖程序,LED會一直處于點亮狀態所以要用OFF(low)來關閉它
如果按照上面的左圖程序組裝,每秒最多可開關10次
現在,我們已經設法制作出了閃爍的LED燈,但是,如前所述,Raspberry Pi的GPIO的輸出電流存在限制。如果您想使用白光或藍光3.5V LED,或者連接多個LED(想要更亮一些),或者使用大功率、超亮LED,怎么辦呢?此時,單個GPIO輸出很難實現這種功能。因此,我們需要使用另一個電源供電,并構建一個單獨的電路來驅動LED。LED可以使用專用LED驅動器進行驅動,但是本節介紹一種使用晶體管的簡單驅動方法。
通過晶體管控制LED
本文使用的是NPN型晶體管2SC1815(目前與2SC1815L、KSC1815等兼容)。晶體管的作用是放大和開關。
我們給基極一個輸入,電流就會從集電極流向發射極。此時,基極的輸入信號就被放大成一個較大的電流信號。這個過程稱為開關。換句話說,模擬處理的過程是放大,數字處理的過程是開關。由于這是通過Raspberry Pi操作的,我們可以將其看成是一個開關功能。
NPN晶體管符號及外形示例
NPN晶體管的基極得到一個正輸入后,集電極和發射極就會導通。如果是PNP型晶體管,就需要一個負輸入。
根據2SC1815的額定參數表,流過集電極的電流可達150mA。晶體管產品是根據放大系數分級的,在Y級別中,放大系數為120至240。我們假設放大系數為200,要達到150mA的集電極電流,那么流過基極的電流應該為0.75mA。這意味著GPIO只需要輸出一個很小的電流。
這里我們連接了一個10kΩ電阻,作為基極的輸入。LED采用白光3.5V 20mA,并通過外部干電池供電,因此電路的電壓為6V。根據前文的討論,我們還給LED串聯了一個150Ω的限流電阻。
我們按照下圖連接好各個器件。
現在,我們把晶體管基極連接到Raspberry Pi的GPIO。首先,我們用面包板進行實驗。
剩下的就需要寫程序了。但是,您可以像在Scratch中一樣使用之前的程序。當然,如果所連接的GPIO引腳變了,那么應該在程序中更改引腳編號。
基本步驟如下,聲明使用GPIO,設置該引腳輸出、輸入等,然后輸出ON(Hi)或OFF(Low)。由于正輸入通過ON (Hi) 輸出施加到晶體管的基極,因此集電極和發射極之間導通,LED點亮。
程序中可能會描述PullUp和PullDown,但這里沒有必要,因為引腳已經連接了一個10kΩ電阻到晶體管的基極,作為下拉電阻使用。換句話說,這是硬件設置。
關于閃爍LED的更多知識
如何才能讓LED燈閃爍呢?這并不難,因為我們可以用程序來控制ON(Hi)輸出或OFF(Low)輸出。想像一下,第一個輸出是OFF (Low),然后輸出ON (Hi),并保持1秒,然后輸出OFF (Low),也保持1秒,然后再次輸出ON(Hi),只要這樣反復即可。那么,我們就會看到LED燈在閃爍。這個Scratch程序例子就是前面文中提到的那個示例。
閃爍LED項目開發
我們已經完成了LED燈的閃爍設計,現在,讓我們來嘗試控制多個LED。讓兩個LED燈交替閃爍的方法如下。該電路利用了兩個GPIO,每個GPIO驅動一個帶晶體管的LED。
這是我制作的兩個晶體管驅動電路。電路很簡單,但是如果您在面包板上組裝,電線會很復雜,所以要注意走線情況。Scratch程序的工作原理如下。
我用的是GPIO3和GPIO4。4先點亮,1秒后關閉4,然后3立即點亮,1秒后關閉3,以此類推。重復10次,如果您想一直重復,應該使用“all”模塊。
通過此應用,LED的數量可以根據可用GPIO數量增加,4個或10個。它們不僅可以順序閃爍,而且可以同時全部閃爍,甚至還可以反向閃爍,具體取決于您的程序。
如何應用我們的設計?
順便說一句,如果說讓LED點亮或閃爍只是實驗、編程實踐和電子制作培訓程度的事,那么,最大的問題是如何應用我們的設計。當然,作為圣誕樹的裝飾或者照明是個不錯的選擇。然而,光效不僅僅意味著閃亮,還涉及比如投射陰影、混合顏色、反射和折射、光譜和偏振等各種建模元素。
您還可以根據設備使用光效來創作藝術作品。
這是我的作品。
讓埴輪【日本的一種陶俑-譯注】舞動起來(2010)(C)伊藤尚未
該設備的這一部分依次點亮六個LED。在這里,六個埴輪的影子通過LED燈投射到墻上,但每個影子都投射在同一個位置,所以影子的形狀=身體姿勢。換句話說,陰影形成了動畫。
我用現代技術將靜止的陶土造型創作成了一個富有表現力的藝術品,并取名為“舞動的埴輪”。當然,這個作品需要很長時間才能完成。
所有這一切的基礎是閃爍LED燈,但是正如您所見,當您知道如何應用它們時,您可以做更多的事情。當然,您不一定非得要創作這種藝術作品,但偶爾發揮創意很有趣,不是嗎?
總結
電子設計很有趣,但是除了構建設備,您還可以做些什么?您怎樣才能讓它更有趣?其實您可以考慮不同的應用場景和表現方式,創作出更加復雜和有趣的內容。然后,您就能百尺竿頭更進一步。
DevicePlus 編輯團隊
設備升級版適用于所有熱愛電子和機電一體化的人。
審核編輯黃宇
-
led
+關注
關注
242文章
23153瀏覽量
658615 -
晶體管
+關注
關注
77文章
9641瀏覽量
137876 -
歐姆定律
+關注
關注
4文章
172瀏覽量
19236 -
GPIO
+關注
關注
16文章
1196瀏覽量
51934 -
Raspberry Pi
+關注
關注
2文章
557瀏覽量
22165
發布評論請先 登錄
相關推薦
評論