色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Arduino上使用RGB LED

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-12-03 11:07 ? 次閱讀

概述

在本課程中,您將學習如何在Arduino上使用RGB(紅綠藍)LED

您將使用 analogWrite 函數來控制LED的顏色。

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

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

零件

要構建本課中描述的項目,您將需要以下零件。

零件 數量

擴散RGB LED 10mm 1

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

3

半尺寸面包板 1

Arduino Uno R3 1

跳線包 1

面包板布局

RGB LED有四根引線。封裝中每個LED的正極連接都有一根引線,而LED的所有三個負極側都有一根引線。

LED封裝的公共負極連接是LED封裝扁平側的第二個引腳。它也是四個線索中最長的。該引線將接地。

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

如果您使用的是普通的ANODE LED而不是普通的CATHODE,請將長引腳連接到+5而不是接地端

顏色

您可以通過改變紅色,綠色和藍色的光量來混合任意顏色,這是因為您的眼睛具有三種類型的光接收器(紅色,綠色和藍色)。您的眼睛和大腦會處理紅色,綠色和藍色的數量,并將其轉換為光譜的顏色。

在某種程度上,通過使用三個LED,我們在眼睛上發揮了作用。電視機中使用了相同的想法,其中LCD的紅色,綠色和藍色點彼此相鄰,構成每個像素。

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

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

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

Arduino草圖

以下測試草圖將循環顯示紅色,綠色,藍色,黃色,紫色和淺綠色。這些顏色是一些標準的Internet顏色。

下載:文件

復制代碼

/*

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);

}

嘗試一下草圖,然后我們將對其進行詳細剖析……。

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

下載:file

復制代碼

int redPin = 11;

int greenPin = 10;

int bluePin = 9; int redPin = 11;

int greenPin = 10;

int bluePin = 9;

下一步是編寫“設置”功能。正如我們在前面的課程中所了解的那樣,設置功能在Arduino重置后僅運行一次。在這種情況下,它要做的就是定義我們用作輸出的三個引腳。

下載:文件

復制代碼

void setup()

{

pinMode(redPin, OUTPUT);

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

} void setup()

{

pinMode(redPin, OUTPUT);

pinMode(greenPin, OUTPUT);

pinMode(bluePin, OUTPUT);

}

在我們看一下“循環”功能之前,先看一下其中的最后一個功能。草圖。

下載:文件

復制代碼

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);

}

此函數使用三個參數,一個用于紅色,綠色和藍色LED的亮度。在每種情況下,該數字都將在0到255之間,其中0表示關閉,而255表示最大亮度。然后該函數調用‘analogWrite’來設置每個LED的亮度。

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

下載:文件

復制代碼

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上的效果。

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

使用Internet顏色

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

該數字的六個數字實際上是三對數字。第一對是顏色的紅色部分,后兩位是綠色部分,最后兩位是藍色部分。紅色為#FF0000,因為它的最大紅色(FF為十六進制255)并且沒有綠色或藍色部分。

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

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

i》

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

下載:文件

復制代碼

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

我們在顏色的三個部分使用十六進制數字,方法是在顏色的三個部分前面加上“ 0x”。

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

理論(PWM)

脈沖寬度調制(PWM)是一種控制功率的技術。我們還在這里使用它來控制每個LED的亮度。

下圖顯示了Arduino上PWM引腳之一的信號

大約每1/500秒,PWM輸出將產生一個脈沖。該脈沖的長度由“ analogWrite”功能控制。因此,“ analogWrite(0)”將根本不會產生任何脈沖,而“ analogWrite(255)”將產生一直持續到下一個脈沖到期的脈沖,因此輸出實際上一直都在。 》如果我們在AnalogWrite中指定一個介于0到255之間的值,那么我們將產生一個脈沖。如果輸出脈沖僅在5%的時間內為高電平,那么無論我們驅動什么,都將僅獲得5%的全功率。

但是,如果在90%的時間內輸出為5V,則負載將獲得90%的電力。我們看不到LED會以這種速度打開和關閉,所以對我們來說,亮度似乎在變化。

其他要做的事情

嘗試將乒乓球放在LED上

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

使用RGB LED可以做很多事情。檢出Internet上使用RGB LED的一些項目,您會發現視覺設備的多色持久性以及各種照明效果。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23300

    瀏覽量

    661457
  • Arduino
    +關注

    關注

    188

    文章

    6471

    瀏覽量

    187293
收藏 人收藏

    評論

    相關推薦

    寵物屋體驗控制電機、RGB全彩LED燈與溫濕度傳感器

    GoKit2代,把應用板與主控板分離,使用了arduino標準接口,如下圖:應用板依然板載了正反轉可調速電機馬達、溫濕度傳感器、紅外感應器、RGB全彩LED燈,另外增加了OLED擴展接口,你可以
    的頭像 發表于 10-13 08:03 ?248次閱讀
    寵物屋體驗控制電機、<b class='flag-5'>RGB</b>全彩<b class='flag-5'>LED</b>燈與溫濕度傳感器

    在DRA7xx器件使用DSS回寫管道進行RGB到YUV轉換

    電子發燒友網站提供《在DRA7xx器件使用DSS回寫管道進行RGB到YUV轉換.pdf》資料免費下載
    發表于 10-11 11:45 ?0次下載
    在DRA7xx器件<b class='flag-5'>上</b>使用DSS回寫管道進行<b class='flag-5'>RGB</b>到YUV轉換

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

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

    如何選擇RGB LED驅動器

    電子發燒友網站提供《如何選擇RGB LED驅動器.pdf》資料免費下載
    發表于 09-25 14:29 ?0次下載
    如何選擇<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>驅動器

    基于LP50xx器件的全彩RGB LED矩陣系統設計指南

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

    arduino(1)--ESP8266配置

    Module進行開發。 至此,ESP8266已經配置完畢。 代碼 本文使用點亮LED來驗證模塊是否配置正確,點燈的代碼如下所示。 上圖可以得知LED在GPIO2。 #include <
    發表于 09-06 11:00

    何在DRA821U使用Linux實現快速引導

    電子發燒友網站提供《如何在DRA821U使用Linux實現快速引導.pdf》資料免費下載
    發表于 09-03 10:11 ?0次下載
    如<b class='flag-5'>何在</b>DRA821U<b class='flag-5'>上</b>使用Linux實現快速引導

    何在Arduino使用ESP32-C6?

    我想在Arduino使用ESP32-C6我應該怎么做?
    發表于 06-11 06:48

    請問如何在ESPIDF v4.4.5下使用rgb_panel?

    各位好。ESPIDF的V4.4.5版本沒有rgb_panel這個例程。請問如何在v4.4.5下使用rgb_panel?就像原來在V5的版本的rgb_panel例程里一樣,會自動下載好l
    發表于 06-07 07:27

    如何用Arduino開發STM32G070?

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

    5050RGB三合一LED WS2850B數據手冊

    電子發燒友網站提供《5050RGB三合一LED WS2850B數據手冊.pdf》資料免費下載
    發表于 03-07 18:16 ?1次下載

    arduino如何停止loop循環

    Arduino的loop循環是其主要的程序執行部分,該循環將在Arduino開發板持續運行,并且只有在程序被重新上傳或開發板斷電重啟時才會停止。然而,在某些情況下,你可能需要在程序執行過程中停止或
    的頭像 發表于 02-14 16:24 ?4578次閱讀

    arduino中while循環怎么跳出

    Arduino 是一款開源的硬件平臺,廣泛應用于各種物聯網和嵌入式系統項目。在 Arduino 編寫代碼時,循環結構起到了至關重要的作用。而其中的 while 循環更是常用于需要根據特定條件重復
    的頭像 發表于 02-14 16:22 ?2632次閱讀

    如何將LED連接到Arduino板并使其閃爍

     在本快速入門指南中,您將學習如何將 LED 連接到 Arduino 板并使其閃爍。
    的頭像 發表于 02-11 10:53 ?2268次閱讀
    如何將<b class='flag-5'>LED</b>連接到<b class='flag-5'>Arduino</b>板并使其閃爍

    如何使用Arduino控制RGB LED

    在本指南中,您將學習如何使用Arduino控制RGB LEDRGB(紅-綠-藍)LED可以通過混合不同強度的紅、綠、藍光來產生多種顏色。您
    的頭像 發表于 02-11 10:28 ?5033次閱讀
    如何使用<b class='flag-5'>Arduino</b>控制<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>
    主站蜘蛛池模板: 欧美黑白配性xxxxx| 紧致肉肉高h| 精品久久久亚洲精品中文字幕| 欧美一级久久久久久久久大| 中国女人内谢69xxxxxx直播| 久久re热线视频精品99| 亚洲免费成人| 精品久久久麻豆国产精品| 亚洲免费网站在线观看| 护士日本ⅹxxx丰满hd| 亚洲国产精品一区二区三区在线观看 | 99精品视频免费观看| 蜜臀AV精品一区二区三区| 97蜜桃网123| 欧美另类摘花hd| 被室友C哭调教双性| 欧洲美女高清一级毛片| 成人国产精品玖玖热色欲| 入禽太深视频免费视频| 国产精品人妻一区免费看8C0M| 无人区在线日本高清免费| 国产一级特黄a大片99| 一个人在线观看视频| 免费。色婬网站| 成人免费精品视频| 午夜无码片在线观看影院| 黑丝美女娇喘| 91国偷自产一区二区三区 | 九九夜夜妹子| 99re1久久热在线播放| 日本电影护士| 国产亚洲精品久久久久5区| 一级无毛片| 欧美人与禽zoz0性伦交app| 国产成人啪精品视频免费网| 亚洲精品久久久久久蜜臀| 毛片基地看看成人免费| 波多野结衣网站www| 亚洲AV日韩AV欧美在线观看网| 巨胸美乳中文在线观看| 成人小视频在线观看|