■ 가변 저항기(Potentiometer)를 사용해 LED 색상을 변경하고 수치를 LCD에 출력하는 방법을 보여준다.
▶ 부품 내역
1 2 3 4 5 6 7 8 9 |
─────────────────────── 구분 모델 수량 비고 ─────── ───────── ── ── POTENTIOMETER 10K Potentiometer 1 RGB LED MODULE 1 LCD LCD 1602 WITH 11C 1 ─────────────────────── |
▶ 부품 연결
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 |
────────────── 아두이노 10K Potentiometer ──── ───────── GND 왼쪽 핀 A0 가운데 핀 5V 오른쪽 핀 ────────────── ────────── 아두이노 RGB Module ──── ───── GND GND D13 R D12 G D11 B ────────── ────────────── 아두이노 LCD 1602 WITH 11C ──── ───────── A4 SDA A5 SCL 5V VCC GND GND ────────────── |
▶ 소스 코드
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 |
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(0 , 0); lcd.print("Color Mix"); lcd.setCursor(1 , 1); lcd.print("R="); lcd.setCursor(6 , 1); lcd.print("G="); lcd.setCursor(11, 1); lcd.print("B="); } void loop() { int red = map(analogRead(A0), 0, 1023, 0, 123); int green = map(analogRead(A0), 0, 1023, 0, 123); int blue = map(analogRead(A0), 0, 1023, 0, 123); analogWrite(11, red ); analogWrite(12, green); analogWrite(13, blue ); lcd.setCursor(13, 1); lcd.print(blue ); lcd.setCursor(8 , 1); lcd.print(green); lcd.setCursor(3 , 1); lcd.print(red ); delay(100); } |