這篇文章來源于DevicePlus英語網(wǎng)站的翻譯稿。
調(diào)光器只是另一種類型的電位器。我們已經(jīng)探索過如何使用一個(gè)調(diào)光器來控制伺服,本指南將展示如何使用它來控制LED。由于LED(像大多數(shù)燈一樣)在通過它們的功率過大時(shí)會被燒壞,本文將能夠幫助您了解如何校準(zhǔn)電位計(jì)以限制 Arduino的電壓輸出。
LED在大多數(shù)項(xiàng)目中用于測試電路或指示某些部件是否正常工作。但是,在本項(xiàng)目中,我們想直接控制LED的亮度。我們將通過兩種方式來展示如何使用電位計(jì)直接控制通過LED的電壓,以及如何使用Arduino的編程來對其進(jìn)行間接控制。
首先,我們需要了解LED的工作原理。當(dāng)電流通過LED時(shí),它會發(fā)光。通過LED的電流量將決定它的亮度,但電流過大會燒壞LED。這就是為什么大多數(shù)使用LED的項(xiàng)目需要一個(gè)220歐姆的電阻來阻礙電流流通。
電位計(jì)也是一種電阻可變的電阻器。表盤轉(zhuǎn)的幅度越大,它給電路增加的電阻就越大。在接線環(huán)節(jié)的第一部分,我們將展示如何在不使用Arduino的情況下直接降低LED的亮度。然后,我們將調(diào)光器添加到電路中,以通過草圖對亮度進(jìn)行多的控制。
所需組件
我們在這里所進(jìn)行的項(xiàng)目的兩個(gè)版本都很簡單,所以您可能已經(jīng)具有所需的大部分組件了,尤其是如果您曾經(jīng)購買過基本的電子設(shè)備套件的話。無論哪種版本,您都需要以下組件以及電源:
Arduino Uno |
![]() |
Arduino IDE |
![]() |
一個(gè)面包板 |
![]() |
一個(gè)220 歐姆 電阻 |
![]() |
一個(gè)電位計(jì) 任何電位計(jì)都可以,但是如果您有滑塊電位計(jì)可以使用該電位計(jì),因?yàn)樵趯艄庹{(diào)暗時(shí)該電位計(jì)比表盤式更加自然 |
![]() |
Arduino和IDE僅用于該電路的第二種版本。但是,我們將使用它為第一個(gè)版本的面包板供電。您還可以使用類似這樣的電源模塊來添加與 Arduino供電效果相同的電源。請注意,如果您使用其他電源(例如9V電池),第一個(gè)電路可能無法正常工作,并且可能會燒壞您的LED。
接線
我們將要使用的第一個(gè)接線模型完全不需要Arduino,所以我們首先對第一個(gè)模型進(jìn)行接線。使用該電路,您將能夠看到電位計(jì)是如何直接影響其電阻的。首先,使用面板板將以下組件接線:
● 首先,將電源線和地線分別連接到面包板側(cè)面的導(dǎo)軌和Arduino上的5V和GND引腳。
● 將電源軌連接到電位計(jì)的一側(cè)引腳。
● 將電位計(jì)上的中心引腳連接到LED的長引腳。
● 將LED的短引腳連接到220歐姆電阻。
● 將電阻的另一端連接到接地軌。
為您的Arduino或電源模塊供電,LED將亮起。現(xiàn)在,您可以滑動電位計(jì),電路的電阻將發(fā)生變化,從而調(diào)整流經(jīng)LED的電流,使光線變得更亮或更暗。
這樣就用一種小規(guī)模電路展示了大多數(shù)調(diào)光電路的工作原理。電路中加入220歐姆電阻,防止電流過載燒壞LED燈。連接好電阻后,電位計(jì)將會在可調(diào)范圍內(nèi)對電流進(jìn)行進(jìn)一步限制。
然而,直接修改電路中的電流并不是調(diào)節(jié)燈光亮度的唯一方法。為了展示另一種方案,我們將擴(kuò)展電路以讀取電位計(jì)的電阻,并使用草圖為LED分配一個(gè)值(我們將在下一節(jié)解釋)。
完成第一個(gè)版本的電路后,請進(jìn)行以下更改:
● 將LED的長端插入Arduino上的引腳6(而不是之前電路中電位計(jì)的中心引腳)。
● 將電位計(jì)的中心引腳連接到Arduino的引腳A0。
● 將電位計(jì)的第三個(gè)引腳連接到接地軌(第一個(gè)引腳仍然連接到電源軌)。
在該電路中,電位計(jì)的電阻不直接影響LED的亮度,而是被Arduino讀取為模擬值。然后,可以在草圖中對該值進(jìn)行縮放和調(diào)整,我們將在下文中進(jìn)行說明。
代碼
首先,這是您可以直接上傳到Arduino中的完整代碼。它的功能幾乎與原始電路相同,只是添加了更多的軟件控制。
int blueLED = 6;
int dimmerPIN = A0;
int dimmerValue = 0;
int ledValue = 0;
void setup() {
pinMode(dimmerPIN, INPUT);
pinMode(blueLED,OUTPUT);
Serial.begin(9600);
}
void loop(){
dimmerValue = analogRead(dimmerPIN);
ledValue = map(dimmerValue, 0, 1023, 0, 255);
analogWrite(blueLED, ledValue);
}
大部分代碼都是相當(dāng)基礎(chǔ)的——變量聲明、分配引腳等等,但是我們需要注意loop()部分中的三行。
dimmerValue = analogRead(dimmerPIN);
ledValue = map(dimmerValue, 0, 1023, 0, 255);
analogWrite(blueLED, ledValue);
這里的第一行用于從引腳A0讀取電位計(jì)的值,該值的測量范圍為0到1023。我們可以將此值轉(zhuǎn)換為用于控制LED的引腳6的輸出。該代碼的第二行用于將電位計(jì)的值重新映射到0到255的范圍內(nèi)(PWM引腳的輸出范圍)。最后一行代碼用于將該值寫入引腳6。
但是,我們可以通過調(diào)整第二行的最后兩個(gè)數(shù)字來設(shè)置最小或最大亮度。第二個(gè)0用于設(shè)施最小亮度級別(在這種情況下將完全熄滅)。提高此級別之后,即使您將調(diào)光器調(diào)到最低,燈光也會保持您所設(shè)置的最低級別的亮度。同樣,此行中的255是設(shè)置的最高級別。如果您想降低最大亮度級別—畢竟LED可以變得非常亮—降低這個(gè)數(shù)字可以保證即使一直將亮度調(diào)高燈光也不會變得太亮。
在此特定示例中,將0到5V范圍內(nèi)的值(取決于您設(shè)置的限制)寫入LED引腳輸出,并且使用220歐姆電阻進(jìn)一步限制通過LED的電流。當(dāng)您處理更大、更復(fù)雜的燈光設(shè)備(如LED燈條、燈泡或任何電壓高于Arduino可以輸出的5V電壓的設(shè)備)時(shí),請牢記這一點(diǎn)。
DevicePlus 編輯團(tuán)隊(duì)
設(shè)備升級版適用于所有熱愛電子和機(jī)電一體化的人。
審核編輯黃宇
-
led
+關(guān)注
關(guān)注
242文章
23376瀏覽量
663452 -
調(diào)光器
+關(guān)注
關(guān)注
4文章
147瀏覽量
23414
發(fā)布評論請先 登錄
相關(guān)推薦
調(diào)光器(Dimmer Switch)調(diào)光理論和原理是什么
調(diào)光器的原理是什么?為什么需要調(diào)光器?
TRIAC 調(diào)光器(正向相位控制調(diào)光器) 的工作原理
![TRIAC <b class='flag-5'>調(diào)光器</b>(正向相位<b class='flag-5'>控制</b><b class='flag-5'>調(diào)光器</b>) 的工作原理](https://file1.elecfans.com//web2/M00/A5/7A/wKgZomUMOJuABDC2AABaRAPz5f4877.jpg)
利用傳統(tǒng)TRIAC調(diào)光器對LED進(jìn)行調(diào)光
![利用傳統(tǒng)TRIAC<b class='flag-5'>調(diào)光器</b>對LED進(jìn)行<b class='flag-5'>調(diào)光</b>](https://file1.elecfans.com//web2/M00/A5/BB/wKgZomUMOdSACsgAAAA3xQSe3DU580.jpg)
評論