산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 RGB 컬러 믹서 제작 – 단계별 튜토리얼

부품 및 소모품

아두이노 우노 (Arduino UNO) ×1
로터리 포텐셔미터 (일반) ×1
브레드보드 (일반) ×1
RGB LED ×1
저항 330Ω ×1
UTSOURCE 전자 부품 ×1

앱 및 온라인 서비스

프로젝트 소개

아두이노 컬러 믹서

이 튜토리얼은 아두이노와 전자 기초 지식이 조금 있으면 쉽게 따라할 수 있습니다. 아두이노가 익숙하지 않다면 튜토리얼 중간에 가이드 링크를 포함했습니다.

이 튜토리얼에서는 포텐셔미터를 돌리는 것만으로 표현 가능한 모든 색상을 생성합니다. 또한 RGB 컬러 모델을 이해하고 오늘날 디스플레이가 어떻게 작동하는지 배울 수 있습니다.

아두이노 아날로그 입/출력(I/O)을 사용하여 아날로그 전압을 읽고 쓰는 방법도 익힙니다.

이것은 제 첫 회로 시험작입니다(꽤 오래전, 포텐셔미터 값을 올릴 때 작은 문제가 있었지만 나중에 해결했습니다.)

1-1 부품 목록

시작해볼까요!

컬러 믹서의 원리는 아두이노가 아날로그 입력 핀의 포텐셔미터 입력 전압에 비례하는 전압을 RGB LED 핀에 출력하는 것입니다.

1-2 포텐셔미터 연결

포텐셔미터는 전압 분배 회로로, Vout이 아두이노 핀이 됩니다.

간단히 말해, 로터를 돌리면 조절 가능한 양의 전압이 아두이노 아날로그 입력 핀(Vout)으로 전달됩니다.

이미지처럼 포텐셔미터를 연결하세요. 양쪽 단자를 5V나 GND 중 어디에 연결해도 상관없지만, 가장 중요한 연결은 중간 단자로 아날로그 입력 핀에 연결해야 합니다.

5V와 GND는 아두이노 핀에서 가져옵니다.

빨간색 대신 주황색을 5V용으로 사용하여 전원선과 신호선을 쉽게 구분했습니다.

색상별로 3개 포텐셔미터 모두 동일하게 연결합니다.

연결을 깔끔하게 유지하기 위해 빨강 포텐셔미터를 A0, 초록을 A1, 파랑을 A2에 연결했습니다.

1-3 RGB LED 연결

RGB LED는 일반 LED(다이오드)와 같은 원리지만, 3개의 LED가 나란히 있어 망막에 빛이 도달하면 단일 결합 색상으로 인식됩니다.

각 PWM 출력당 256단계, R/G/B 3핀이므로 총 256 × 256 × 256 = 16,777,216가지 색상(약 1,700만)을 표현할 수 있습니다.

RGB LED는 일반 LED 연결 방식과 동일하게 3번 반복하면 됩니다.

330Ω 저항을 꼭 연결하세요! 제가 이 실수로 빨간색 LED를 태워먹었습니다. 전기는 LED를 태우는 데 전혀 힘을 쓰지 않으니 주의하세요.

이제 완성된 회로입니다. 코드는 정말 단순하고 직관적입니다.

코딩하기

아두이노 코드는 다음 작업을 순차적으로 수행합니다.

Setup에서

Loop에서

코드는 아래에 있습니다.

제 최종 결과물입니다. 빨간색 LED가 타버려서 첫 번째 포텐셔미터에 연결된 빨간색은 작동하지 않습니다.

이제 1,700만 색상을 내는 궁극의 컬러 제너레이터가 완성되었습니다! 축하합니다!

좋아하시면 공유와 추천 부탁드립니다 :) 전자 부품은 utsource.net에서 구매 가능합니다.

1Sheeld를 이용한 2륜 구동 로봇 제작 튜토리얼도 확인해보세요.

코드

아두이노

/* 포텐셔미터로 RGB LED 제어
   Name: RGBLedPot.ino
   Created: 17/2/16 9:47:03 AM
   Author: Ahmed Hamdy
   GNUPL 3.0+ */

// 설정 함수는 리셋 또는 전원 투입 시 한 번 실행
int inRGB[] = { A0, A1, A2 }; // 포텐셔미터 값을 읽을 아날로그 입력 핀
int outRGB[] = { 9, 10, 11 }; // RGB LED 각 색상 밝기 제어용 PWM 출력 핀
int tempValue = 0; // 임시 변수
const int inMinVal = 0, inMaxVal = 1023; // 포텐셔미터 읽기 값의 최소/최대 범위

void setup() {
  // 3개 색상(빨강, 초록, 파랑) 핀 순회
  for (int i = 0; i < 3; i++) {
    pinMode(inRGB[i], INPUT);   // 포텐셔미터 값 읽기용 핀 설정
    pinMode(outRGB[i], OUTPUT); // RGB LED 출력용 핀 설정
  }
}

// 루프 함수는 전원 차단 또는 리셋까지 반복 실행
void loop() {
  // 각 색상별 반복
  for (int i = 0; i < 3; i++) {
    tempValue = analogRead(inRGB[i]); // 포텐셔미터 읽기
    // 포텐셔미터 읽기 값(0~1023)을 유효한 PWM 값(0~255)으로 스케일 다운
    tempValue = map(tempValue, inMinVal, inMaxVal, 0, 255);
    // 핀에 출력 쓰기
    analogWrite(outRGB[i], tempValue);
  }
}

회로도

아두이노 RGB 컬러 믹서 제작 – 단계별 튜토리얼

제조공정

  1. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  2. 아두이노 아이언맨 제작: 부품, 센서, 단계별 가이드
  3. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  4. 아두이노 구동 3D 프린팅 로봇 팔 만들기: 단계별 가이드
  5. 아두이노 릴레이 제어 가습기 자동화 – 고전압 안전 설계
  6. 아두이노 RGB LED 컬러 믹서: 입문자 친화적 DIY 프로젝트
  7. 아두이노 나노와 네오픽셀 매트릭스로 만드는 네온 퐁 게임
  8. 게이밍용 커스텀 아두이노 조이스틱 스티어링 휠 만들기
  9. 아두이노와 TEA5767 모듈로 만드는 고성능 FM 라디오 수신기
  10. 아두이노 101로 만보기 만들기: DHT11 센서와 LCD 디스플레이 활용