Skip to content
Home » Rgb 아두이노 | [아두이노] Rgb Led로 다양한 색 표현하기 With Pwm에 대해서 18733 좋은 평가 이 답변

Rgb 아두이노 | [아두이노] Rgb Led로 다양한 색 표현하기 With Pwm에 대해서 18733 좋은 평가 이 답변

당신은 주제를 찾고 있습니까 “rgb 아두이노 – [아두이노] RGB LED로 다양한 색 표현하기 with PWM에 대해서“? 다음 카테고리의 웹사이트 https://hu.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://hu.taphoamini.com/photos/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 코딩피플CodingPeople 이(가) 작성한 기사에는 조회수 7,905회 및 좋아요 63개 개의 좋아요가 있습니다.

rgb 아두이노 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [아두이노] RGB LED로 다양한 색 표현하기 with PWM에 대해서 – rgb 아두이노 주제에 대한 세부정보를 참조하세요

아두이노와 \”삼색 LED\”의 빨강, 초록, 파랑 빛을 조합하여 다양한 색을 표현합니다.
+ 삼색 LED의 원리와 빛의 삼원색
+ PWM 방식이 지원되는 디지털 핀은 어떻게 코딩해야 할까?
+ 삼색 LED를 활용해 빨강, 초록, 파랑 빛 제어하기
+ 랜덤함수를 통해서 삼색 LED로 더 다양한 색 표현하기

코딩피플이 운영 중인 스마트스토어에서 재미있는 ‘아두이노 작품’ 키트 판매하고 있습니다.
▼▼▼ 아두이노 키트 보러가기 ▼▼▼
https://smartstore.naver.com/store4people/category/b59d9b3f99854f8f96f94707d00f5034
코드파일 다운로드 : https://blog.naver.com/codinglab_usdd/221867032703
#아두이노 #RGBLED #삼색LED #코딩 #PWM #아두이노강좌 #아두이노작품 #아두이노활동 #빛의삼원색

rgb 아두이노 주제에 대한 자세한 내용은 여기를 참조하세요.

[아두이노 강좌] 03. RGB LED 색깔 변경하기 – 가치창조기술 위키

이번 게시글에서는 아두이노로 RGB LED를 사용하는 방법에 대해 설명하겠습니다. LED의 컬러를 제어하기 위해서는 아두이노의 analogWrite 함수를 사용하게 될 것입니다.

+ 더 읽기

Source: wiki.vctec.co.kr

Date Published: 11/1/2021

View: 3766

RGB LED 모듈 사용하기 – 코코아팹

RGB LED 모듈을 사용해 보자.

+ 여기를 클릭

Source: kocoafab.cc

Date Published: 11/24/2021

View: 8042

[메이커키트] 아두이노 RGB LED 실습 – 색 변경 및 랜덤 함수

RGB LED 모듈은 단색 Led와 달리 색깔이 정해져 있지 않고, 원하는 색깔을 마음대로 만들 수 있습니다. RGB는 빨강과 파랑, 초록을 사용하여 색을 나타 …

+ 여기에 더 보기

Source: blog.naver.com

Date Published: 9/30/2021

View: 9036

아두이노 강좌 #45 RGB LED 기초 사용법 기초 및 … – Blacklog

Arduino Uno RGB LED Basic 이번 포스트에서는 RGB LED 기초 사용법에 대해 설명 합니다. RGB LED로 여러가지 색을 표현하기 위해 사용되는 PWM 출력 방법에 대한 기초 …

+ 자세한 내용은 여기를 클릭하십시오

Source: juahnpop.tistory.com

Date Published: 5/1/2021

View: 1789

틴커캐드 아두이노 3색 RGB LED 제어하기 – 조흔개발자

3색 LED (RGB LED). 한쪽 방향으로 전류가 흐르도록 하는 반도체 소자를 다이오드라고 합니다. 그중 전기 에너지를 빛으로 변환하는 것을 발광 다이오드( …

+ 더 읽기

Source: iot-lab.tistory.com

Date Published: 4/11/2022

View: 4620

[아두이노] RGB(3색) LED 사용하기

[아두이노] RGB(3색) LED 사용하기 … ​LED 중에는 3가지 색을 낼 수 있는 제품이 있습니다. 다리가 4개이기 때문에 ‘4 leg LED’, ‘4 pin LED’, 또는 낼 수 …

+ 여기에 자세히 보기

Source: studyingandsuccess.tistory.com

Date Published: 11/4/2021

View: 3841

07-2 삼색(RGB) LED 사용하기 – 아두이노 시뮬레이터

삼색 LED는 빛의 삼원색인 빨강(Red), 녹색(Green), 파랑(Blue)을 혼합하여 다양한 색상의 빛을 만들어낼 수 있는 LED 입니다. 따라서 색상을 나타내는 영문 앞 자를 따 …

+ 여기를 클릭

Source: wikidocs.net

Date Published: 1/18/2021

View: 4894

Làm thế nào để điều khiển LED RGB – Led 3 màu – Arduino.vn

Cũng đã khá lâu kể từ lần cuối mình viết bài chia sẻ với Cộng đồng Arduino Việt Nam. Mấy hôm nay, mình có một dự án liên quan đến LED RGB …

+ 여기에 더 보기

Source: arduino.vn

Date Published: 1/10/2021

View: 6950

주제와 관련된 이미지 rgb 아두이노

주제와 관련된 더 많은 사진을 참조하십시오 [아두이노] RGB LED로 다양한 색 표현하기 with PWM에 대해서. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[아두이노] RGB LED로 다양한 색 표현하기 with PWM에 대해서
[아두이노] RGB LED로 다양한 색 표현하기 with PWM에 대해서

주제에 대한 기사 평가 rgb 아두이노

  • Author: 코딩피플CodingPeople
  • Views: 조회수 7,905회
  • Likes: 좋아요 63개
  • Date Published: 최초 공개: 2020. 3. 17.
  • Video Url link: https://www.youtube.com/watch?v=sYuyV4AaWFE

아두이노 강좌 #45 RGB LED 기초 사용법 기초 및 Orange, Yellow 컬러 표시 팁

Arduino RGB Full Color LED Basic

Arduino Uno RGB LED Basic

이번 포스트에서는 RGB LED 기초 사용법에 대해 설명 합니다. RGB LED로 여러가지 색을 표현하기 위해 사용되는 PWM 출력 방법에 대한 기초 적인 내용은 하단의 관련 포스트를 참고해주세요.

RGB LED Module

RGB LED는 빛의 3원색인 Red, Green, Blue 세가지 색의 LED를 하나의 패키지로 만들어 놓은 LED 입니다. 본 포스트에서 사용하는 RGB LED 모듈은 아래와 같이 4핀으로, 각각 Red, Green, Blue LED의 애노드와 공통 캐소드인 – 핀으로 구성됩니다. RGB 각각의 LED에는 전류 제한용 150Ω 이 직렬로 연결되어 있어, 별도의 전류 제한 저항 없이 아두이노 포트에 직접 연결하여 사용 가능합니다.

빛의 3원색과 RGB LED 모듈

RGB LED는 Red, Green, Blue LED 각각의 밝기를 조정하여 다양한 색을 표시 할 수 있습니다. 아두이노에서는 PWM(Analog Output)으로 R,G,B의 밝기를 0~255 로 조정할 수 있습니다. 아두이노에서 PWM 출력하는 기초적인 방법은 하단의 관련 포스트를 참조해주세요.

RGB Color Table

RGB Color Table

하드웨어 연결

회로도 및 연결

아두이노 우노로 RGB LED를 테스트하기 위해 아래와 같이 회로를 구성하였습니다. RGB Module의 R,G,B 단자는 PWM 출력이 가능한 11번, 10번, 9번 포트로 각각 연결하였습니다.

Arduino Uno와 RGB LED Module 연결 회로도 및 연결 예시

예제1 : RGB LED On/Off 제어

예제1은 RGB LED를 ON/OFF 방식으로 제어하는 예제입니다. RGB 3개의 핀(3 Bit)으로 8가지 색 표현이 가능합니다.

코드

아래의 예제 코드는 1000ms 간격으로 RED -> GREEN -> BLUE -> YELLOW -> CYAN 색을 순회하는 코드입니다.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 # define RED 11 // RGB LED Module의 RED 핀 # define GREEN 10 // RGB LED Module의 GREEN 핀 # define BLUE 9 // RGB LED Module의 BLUE 핀 void setup (){ pinMode (RED, OUTPUT ); pinMode (GREEN, OUTPUT ); pinMode (BLUE, OUTPUT ); } void loop (){ // RED digitalWrite (RED, HIGH ); digitalWrite (GREEN, LOW ); digitalWrite (BLUE, LOW ); delay ( 1000 ); // GREEN digitalWrite (RED, LOW ); digitalWrite (GREEN, HIGH ); digitalWrite (BLUE, LOW ); delay ( 1000 ); // BLUE digitalWrite (RED, LOW ); digitalWrite (GREEN, LOW ); digitalWrite (BLUE, HIGH ); delay ( 1000 ); // YELLOW digitalWrite (RED, HIGH ); digitalWrite (GREEN, HIGH ); digitalWrite (BLUE, LOW ); delay ( 1000 ); // CYAN digitalWrite (RED, LOW ); digitalWrite (GREEN, HIGH ); digitalWrite (BLUE, HIGH ); delay ( 1000 ); } Colored by Color Scripter cs

실행 결과

위 코드를 실행하면 1초 간격으로 LED 색상이 변하는 것을 확인 할 수 있습니다.

예제2 : RGB LED On/Off 제어

예제2는 RGB LED를 PWM으로 제어하는 예제입니다. RGB LED를 8 Bit PWM 출력으로 제어하는 경우 표현 가능한 색은 255(RED) x 255(GREEN) x 255(BLUE)으로 대략 16.8백만 가지의 컬러 표현이 가능합니다.

코드

아래의 코드는 analogWrite()함수를 사용하여 RGB LED를 제어하는 코드입니다. 1000ms 간격으로 빨->주->노->초->파->남->보 색을 RGB LED에 표시합니다.

Orange와 Yellow의 주석에 있는 RGB값은 쉽게 구글에서 구할 수 있는 색 좌표 값이고, 실제 코드에 적용한 RGB 값은 육안으로 실제로 Orange, Yellow 컬러가 비슷하게 나오는 값으로 튜닝한 값입니다.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 # define RED 11 // RGB LED Module의 RED 핀 # define GREEN 10 // RGB LED Module의 GREEN 핀 # define BLUE 9 // RGB LED Module의 BLUE 핀 void setup (){ pinMode (RED, OUTPUT ); pinMode (GREEN, OUTPUT ); pinMode (BLUE, OUTPUT ); } void loop (){ // Red (255,0,0) analogWrite (RED, 255 ); analogWrite (GREEN, 0 ); analogWrite (BLUE, 0 ); delay ( 1000 ); // Orange (255,127,0) analogWrite (RED, 255 ); analogWrite (GREEN, 20 ); analogWrite (BLUE, 0 ); delay ( 1000 ); // Yellow (255,255,0) analogWrite (RED, 255 ); analogWrite (GREEN, 80 ); analogWrite (BLUE, 0 ); delay ( 1000 ); // Green (0,255,0) analogWrite (RED, 0 ); analogWrite (GREEN, 255 ); analogWrite (BLUE, 0 ); delay ( 1000 ); // Blue (0,0,255) analogWrite (RED, 0 ); analogWrite (GREEN, 0 ); analogWrite (BLUE, 255 ); delay ( 1000 ); // Indigo (0,5,70) analogWrite (RED, 0 ); analogWrite (GREEN, 5 ); analogWrite (BLUE, 70 ); delay ( 1000 ); // Purple (100,0,255) analogWrite (RED, 100 ); analogWrite (GREEN, 0 ); analogWrite (BLUE, 255 ); delay ( 1000 ); } Colored by Color Scripter cs

실행 결과

아래 영상은 위 코드의 실행 결과입니다. 구형 휴대폰으로 촬영하여 실제로 보는 것보다 색감이 잘 잡히지 않음을 고려해주세요.

마무리

이번 포스트에서는 RGB LED를 사용하는 기초적인 방법으로 LED를 ON/OFF하는 방식과 PWM을 사용하는 방식의 코드를 소개 하였습니다. 아두이노 아날로그 출력 PWM 사용에 대한 기초적인 내용은 하단의 관련 포스트를 참고해주세요.

끝까지 읽어 주셔서 감사합니다.😄

틴커캐드 아두이노 3색 RGB LED 제어하기

반응형

이전 블로그에서 브레드보드와 LED 페이드 인/페이드 아웃 (PWM) 제어하는 방법을 알아보았습니다.

https://iot-lab.tistory.com/175

사전 지식

3색 LED (RGB LED)

한쪽 방향으로 전류가 흐르도록 하는 반도체 소자를 다이오드라고 합니다.

그중 전기 에너지를 빛으로 변환하는 것을 발광 다이오드(LED)라고 합니다. LED(Light Emitting Diode)

3색 LED는 빨강, 초록, 파랑의 3가지 색을 하나의 LED로 합친 것입니다.

RGB LED라고도 합니다.

4개의 단자가 있으며 다리가 제일 긴 핀이 GND이며 나머지는 각각의 색을 제어할 때 사용하는 핀입니다.

각각의 색을 제어하는 핀의 전압의 차이를 이용해 여러 가지 색을 표현할 수 있습니다.

색상 코드

색상표는 코딩할 때 필요하니 일단 참고해주세요.

http://www.n2n.pe.kr/lev-1/color.htm

구성요소 목록

새 회로 작성

좌측 사이드바에서 Circuits 를 클릭하시고 새 회로 작성 버튼을 클릭합니다.

Curcuits -> 새 회로 작성

아두이노 준비

우측에 부품 리스트에서 아두이노를 찾아서 위치시킵니다.

아두이노 보드를 클릭 혹은 드래그해서 위치시키기

브레드보드 준비

오른쪽 부품 리스트에서 브레드보드를 찾아 위치시킵니다.

브레드보드를 클릭 혹은 드래그해서 위치시키기

전원선 배선하기

전원선과 그라운드선을 배선합니다.

핀 부분과 브레드보드에 마우스 커서를 이동시키면 연결부위가 강조되며 클릭으로 배선을 할 수 있습니다.

1. 전원선인 아두이노 5V핀과 브레드보드의 [+]부분과 연결

2. 전원선은 오른쪽 윗부분 와이어에서 색상을 빨간색으로 변경

3. 그라운드(GND)의 아두이노 핀과 [-]부분과 연결

4. 그라운드 선은 오른쪽 윗부분 와이어의 색상을 검정색으로 변경

(선택사항) 배선 부분을 더블클릭하여 반듯하게 정리(*선택사항으로 취향에 따라 정리하시면 됩니다)

LED 배치 및 저항 연결

위 작업과 같이 3색 LED를 제어하기 위하여 저항과 함께 배선합니다.

1. 오른쪽 부품 리스트에서 “LED RGB”를 검색하여 배치

2. 브레드보드는 세로로 연결되어 있으므로 세로로 저항을 배치

3. 저항값은 오른쪽 위의 레지스터에서 저항값을 1k 옴으로 입력 (저항은 100~1K 옴 값으로 설정하면 문제없음)

4. 데이터선을 각각 아두이노의 11 번핀(LED 빨간색), 10 번핀(LED 초록색), 9 번핀(파란색)을 아래 그림과 같이 연결 (전선은 각 색에 맞춰 연결하면 구별하기 좋음)

소스코드

소스코드를 아래와 같이 입력합니다.

void setup() { pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); } void loop() { // 빨간색 analogWrite(11, 255); analogWrite(10, 0); analogWrite(9, 0); delay(1000); // Wait for 1000 millisecond(s) // 초록색 analogWrite(11, 0); analogWrite(10, 255); analogWrite(9, 0); delay(1000); // Wait for 1000 millisecond(s) // 파란색 analogWrite(11, 0); analogWrite(10, 0); analogWrite(9, 255); delay(1000); // Wait for 1000 millisecond(s) }

소스코드 설명

빨간색, 초록색, 파란색이 1초씩 점멸합니다.

11번 핀은 Red값 : 0~ 255

10번 핀은 Green값 : 0 ~ 255

9번 핀은 Blue값 : 0 ~ 255

이렇게 RGB 색상표를 입력하면 어떤색이든 구현 가능합니다.

HTML 등에서 “#99FF33” 처럼 16진수로 표현하기도 합니다.

이렇게 각 핀의 값을 10진수로 변경해주면 됩니다.

소스코드 응용편

이번에는 RGB 값을 받는 함수를 구현하여 여러 가지 색을 구현해보겠습니다.

색상표는 아래 링크를 확인해서 여러가지 색을 만들어보시길 추천드립니다.

http://www.n2n.pe.kr/lev-1/color.htm

void setup() { pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); } void loop() { // Cyan setRGB(0, 255, 255); delay(1000); // Wait for 1000 millisecond(s) // Purple setRGB(128, 0, 128); delay(1000); // Wait for 1000 millisecond(s) // Yellow setRGB(128, 0, 128); delay(1000); // Wait for 1000 millisecond(s) } void setRGB(int red, int green, int blue) { analogWrite(11, red); analogWrite(10, green); analogWrite(9, blue); }

소스코드 설명

Cyan -> Purple -> Yellow 순으로 LED 색이 변합니다.

반응형

[아두이노] RGB(3색) LED 사용하기

​LED 중에는 3가지 색을 낼 수 있는 제품이 있습니다. 다리가 4개이기 때문에 ‘4 leg LED’, ‘4 pin LED’, 또는 낼 수 있는 색깔이 빨강(Red), 초록(Green), 파랑(Blue)이라 ‘RGB LED’라고도 부릅니다.

<그림 1> RGB LED

RGB 가산 혼합

RGB LED를 사용하면 3가지 색만 낼 수 있는 것이 아니라 색을 조합해서 거의 모든 색을 낼 수 있습니다. 2개 또는 3개의 색이 동시에 켜져 있지만 우리 눈은 한 가지 색으로 인지합니다. 만약 빨강과 초록이 켜져 있다면 노란색으로 보입니다. 물감은 여러 가지 색을 섞을수록 어두워지다 결국 검은색이 되지만, 이 LED 빛은 모을수록 밝아지며 3개를 모두 모으면 흰색이 됩니다. 물감처럼 섞을수록 어두워지는 것을 ‘RGB 감산 혼합’, LED처럼 밝아지는 것을 ‘RGB 가산 혼합’이라고 합니다.

RGB 가산 혼합(위키피디아)

<그림 2> RGB 가산 혼합

RGB LED (Common Cathode, Anode)

<그림 2> Common Cathode LED와 Common Anode LED

RGB LED는 핀이 네 개 있습니다. 핀 길이가 조금씩 다른데 가장 긴 것이 Anode이거나 Cathode입니다. 이 핀은 다른 핀들이 공통으로 사용하기 때문에 Common(공통 단자)라고 부릅니다. Common Cathode 인지 Anode 인지에 따라 Common에 연결해야 될 입력이 달라집니다. 이 두 LED는 생긴 걸로 구분이 쉽지 않기 때문에 구매할 때 꼭 확인해야 합니다.

아래 회로는 가장 간단하게 연결한 예시입니다. 이 회로에서 RGB에 해당하는 각각 단자는 PWM 기능이 있는 디지털 9, 10, 11에 연결합니다. Common 단자는 연결 방법이 다릅니다. Common Cathode는 아두이노 GND에 연결합니다. Common Anode는 아두이노 Vcc에 연결합니다. Common Anode 회로에서 아두이노와 LED가 GND 없이 연결한 것이 익숙하지 않을 수도 있지만, Vcc에서 LED를 거쳐 디지털 핀으로 전류가 흘러 LED가 켜집니다.

<그림 3> 3색 LED 연결 예시

PWM 제어

PWM(Pulse Width Modulation)은 디지털 출력 을 제어하기 위한 기술입니다. 이것으로 아두이노 디지털 출력 핀으로 LED를 켜고 끄는 동작 외에 밝기를 조절하는 아날로그적인 제어가 가능합니다. 디지털 출력 핀으로 출력 전압의 크기를 바꿀 수는 없습니다. 출력은 항상 5V입니다. 하지만 출력의 지속시간을 조절할 수 있습니다. PWM의 펄스는 1/500 초에 한 번씩 나옵니다 . 아두이노의 ‘analogWrite’ 명령어를 통해 이 펄스의 지속시간을 조절합니다. analogWrite(0)이면 지속시간이 0이니 펄스가 없습니다. analogWrite(255)이면 최댓값으로 끊 기지 않고 지속되는 출력입니다. 그 중간 값을 입력하면 그 크기에 따라 지속시간이 결정됩니다.

만약 analogWrite(128)을 입력하면 50%의 시간 동안만 출력이 지속됩니다. LED는 0.001초 켜진 후 0.001초 동안 꺼지는 동작을 반복합니다. 이렇게 빨리 깜박이면 우리 눈은 그 깜박임을 인지하지 못합니다. 그저 빛이 어두워졌다고 인지합니다.

07-2 삼색(RGB) LED 사용하기

삼색(RGB) LED 소개

삼색 LED는 빛의 삼원색인 빨강(Red), 녹색(Green), 파랑(Blue)을 혼합하여 다양한 색상의 빛을 만들어낼 수 있는 LED 입니다. 따라서 색상을 나타내는 영문 앞 자를 따 RGB LED라고도 합니다. 일반 LED에 애노드와 캐소드 두 단자가 있다면 삼색 LED는 빨강, 녹색, 파랑을 구분하는 세개의 단자와 공통(Common) 애노드 또는 공통 캐소드를 구분하는 하나의 단자로 구성됩니다. 공통 애노드는 전원(+) 단자를 공유해서 사용하며 공통 캐소드는 그라운드(-) 단자를 공유해서 사용합니다.

아두이노 시뮬레이터는 공통 캐소드 기반의 삼색 LED를 지원하기 때문에 마우스 커서를 삼색 LED의 두 번째 단자에 가져가면 캐소드(Cathode)라는 표시를 볼 수 있습니다. 따라서 빨강(R), 녹색(G), 파랑(B)을 구분하는 단자에 아두이노의 디지털 핀을 연결해 HIGH 신호를 주면 해당 색상의 불빛이 켜집니다. 예를 들어, 회로구성에서 삼색 LED의 빨강(R) 단자에 아두이노의 13번 디지털 핀에 연결하고 공통 캐소드에 그라운드를 연결한 뒤 스케치 코드에서 digitalWrite(13, HIGH) 함수를 사용하면 LED에 빨간색 불빛이 켜집니다. 또한 빨강(R) 단자와 녹색(G) 단자 모두 HIGH신호를 주면 LED에 노란색 불빛이 켜집니다. 이와 같은 원리로 PWM을 지원하는 디지털 핀을 사용해 신호를 제어하면 다양한 색상의 LED 불빛을 만들 수 있습니다.

삼색 LED로 다양한 색 표현하기

삼색 LED로 다양한 색상의 불빛을 출력해보겠습니다. digitalWrite() 함수는 HIGH와 LOW값만 출력할 수 있기 때문에 삼색 LED의 R, G, B 단자에 연결해서 색을 표현하면 빨강, 녹색, 파랑, 노랑, 청록, 자홍, 흰색 이렇게 7가지 색입니다. 1비트로 표현할 수 있는 경우의 수가 3가지(R, G, B)가 있고 꺼짐 상태를 제외하면 2 x 2 x 2 – 1이 되기 때문에 총 7가지 색을 표현할 수 있습니다. 하지만 PWM을 지원하는 디지털 핀과 analogWrite() 함수를 이용하면 표현할 수 있는 색상의 수는 총 16,277,215가지입니다. PWM으로 표현할 수 있는 수의 범위가 0에서 255까지 총 256이며 RGB색상으로 표현할 수 있는 최대 색상의 수는 빨강(256) x 녹색(256) x 파랑(256) – 1이기 때문입니다.

삼색 LED로 다양한 색 표현하기 회로구성

기본 구성요소에서 RGB로 검색하거나 위 그림과 같이 투명한 색에 4개의 단자를 가진 LED를 선택해서 브레드보드에 배치합니다. 작업판 좌측 상단의 회전버튼을 이용해 브레드보드와 삼색 LED를 90도 회전시키고 220 ~ 330 Ω(옴) 저항 3개를 배치합니다. 아두이노 시뮬레이터에서 기본적으로 제공하는 삼색 LED는 공통 캐소드 타입이기 때문에 삼색 LED의 4개 단자 중 캐소드(Cathode)라고 표시된 단자를 브레드보드의 그라운드(GND)에 연결합니다. 삼색 LED에서 빨강색을 표현하는 단자는 아두이노의 11번핀에 연결하고, 파란색을 표현하는 단자는 10번 핀에 그리고 초록색을 표현하는 단자는 9번핀에 연결하겠습니다. 11번, 10번, 9번 디지털 핀은 모두 PWM을 지원합니다.

삼색 LED로 다양한 색 표현하기 스케치 코드

스케치 코드의 3번째 줄부터 5번째 줄은 PWM을 지원하는 디지털 11번, 10번, 9번 핀을 출력모드로 설정합니다. 7번째 줄은 시리얼 모니터로 R, G, B색상을 표현할 값을 출력하기 위한 목적입니다. 12번째 줄에서 14번째 줄에는 random() 함수의 결과를 정수형 변수 red, blue, green에 저장한다. random() 함수는 임의의 수를 반환하는 함수로 매개변수의 값에 따라 출력 범위가 결정됩니다. 매개변수가 한 개인 경우 출력되는 수는 0부터 매개변수의 값 – 1의 범위의 값 중 하나입니다. 즉, random(5)와 같이 매개변수로 5를 입력하면 0, 1, 2, 3, 4의 값 중 하나를 반환합니다. random() 함수에 매개변수가 두 개인 경우 최솟값과 최댓값을 모두 설정할 수 있습니다. 예를 들어, random(1, 5)과 같이 두 개의 매개변수가 사용될 경우 출력 값은 1, 2, 3, 4 중 하나의 값이 반환됩니다. 즉 최솟값은 출력범위에 포함되지만 최댓값은 포함되지 않습니다.

16번째 줄부터 18번째 줄은 analogWrite() 함수를 사용해 random() 함수로 가져온 수를 출력합니다. random() 함수를 통해 0에서 255 사이의 값 중 하나를 가져오도록 매개변수를 조절합니다. 이는 PWM으로 제어할 수 있는 수의 범위가 8비트로 0 ~ 255까지이기 때문입니다. 20번째 줄부터 25번째 줄까지는 시리얼 모니터에 Red, Green, Blue값을 출력하기 위해 Serial.print() 함수와 Serial.println() 함수를 사용합니다. 두 함수의 차이는 문자가 출력된 후 다음 줄로 넘어갈지 유무에 따라 달라집니다. 보통 하나 이상의 정보를 한 줄에 출력하고 싶을 때 다수의 Serial.print() 함수와 하나의 Serial.println() 함수를 사용합니다. 마지막에 Serial.println() 함수를 통해 다음 줄로 넘겨 출력하면 출력된 정보의 가독성이 좋아지기 때문입니다. 또한 출력문자의 가독성을 높이는 방법 중 하나로 탭(Tab) 문자를 추가하는 것이 있습니다. 탭문자는 키보드의 탭 키를 누르면 일정 크기의 공백이 추가되는 것과 같이 Serial.print(“\t”) 함수처럼 역슬래시와 영문자 t를 결합해 출력하면 다음 문자를 출력하기 전 공백문자를 추가해 일정한 간격으로 출력되도록 할 수 있습니다. 스케치 코드의 22번째 줄과 24번째 줄을 보면 탭 문자를 추가한 것을 확인할 수 있습니다. 마지막으로 27번째 줄의 delay() 함수는 삼색 LED의 색상이 변하는 것을 확인하기 위해 100ms(밀리초)를 추가하였습니다.

시리얼 모니터로 R, G, B 값을 100ms 마다 출력하며 R, G, B의 값에 따라 삼색 LED 불빛의 색상이 바뀌는 것을 볼 수 있습니다.

Làm thế nào để điều khiển LED RGB – Led 3 màu

I. Giới thiệu

Cũng đã khá lâu kể từ lần cuối mình viết bài chia sẻ với Cộng đồng Arduino Việt Nam. Mấy hôm nay, mình có một dự án liên quan đến LED RGB (Led 3 màu – led có thể biểu diễn tất cả các màu), mà tìm tài liệu trên Cộng đồng Arduino lại không có, vì vậy, mình sẽ viết một bài viết để chia sẻ cho các bạn đi sau.

II. Những gì cần nắm

Mục tiêu mà mình hướng đến và muốn chia sẻ trong bài viết này đó là giới thiệu về LED RGB và chỉ các bạn điều khiển 1 con LED RGB. Còn muốn điều khiển nhiều con LED RGB thì cần nhiều đồ hơn và phức tạp hơn nên mình xin nhường lại vấn đề này cho các bạn tìm hiểu thêm và chia sẻ cho cộng đồng.

III. Phần cứng

Arduino UNO Breadboard Dây cắm breadboard Led 3 màu – LED RGB (các bạn mua loại chung cực âm cho nó dễ, vì sao nó dễ thì các bạn đọc tiếp thì sẽ tự nhận thấy thôi ) 3 con điện trở (220ohm – 560ohm)

IV. Sơ lược về LED RGB

Khác với LED bình thường, led RGB có 4 chân, trong đó có 1 chân dương chung và 3 chân âm riêng cho từng màu (R – red – đỏ, G – Green – Xanh lá, B – Blue – Xanh dương). LED RGB thực chất là 3 con diode led bình thường dính chụm thành 1 khối mà thôi (vì độ sáng của LED RGB khá sáng cộng với hiệu ứng lưu ảnh của mắt người mà mình thấy được các màu sắc khác nhau). Để thay màu sắc của LED RGB, ta chỉ việc thay đổi độ sáng của từng con diode (led) trong con led rgb. Để thay đổi độ sáng của một con LED ta chỉ việc điều chỉnh điện áp xuất ra con LED, mà để điều chỉnh điện áp xuất ra con LED ta sẽ dùng xung PWM (một loại xung mà hầu hết các mạch Arduino đều có – xêm thêm về xung PWM).

Ânodo comum (chung cực dương) – Cátodo comum (chung cực âm – mình demo con này)

V. Nối mạch

LED RGB Arduino UNO 1 (RED) 9 2 GND 3 (GREEN) 10 4 (BLUE) 11

VI. Mã lập trình

/* User: Tôi yêu Arduino http://arduino.vn/users/toi-yeu-arduino RGB LED Tạo led cầu vồng */ // Ta sẽ đặt tên cho cho các chân (vì các chân không thay đổi nên mình lưu ở dạng hằng số với từ khóa const) // http://arduino.vn/reference/const-bien-hang // Theo quy tắc đặt tên trong giới lập trình thì các hằng số các bạn phải viết hoa toàn bộ các ký tự // và các dấu cách giữa các từ được thay bằng dấu gạch nối dưới (dân gian gọi là shift gạch :3) const int RED_PIN = 9; // led đỏ const int GREEN_PIN = 10; // led xanh lá const int BLUE_PIN = 11; // led xanh dương // Hằng số đợi giữa mỗi lần đổi trạng thái int DELAY_TIME = 500; // đơn vị là mili giây nhá – thử thay đổi số này xem sao :3 // Hàm setup // Xem thêm về vòng đời các hàm trong Arduino // http://arduino.vn/reference/setup-va-loop void setup() { // Khởi tạo các chân là OUTPUT (tất nhiên òi :D) // http://arduino.vn/reference/pinmode // http://arduino.vn/reference/thiet-dat-digital-pins-nhu-la-input-inputpullup-va-output pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); pinMode(BLUE_PIN, OUTPUT); } // Hàm loop // Xem thêm về vòng đời các hàm trong Arduino // http://arduino.vn/reference/setup-va-loop void loop() { // Gọi hàm displayAllBasicColors để thể hiện toàn bộ các màu cơ bản ! displayAllBasicColors(); // Đã chơi led rgb mà không biết đến hiệu ứng cầu vồng thì không thể chấp nhận được :3, vì vậy, mình chia sẻ cho các bạn hiệu ứng cầu vồng luôn // Gọi hàm showSpectrum để chạy hiệu ứng cầu vồng. showSpectrum(); } // Cài đặt hàm displayAllBasicColors void displayAllBasicColors() { // Tắt toàn bộ các led – cái này dễ mà ha digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, LOW); digitalWrite(BLUE_PIN, LOW); delay(DELAY_TIME); // Chỉ bật led đỏ digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); digitalWrite(BLUE_PIN, LOW); delay(DELAY_TIME); // Chỉ bật led xanh lá digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); digitalWrite(BLUE_PIN, LOW); delay(DELAY_TIME); // Chỉ bật led xanh dương digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, LOW); digitalWrite(BLUE_PIN, HIGH); delay(DELAY_TIME); // Bật màu vàng bắng cách bật led đỏ và xanh digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); digitalWrite(BLUE_PIN, LOW); delay(DELAY_TIME); // Xanh lam (Cyan) bằng cách bật led xanh lá và xanh dương digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); digitalWrite(BLUE_PIN, HIGH); delay(DELAY_TIME); // Tím (đỏ xanh dương) digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); digitalWrite(BLUE_PIN, HIGH); delay(DELAY_TIME); // Màu trắng (tất cả các led) // Mình không hiểu nổi vụ con công tô màu cho con quạ :3, đáng lẻ phải ra màu trắng chứ, mà thế quái nào lại ra màu đen :3, chắc do con công pha màu kém quá 😀 digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); digitalWrite(BLUE_PIN, HIGH); delay(DELAY_TIME); } // Cài đặt hàm showSpectrum void showSpectrum() { for (int i = 0; i < 768; i++) { showRGB(i); // Call RGBspectrum() with our new x delay(10); // Delay 10ms } } // Cài đặt hàm showRGB(int color) // Chúng ta sẽ cài đặt hàm showRGB để mỗi khi nhận một giá trị từ 0 - 767 // nó sẽ chuyển dần dầm các màu của con đèn led rgb thành các màu đỏ - cam - vàng - lục - lam - chàm - tím // mình chia nó thành 3 khu // đỏ - xanh lục // xanh lục - xanh lam // xanh lam - đỏ // gồm có 4 mốc // 0 = đỏ chét (đỏ 100%) // 255 = xanh lục 100% // 511 = xanh dương (100%) // 767 = lại là đỏ chét // Những con số nằm giữa các màu sẽ được tính toán theo công thức bên dưới (đọc dễ hiểu mà) để ra được các màu cần thiết void showRGB(int color) { int redPWM; int greenPWM; int bluePWM; if (color <= 255) // phân vùng 1 { redPWM = 255 - color; // red đi từ sáng về tắt greenPWM = color; // green đi từ tắt thành sáng bluePWM = 0; // blue luôn tắt } else if (color <= 511) // phân vùng 2 { redPWM = 0; // đỏ luôn tắt greenPWM = 255 - (color - 256); // green đi từ sáng về tắt bluePWM = (color - 256); // blue đi từ tắt thành sáng } else // color >= 512 // phân vùng 3 { redPWM = (color – 512); // red tắt rồi lại sáng greenPWM = 0; // green luôn tắt nhé bluePWM = 255 – (color – 512); // blue sáng rồi lại tắt } // rồi xuất xung ra và chơi thôi :3 analogWrite(RED_PIN, redPWM); analogWrite(BLUE_PIN, bluePWM); analogWrite(GREEN_PIN, greenPWM); }

VII. Kết luận

키워드에 대한 정보 rgb 아두이노

다음은 Bing에서 rgb 아두이노 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [아두이노] RGB LED로 다양한 색 표현하기 with PWM에 대해서

  • 코딩
  • 아두이노
  • RGBLED
  • 삼색LED
  • PWM
  • 아두이노강좌
  • 아두이노작품
  • 아두이노활동
[아두이노] #RGB #LED로 #다양한 #색 #표현하기 #with #PWM에 #대해서


YouTube에서 rgb 아두이노 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [아두이노] RGB LED로 다양한 색 표현하기 with PWM에 대해서 | rgb 아두이노, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  올림픽 공원 자전거 | (Sub│4K) 올림픽공원 │ 자전거 라이딩│ Olympicpark, South Korea│Mindy'S Cycling Vlog From South Korea.71 36 개의 새로운 답변이 업데이트되었습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *