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

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

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

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

如何在Arduino上使用RGB LED

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-03 11:07 ? 次閱讀

概述

在本課程中,您將學(xué)習(xí)如何在Arduino上使用RGB(紅綠藍(lán))LED

您將使用 analogWrite 函數(shù)來(lái)控制LED的顏色。

乍一看,RGB(紅色,綠色,藍(lán)色)LED看起來(lái)就像普通的LED,但是,在通常的LED封裝中,實(shí)際上有三個(gè)LED,一個(gè)紅色,一綠色,是,一藍(lán)色。通過(guò)控制每個(gè)LED的亮度,您可以混合幾乎任何您想要的顏色。

我們可以混合顏色,就像您將音頻與“混合板”或調(diào)色板上的顏料混合一樣-通過(guò)調(diào)整三個(gè)LED各自的亮度。做到這一點(diǎn)的困難方法是使用第2課中使用的不同值的電阻器(或可變電阻器)。這是很多工作!對(duì)我們來(lái)說(shuō)幸運(yùn)的是,Arduino具有 analogWrite 函數(shù),您可以將其與標(biāo)有?的引腳一起使用,以向相應(yīng)的LED輸出可變數(shù)量的功率。

零件

要構(gòu)建本課中描述的項(xiàng)目,您將需要以下零件。

零件 數(shù)量

擴(kuò)散RGB LED 10mm 1

270Ω電阻器(紅色,紫色,棕色條紋)-可以使用的最大電阻為1K歐姆。小調(diào)光器

3

半尺寸面包板 1

Arduino Uno R3 1

跳線包 1

面包板布局

RGB LED有四根引線。封裝中每個(gè)LED的正極連接都有一根引線,而LED的所有三個(gè)負(fù)極側(cè)都有一根引線。

LED封裝的公共負(fù)極連接是LED封裝扁平側(cè)的第二個(gè)引腳。它也是四個(gè)線索中最長(zhǎng)的。該引線將接地。

封裝內(nèi)的每個(gè)LED都需要自己的270Ω電阻,以防止過(guò)多的電流流過(guò)。 LED的三個(gè)正極(一個(gè)紅色,一個(gè)綠色和一個(gè)藍(lán)色)使用這些電阻器連接到Arduino輸出引腳。

如果您使用的是普通的ANODE LED而不是普通的CATHODE,請(qǐng)將長(zhǎng)引腳連接到+5而不是接地端

顏色

您可以通過(guò)改變紅色,綠色和藍(lán)色的光量來(lái)混合任意顏色,這是因?yàn)槟难劬哂腥N類型的光接收器(紅色,綠色和藍(lán)色)。您的眼睛和大腦會(huì)處理紅色,綠色和藍(lán)色的數(shù)量,并將其轉(zhuǎn)換為光譜的顏色。

在某種程度上,通過(guò)使用三個(gè)LED,我們?cè)谘劬ι习l(fā)揮了作用。電視機(jī)中使用了相同的想法,其中LCD的紅色,綠色和藍(lán)色點(diǎn)彼此相鄰,構(gòu)成每個(gè)像素。

如果我們將所有三個(gè)LED的亮度設(shè)置為相同,則該燈的整體顏色將為白色。如果關(guān)閉藍(lán)色LED,以便僅紅色和綠色LED具有相同的亮度,則該光將顯示為黃色。

我們可以分別控制LED的紅色,綠色和藍(lán)色部分的亮度,從而可以混合我們喜歡的任何顏色。

黑色并不是缺少光,而是一種顏色。因此,最能使我們的LED變成黑色的是關(guān)閉所有三種顏色。

Arduino草圖

以下測(cè)試草圖將循環(huán)顯示紅色,綠色,藍(lán)色,黃色,紫色和淺綠色。這些顏色是一些標(biāo)準(zhǔn)的Internet顏色。

下載:文件

復(fù)制代碼

/*

Adafruit Arduino - Lesson 3. RGB LED

*/

int redPin = 11;

int greenPin = 10;

int bluePin = 9;

//uncomment this line if using a Common Anode LED

//#define COMMON_ANODE

void setup()

{

pinMode(redPin, OUTPUT);

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

}

void loop()

{

setColor(255, 0, 0); // red

delay(1000);

setColor(0, 255, 0); // green

delay(1000);

setColor(0, 0, 255); // blue

delay(1000);

setColor(255, 255, 0); // yellow

delay(1000);

setColor(80, 0, 80); // purple

delay(1000);

setColor(0, 255, 255); // aqua

delay(1000);

}

void setColor(int red, int green, int blue)

{

#ifdef COMMON_ANODE

red = 255 - red;

green = 255 - green;

blue = 255 - blue;

#endif

analogWrite(redPin, red);

analogWrite(greenPin, green);

analogWrite(bluePin, blue);

} /*

Adafruit Arduino - Lesson 3. RGB LED

*/

int redPin = 11;

int greenPin = 10;

int bluePin = 9;

//uncomment this line if using a Common Anode LED

//#define COMMON_ANODE

void setup()

{

pinMode(redPin, OUTPUT);

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

}

void loop()

{

setColor(255, 0, 0); // red

delay(1000);

setColor(0, 255, 0); // green

delay(1000);

setColor(0, 0, 255); // blue

delay(1000);

setColor(255, 255, 0); // yellow

delay(1000);

setColor(80, 0, 80); // purple

delay(1000);

setColor(0, 255, 255); // aqua

delay(1000);

}

void setColor(int red, int green, int blue)

{

#ifdef COMMON_ANODE

red = 255 - red;

green = 255 - green;

blue = 255 - blue;

#endif

analogWrite(redPin, red);

analogWrite(greenPin, green);

analogWrite(bluePin, blue);

}

嘗試一下草圖,然后我們將對(duì)其進(jìn)行詳細(xì)剖析……。

草圖通過(guò)指定每種顏色將使用哪些引腳:

下載:file

復(fù)制代碼

int redPin = 11;

int greenPin = 10;

int bluePin = 9; int redPin = 11;

int greenPin = 10;

int bluePin = 9;

下一步是編寫(xiě)“設(shè)置”功能。正如我們?cè)谇懊娴恼n程中所了解的那樣,設(shè)置功能在Arduino重置后僅運(yùn)行一次。在這種情況下,它要做的就是定義我們用作輸出的三個(gè)引腳。

下載:文件

復(fù)制代碼

void setup()

{

pinMode(redPin, OUTPUT);

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

} void setup()

{

pinMode(redPin, OUTPUT);

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

}

在我們看一下“循環(huán)”功能之前,先看一下其中的最后一個(gè)功能。草圖。

下載:文件

復(fù)制代碼

void setColor(int red, int green, int blue)

{

analogWrite(redPin, red);

analogWrite(greenPin, green);

analogWrite(bluePin, blue);

} void setColor(int red, int green, int blue)

{

analogWrite(redPin, red);

analogWrite(greenPin, green);

analogWrite(bluePin, blue);

}

此函數(shù)使用三個(gè)參數(shù),一個(gè)用于紅色,綠色和藍(lán)色LED的亮度。在每種情況下,該數(shù)字都將在0到255之間,其中0表示關(guān)閉,而255表示最大亮度。然后該函數(shù)調(diào)用‘a(chǎn)nalogWrite’來(lái)設(shè)置每個(gè)LED的亮度。

如果您查看‘loop’函數(shù),您會(huì)看到我們正在設(shè)置紅色,綠色和藍(lán)色的光量我們要顯示的內(nèi)容,然后暫停一秒鐘,然后再繼續(xù)使用下一種顏色。

下載:文件

復(fù)制代碼

void loop()

{

setColor(255, 0, 0); // red

delay(1000);

setColor(0, 255, 0); // green

delay(1000);

setColor(0, 0, 255); // blue

delay(1000);

setColor(255, 255, 0);// yellow

delay(1000);

setColor(80, 0, 80); // purple

delay(1000);

setColor(0, 255, 255);// aqua

delay(1000);

} void loop()

{

setColor(255, 0, 0); // red

delay(1000);

setColor(0, 255, 0); // green

delay(1000);

setColor(0, 0, 255); // blue

delay(1000);

setColor(255, 255, 0);// yellow

delay(1000);

setColor(80, 0, 80); // purple

delay(1000);

setColor(0, 255, 255);// aqua

delay(1000);

}

嘗試向草圖添加自己的幾種顏色,并觀察LED上的效果。

如果使用的是公共陽(yáng)極RGB LED,則需要更改模擬寫(xiě)入值,以便從255中減去顏色,在草圖中取消注釋#define COMMON_ANODE行!

使用Internet顏色

如果您已完成任何Internet編程,則可能會(huì)意識(shí)到顏色通常表示為“十六進(jìn)制”數(shù)字。例如,紅色的數(shù)字為#FF0000。您可以使用以下表格找到與特定顏色關(guān)聯(lián)的數(shù)字:https://htmlcolorcodes.com/color-names/

該數(shù)字的六個(gè)數(shù)字實(shí)際上是三對(duì)數(shù)字。第一對(duì)是顏色的紅色部分,后兩位是綠色部分,最后兩位是藍(lán)色部分。紅色為#FF0000,因?yàn)樗淖畲蠹t色(FF為十六進(jìn)制255)并且沒(méi)有綠色或藍(lán)色部分。

能夠撥出這些顏色編號(hào)之一以使其顯示在屏幕上將非常有用。 RGB LED。

讓我們嘗試制作靛藍(lán)色(#4B0082)。

i》

靛藍(lán)的紅色,綠色和藍(lán)色部分(以十六進(jìn)制表示)分別為4B,00和82。我們可以將它們插入“ setColor”函數(shù)中,如下所示:

下載:文件

復(fù)制代碼

setColor(0x4B, 0x0, 0x82); // indigo setColor(0x4B, 0x0, 0x82); // indigo

我們?cè)陬伾娜齻€(gè)部分使用十六進(jìn)制數(shù)字,方法是在顏色的三個(gè)部分前面加上“ 0x”。

嘗試將自己的幾種顏色添加到“循環(huán)”功能中。不要忘了在每個(gè)延遲之后添加延遲。

理論(PWM)

脈沖寬度調(diào)制(PWM)是一種控制功率的技術(shù)。我們還在這里使用它來(lái)控制每個(gè)LED的亮度。

下圖顯示了Arduino上PWM引腳之一的信號(hào)。

大約每1/500秒,PWM輸出將產(chǎn)生一個(gè)脈沖。該脈沖的長(zhǎng)度由“ analogWrite”功能控制。因此,“ analogWrite(0)”將根本不會(huì)產(chǎn)生任何脈沖,而“ analogWrite(255)”將產(chǎn)生一直持續(xù)到下一個(gè)脈沖到期的脈沖,因此輸出實(shí)際上一直都在。 》如果我們?cè)贏nalogWrite中指定一個(gè)介于0到255之間的值,那么我們將產(chǎn)生一個(gè)脈沖。如果輸出脈沖僅在5%的時(shí)間內(nèi)為高電平,那么無(wú)論我們驅(qū)動(dòng)什么,都將僅獲得5%的全功率。

但是,如果在90%的時(shí)間內(nèi)輸出為5V,則負(fù)載將獲得90%的電力。我們看不到LED會(huì)以這種速度打開(kāi)和關(guān)閉,所以對(duì)我們來(lái)說(shuō),亮度似乎在變化。

其他要做的事情

嘗試將乒乓球放在LED上

嘗試更改延遲以加快速度或減慢顏色變化的速度

使用RGB LED可以做很多事情。檢出Internet上使用RGB LED的一些項(xiàng)目,您會(huì)發(fā)現(xiàn)視覺(jué)設(shè)備的多色持久性以及各種照明效果。

責(zé)任編輯:wv

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

    關(guān)注

    242

    文章

    23411

    瀏覽量

    664224
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6478

    瀏覽量

    188139
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DLPA3005的VLED電壓是如何輸出的,與接的RGB LED有關(guān)嗎?VLED會(huì)無(wú)限制的升高嗎?

    是如何輸出的,與接的RGB LED有關(guān)嗎?VLED會(huì)無(wú)限制的升高嗎? 3、在設(shè)置了LED的電流后,VLED的電壓會(huì)受LED的電流變化影響嗎? 4、DLPA3005接的
    發(fā)表于 02-18 06:18

    海信116英寸RGB-Mini LED:一朵綻放在科技穹頂?shù)闹袊?guó)花火

    中國(guó)顯示技術(shù)的花火就在你我眼前,變革將從RGB-Mini LED開(kāi)始
    的頭像 發(fā)表于 01-08 09:11 ?2725次閱讀
    海信116英寸<b class='flag-5'>RGB</b>-Mini <b class='flag-5'>LED</b>:一朵綻放在科技穹頂?shù)闹袊?guó)花火

    寵物屋體驗(yàn)控制電機(jī)、RGB全彩LED燈與溫濕度傳感器

    GoKit2代,把應(yīng)用板與主控板分離,使用了arduino標(biāo)準(zhǔn)接口,如下圖:應(yīng)用板依然板載了正反轉(zhuǎn)可調(diào)速電機(jī)馬達(dá)、溫濕度傳感器、紅外感應(yīng)器、RGB全彩LED燈,另外增加了OLED擴(kuò)展接口,你可以
    的頭像 發(fā)表于 10-13 08:03 ?316次閱讀
    寵物屋體驗(yàn)控制電機(jī)、<b class='flag-5'>RGB</b>全彩<b class='flag-5'>LED</b>燈與溫濕度傳感器

    在DRA7xx器件使用DSS回寫(xiě)管道進(jìn)行RGB到Y(jié)UV轉(zhuǎn)換

    電子發(fā)燒友網(wǎng)站提供《在DRA7xx器件使用DSS回寫(xiě)管道進(jìn)行RGB到Y(jié)UV轉(zhuǎn)換.pdf》資料免費(fèi)下載
    發(fā)表于 10-11 11:45 ?0次下載
    在DRA7xx器件<b class='flag-5'>上</b>使用DSS回寫(xiě)管道進(jìn)行<b class='flag-5'>RGB</b>到Y(jié)UV轉(zhuǎn)換

    UART軟件控制的RGB LED混色與MSP430? MCU

    電子發(fā)燒友網(wǎng)站提供《UART軟件控制的RGB LED混色與MSP430? MCU.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 11:41 ?0次下載
    UART軟件控制的<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>混色與MSP430? MCU

    如何選擇RGB LED驅(qū)動(dòng)器

    電子發(fā)燒友網(wǎng)站提供《如何選擇RGB LED驅(qū)動(dòng)器.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 14:29 ?1次下載
    如何選擇<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驅(qū)動(dòng)器

    基于LP50xx器件的全彩RGB LED矩陣系統(tǒng)設(shè)計(jì)指南

    電子發(fā)燒友網(wǎng)站提供《基于LP50xx器件的全彩RGB LED矩陣系統(tǒng)設(shè)計(jì)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:52 ?0次下載
    基于LP50xx器件的全彩<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>矩陣系統(tǒng)設(shè)計(jì)指南

    arduino(1)--ESP8266配置

    Module進(jìn)行開(kāi)發(fā)。 至此,ESP8266已經(jīng)配置完畢。 代碼 本文使用點(diǎn)亮LED來(lái)驗(yàn)證模塊是否配置正確,點(diǎn)燈的代碼如下所示。 上圖可以得知LED在GPIO2。 #include <
    發(fā)表于 09-06 11:00

    何在DRA821U使用Linux實(shí)現(xiàn)快速引導(dǎo)

    電子發(fā)燒友網(wǎng)站提供《如何在DRA821U使用Linux實(shí)現(xiàn)快速引導(dǎo).pdf》資料免費(fèi)下載
    發(fā)表于 09-03 10:11 ?0次下載
    如<b class='flag-5'>何在</b>DRA821U<b class='flag-5'>上</b>使用Linux實(shí)現(xiàn)快速引導(dǎo)

    何在Micro SD卡設(shè)置寫(xiě)保護(hù)?

    我們了解客戶對(duì)Micro SD卡寫(xiě)保護(hù)的疑問(wèn)。在這篇文章中,拓優(yōu)星辰將詳細(xì)解釋如何在Micro SD卡設(shè)置寫(xiě)保護(hù),以及相關(guān)的步驟和注意事項(xiàng)。
    的頭像 發(fā)表于 07-11 16:37 ?2154次閱讀
    如<b class='flag-5'>何在</b>Micro SD卡<b class='flag-5'>上</b>設(shè)置寫(xiě)保護(hù)?

    何在Arduino使用ESP32-C6?

    我想在Arduino使用ESP32-C6我應(yīng)該怎么做?
    發(fā)表于 06-11 06:48

    請(qǐng)問(wèn)如何在ESPIDF v4.4.5下使用rgb_panel?

    各位好。ESPIDF的V4.4.5版本沒(méi)有rgb_panel這個(gè)例程。請(qǐng)問(wèn)如何在v4.4.5下使用rgb_panel?就像原來(lái)在V5的版本的rgb_panel例程里一樣,會(huì)自動(dòng)下載好l
    發(fā)表于 06-07 07:27

    TIDA-00980-具有 IO-li<x>nk 接口的 RGB LED 信號(hào)塔 PCB layout設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《TIDA-00980-具有 IO-link 接口的 RGB LED 信號(hào)塔 PCB layout設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 05-10 09:28 ?0次下載
    TIDA-00980-具有 IO-li<x>nk 接口的 <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b> 信號(hào)塔 PCB layout設(shè)計(jì)

    如何用Arduino開(kāi)發(fā)STM32G070?

    如何用Arduino開(kāi)發(fā)STM32G070,各位大神有相關(guān)教程嗎。我如何在Arduino的開(kāi)發(fā)板管理器中添加STM32G070開(kāi)發(fā)板,如何把程序下載到CPU中?
    發(fā)表于 04-07 08:22

    5050RGB三合一LED WS2850B數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《5050RGB三合一LED WS2850B數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 03-07 18:16 ?1次下載
    主站蜘蛛池模板: 黄色avav | 在线免费看 | 免费看日本大片免费 | 最好免费高清视频观看韩国 | 黄色录像欧美 | 久久本道综合色狠狠五月 | 日本不卡一区二区三区在线观看 | 国产精品成人一区二区 | 69精品在线观看 | 国产精品情人露脸在线观看 | 青草午夜精品视频在线观看 | 亚洲成人三级 | 午夜看大片 | 五月花亚洲 | 性午夜影院 | 亚洲成人激情片 | 国产一区高清 | 久久国产乱子伦精品免费看 | 国产色窝 | 欧美成人性色xxxxx视频大 | 中文字幕国产一区 | 香淫| 97干97吻| 在线免费观看一区二区三区 | 欧美肥穴 | 你懂的国产 | 夜夜天天干 | 深深激情网 | 2019天天干夜夜操 | 天天干干干 | 欧美成人在线网站 | 夜色福利久久久久久777777 | 一级特黄牲大片免费视频 | 午夜视频在线播放 | 日本一二区视频 | 午夜影院啊啊啊 | 一区二区三区在线观看免费 | 美国一级毛片免费看成人 | 黄色录像大全 | 免费在线你懂的 | 欧美天堂在线视频 |