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

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

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

如何使用Arduino對電源LED進(jìn)行自動(dòng)強(qiáng)度控制

科技觀察員 ? 來源:circuitdigest ? 作者:潘卡伊·卡特里 ? 2022-11-14 16:58 ? 次閱讀

“做一個(gè)明亮的火花,把燈關(guān)到天黑!” 有時(shí)我們忘記關(guān)燈和浪費(fèi)電力,你一定也看到白天打開了路燈。我們已經(jīng)在黑暗探測器上構(gòu)建了一些電路,如果外面很亮,燈會(huì)自動(dòng)關(guān)閉,如果外面很暗,燈會(huì)自動(dòng)打開。但是這一次,在這個(gè)電路中,我們不僅根據(jù)光照條件打開和關(guān)閉燈,而且還根據(jù)外部光線條件改變光的強(qiáng)度。在這里,我們將LDR和PWM概念與Arduino一起使用,以自動(dòng)降低或增加1瓦功率LED的亮度。

基本上,PWM是指脈寬調(diào)制,通過PWM引腳的輸出信號將是模擬信號,并從Arduino獲取為數(shù)字信號。它使用數(shù)字波的占空比來生成信號的順序模擬值。并且,該信號進(jìn)一步用于控制電源LED的亮度。

所需材料

Arduino UNO

LDR

電阻器(510,100k歐姆)

電容器 (0.1uF)

晶體管 2N2222

1 瓦電源指示燈

連接線

面包板

電路圖

pYYBAGNyA1KAONJqAADdS6TQHxQ427.png

代碼和說明

最后給出了自動(dòng)LED調(diào)光器的完整Arduino代碼。

在下面的代碼中,我們定義了PWM引腳和要在代碼中使用的變量。

int pwmPin = 2; // assigns pin 12 to variable pwm

int LDR = A0; // assigns analog input A0 to variable pot

int c1 = 0; // declares variable c1

int c2 = 0; // declares variable c2

現(xiàn)在,在循環(huán)中,我們首先使用命令“analogRead(LDR)”讀取值,然后將模擬輸入保存到名為“value”的變量中。通過進(jìn)行一些數(shù)學(xué)計(jì)算,我們正在生成PWM信號。在這里,我們僅在模擬值小于500時(shí)才使用PWM控制光的強(qiáng)度,如果超過500,則完全關(guān)閉燈。

int value = analogRead(LDR);

Serial.println(value);

c1= value;

c2= 500-c1; // subtracts c2 from 1000 ans saves the result in c1

if (value < 500)

{

digitalWrite(pwmPin, HIGH);

delayMicroseconds(c2);

digitalWrite(pwmPin, LOW);

delayMicroseconds(c1);

}

if (value > 500)

{

digitalWrite(2,LOW);

}

}

它如何自動(dòng)控制光強(qiáng)度:

根據(jù)電路圖,我們使用LDR和100k電阻制作了分壓器電路。分壓器輸出饋送到 Arduino 的模擬引腳。模擬引腳感測電壓并為Arduino提供一些模擬值。模擬值根據(jù)LDR的電阻而變化。因此,如果LDR上暗,則其電阻增加,因此電壓值(模擬值)減小。因此,模擬值改變PWM輸出或占空比,并且占空比進(jìn)一步與功率LED的光強(qiáng)度成正比。所以LDR上的光會(huì)自動(dòng)控制電源LED的強(qiáng)度。下面是這將如何工作的流程圖,向上箭頭符號表示“增加”,向下箭頭符號表示“減少”。

光強(qiáng)度(在 LDR 上) ↓ - 電阻↑ - 模擬引腳電壓↓ - 占空比 (PWM)↑ -功率指示燈亮度↑

如果其外部完全亮起(當(dāng)模擬值增加超過 500 時(shí)),電源 LED 將熄滅。

這就是使用 LDR 自動(dòng)控制光強(qiáng)度的方法。

int pwmPin = 2; // assigns pin 12 to variable pwm

int pot = A0; // assigns analog input A0 to variable pot

int c1 = 0; // declares variable c1

int c2 = 0; // declares variable c2


void setup() // setup loop

{

pinMode(pwmPin, OUTPUT);

pinMode(pot, INPUT);

Serial.begin(9600);

}


void loop()

{


int value = analogRead(pot);

Serial.println(value);

c1= value;

c2= 500-c1; // subtracts c2 from 1000 ans saves the result in c1



if (value < 500)

{

digitalWrite(pwmPin, HIGH);

delayMicroseconds(c2);

digitalWrite(pwmPin, LOW);

delayMicroseconds(c1);

}


if (value > 500)

{

digitalWrite(2,LOW);

}



}

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

    關(guān)注

    242

    文章

    23308

    瀏覽量

    661556
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5193

    瀏覽量

    214217
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6472

    瀏覽量

    187327
收藏 人收藏

    評論

    相關(guān)推薦

    手工制作紅外遙控LED照明燈 可自動(dòng)調(diào)節(jié)光度

    1.Arduino可以通過光照傳感器檢測外界光照強(qiáng)度,對LED照明燈進(jìn)行自動(dòng)調(diào)光; 2.Ardui
    的頭像 發(fā)表于 04-27 09:44 ?1.9w次閱讀
    手工制作紅外遙控<b class='flag-5'>LED</b>照明燈 可<b class='flag-5'>自動(dòng)</b>調(diào)節(jié)光度

    LED使用PCB上制作的arduino進(jìn)行控制

    電子發(fā)燒友網(wǎng)站提供《LED使用PCB上制作的arduino進(jìn)行控制.zip》資料免費(fèi)下載
    發(fā)表于 08-02 10:56 ?0次下載
    <b class='flag-5'>LED</b>使用PCB上制作的<b class='flag-5'>arduino</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>控制</b>

    LED燈條的控制強(qiáng)度

    電子發(fā)燒友網(wǎng)站提供《LED燈條的控制強(qiáng)度.zip》資料免費(fèi)下載
    發(fā)表于 08-02 10:46 ?5次下載
    <b class='flag-5'>LED</b>燈條的<b class='flag-5'>控制</b><b class='flag-5'>強(qiáng)度</b>

    使用Arduino控制帶開關(guān)的LED

    電子發(fā)燒友網(wǎng)站提供《使用Arduino控制帶開關(guān)的LED.zip》資料免費(fèi)下載
    發(fā)表于 11-11 09:28 ?0次下載
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>帶開關(guān)的<b class='flag-5'>LED</b>

    使用Arduino和Android控制遠(yuǎn)程LED

    電子發(fā)燒友網(wǎng)站提供《使用Arduino和Android控制遠(yuǎn)程LED.zip》資料免費(fèi)下載
    發(fā)表于 11-16 10:05 ?0次下載
    使用<b class='flag-5'>Arduino</b>和Android<b class='flag-5'>控制</b>遠(yuǎn)程<b class='flag-5'>LED</b>

    使用帶有代碼的Arduino UNO進(jìn)行LED漸變

    電子發(fā)燒友網(wǎng)站提供《使用帶有代碼的Arduino UNO進(jìn)行LED漸變.zip》資料免費(fèi)下載
    發(fā)表于 11-21 10:21 ?0次下載
    使用帶有代碼的<b class='flag-5'>Arduino</b> UNO<b class='flag-5'>進(jìn)行</b><b class='flag-5'>LED</b>漸變

    通過LDR傳感器根據(jù)周圍的光強(qiáng)度自動(dòng)改變LED強(qiáng)度

    電子發(fā)燒友網(wǎng)站提供《通過LDR傳感器根據(jù)周圍的光強(qiáng)度自動(dòng)改變LED強(qiáng)度.zip》資料免費(fèi)下載
    發(fā)表于 11-23 11:35 ?0次下載
    通過LDR傳感器根據(jù)周圍的光<b class='flag-5'>強(qiáng)度</b><b class='flag-5'>自動(dòng)</b>改變<b class='flag-5'>LED</b><b class='flag-5'>強(qiáng)度</b>

    使用Arduino和Python Tkinter進(jìn)行RGB Led控制

    電子發(fā)燒友網(wǎng)站提供《使用Arduino和Python Tkinter進(jìn)行RGB Led控制.zip》資料免費(fèi)下載
    發(fā)表于 11-30 12:00 ?0次下載
    使用<b class='flag-5'>Arduino</b>和Python Tkinter<b class='flag-5'>進(jìn)行</b>RGB <b class='flag-5'>Led</b><b class='flag-5'>控制</b>

    Arduino控制的RGB LED燈條

    電子發(fā)燒友網(wǎng)站提供《Arduino控制的RGB LED燈條.zip》資料免費(fèi)下載
    發(fā)表于 12-29 11:39 ?4次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>的RGB <b class='flag-5'>LED</b>燈條

    Arduino手勢控制LED亮度

    電子發(fā)燒友網(wǎng)站提供《Arduino手勢控制LED亮度.zip》資料免費(fèi)下載
    發(fā)表于 01-31 14:47 ?1次下載
    <b class='flag-5'>Arduino</b>手勢<b class='flag-5'>控制</b><b class='flag-5'>LED</b>亮度

    使用Arduino藍(lán)牙控制LED

    電子發(fā)燒友網(wǎng)站提供《使用Arduino藍(lán)牙控制LED.zip》資料免費(fèi)下載
    發(fā)表于 02-08 10:40 ?2次下載
    使用<b class='flag-5'>Arduino</b>藍(lán)牙<b class='flag-5'>控制</b><b class='flag-5'>LED</b>

    用于LED燈串的Arduino控制電源

    電子發(fā)燒友網(wǎng)站提供《用于LED燈串的Arduino控制電源.zip》資料免費(fèi)下載
    發(fā)表于 02-08 15:58 ?0次下載
    用于<b class='flag-5'>LED</b>燈串的<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>電源</b>

    使用Arduino Uno控制LED矩陣

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Uno控制LED矩陣.zip》資料免費(fèi)下載
    發(fā)表于 06-13 16:12 ?1次下載
    使用<b class='flag-5'>Arduino</b> Uno<b class='flag-5'>控制</b><b class='flag-5'>LED</b>矩陣

    使用IOT BOLT和SmartPhone控制LED強(qiáng)度

    電子發(fā)燒友網(wǎng)站提供《使用IOT BOLT和SmartPhone控制LED強(qiáng)度.zip》資料免費(fèi)下載
    發(fā)表于 07-04 10:19 ?0次下載
    使用IOT BOLT和SmartPhone<b class='flag-5'>控制</b><b class='flag-5'>LED</b>的<b class='flag-5'>強(qiáng)度</b>

    如何使用Arduino控制RGB LED

    在本指南中,您將學(xué)習(xí)如何使用Arduino控制RGB LED。RGB(紅-綠-藍(lán))LED可以通過混合不同強(qiáng)度的紅、綠、藍(lán)光來產(chǎn)生多種顏色。您
    的頭像 發(fā)表于 02-11 10:28 ?5057次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>RGB <b class='flag-5'>LED</b>