본문으로 바로가기

아두이노(Arduino) DIY 프로젝트 화장대에 밝기 조정 가능한 조명 설치하기 2편



안녕하세요. 애드라이프 입니다.

아내의 화장대에 조명을 달아 주기 위한 프로젝트 중 그 2번째 포스팅입니다. 

오늘 다뤄볼 부품은 0.96인치 모노크롬 128x64 OLED입니다.

그전에 한가지 집고 넘아가야 할 점이 있습니다.

첫번째 포스팅에서 네오픽섹 조명에 대한 컨트롤을 다뤘었습니다만, 가장 필요한 흰색조명 컨트롤에 문제가있어서

결국은 조명을 바꿨습니다. 

기존에 RGB 3개의 LED를 컨트롤 했다면 RGBW 4개의 LED컨트롤이 가능한 모델로 바꿨습니다.▼

아두이노(Arduino) DIY 프로젝트 화장대에 밝기 조정 가능한 조명 설치하기 2편아두이노(Arduino) DIY 프로젝트 화장대에 밝기 조정 가능한 조명 설치하기 2편


구매 및 제품 사양은 링크를 참고해 주세요.



네오픽셀 구매링크

라이브러리와 사용법은 거의 같습니다. 다른점은


네오픽셀 RGB -> Adafruit_NeoPixel strip = Adafruit_NeoPixel(30, NEO_PIN, NEO_GRB + NEO_KHZ800);

네오픽셀 RGBW ->Adafruit_NeoPixel strip = Adafruit_NeoPixel(30, NEO_PIN, NEO_GRBW + NEO_KHZ800);


네오픽셀 RGBW -> strip.setBrightness(0~255중 밝기 값); 


 네오픽셀 RGB ->  colorWipe(strip.Color(RED, GREEN, BLUE), DELAY); 

    네오픽셀 RGBW ->colorWipe(strip.Color(RED,GREEN,BLUE,WHITE),DELAY);


프로그램상 다른점은 위와 같습니다.


그럼 본격적으로 두번째 포스팅 주제인 0.96인치 모노크롬 128x64 OLED를 살펴 보겠습니다.

아두이노(Arduino) DIY 프로젝트 화장대에 밝기 조정 가능한 조명 설치하기 2편

실제 크기는 성인 남성 엄지 손가락 보다 조금 큰정도 입니다. 매우 작죠?


위 사진을 보면 알겠지만 전원 핀을 제외한 핀의 이름이 SCK와 SDA입니다.

I2C인터페이스를 사용하여 통신하는 부품이라는 뜻입니다.

아두이노의 아날로그 핀인 A4, A5핀에 연결하면 됩니다.


글로만 보면 잘 이해가 안될 수 있으니 회로도를 살펴보고록 하겠습니다.▼

아두이노(Arduino) DIY 프로젝트 화장대에 밝기 조정 가능한 조명 설치하기 2편

전원 공급은 5V나 3.3V나 아무거나 사용하셔도 됩니다.

여기서 화장대에 조명을 다는데 OLED를 왜 사용하는지에 대한 의문이 있을 수 있습니다만.

저는 밝기 조정과 색변경이 되는 조명을 설치하는 것이 목적이기 떄문에 간단한 설명과

LED밝기를 0으로 했을 경우에 LED는 꺼져있는 상황이기때문에 OLED화면으로 전원의 ON/OFF를 알기 쉽게 하기 위함입니다.


OLED제어를 위한 프로그램을 살펴보기 전에 I2C 인테페이스를 사용기때문에 

Wire.h 라이브러리는 필수입니다.

그이외에 OLED에 표시할 폰트등을 지원하는 Adafurt_GFX.h 라이브러리와

OLED를 구동하는 IC를 제어하는 Adafruit_SH1106.h 라이브러리를 추가해야합니다.

해당 라이브러리는 아래 첨부해 두겠습니다.


Adafruit_SH1106-master.zip

Adafruit-GFX-Library-master.zip


라이브러리도 살펴 보았으니 이제 본격적인 프로그램을 살펴 보겠습니다.▼

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
//Steemit님의 예제를 응용한 것입니다.
 
#include <Wire.h>                                    //I2C 사용하기 위한 라이브러리 추가
#include <Adafruit_GFX.h>                            //OLED에 사용될 글씨 폰트를 지원하는 라이브러리 추가
#include <Adafruit_SH1106.h>                        //OLED 구동 IC를 제어하는 라이브러리 추가
 
#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET);
 
void setup() {
Serial.begin(9600);
display.begin(SH1106_SWITCHCAPVCC, 0x3C);            //해당 주소값 지정 
display.clearDisplay();                                //화면을 지웁니다.
 
// text display tests
Steemitdrawchar();                                    //출력하고자 하는 글씨를 작성한 함수
display.display();                                    //화면에 출력
delay(1000);
display.clearDisplay();
 
}
 
void Steemitdrawchar(void) {
display.setTextSize(3);                                //폰트사이즈
display.setTextColor(WHITE);                        //색은 흰색만 사용가능합니다.
display.setCursor(0,0);                                //글씨가 시작되는 좌표지정
display.println("ADDLIFE");                            //원하는 글씨 
display.display();
 
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,30);
display.println("ADDLIFE");
display.display();
 
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,55);
display.println("ADDLIFE");
display.display();
}
 
void loop() {
}//끝
cs

프로그램의 전체적인 흐름인 주석을 참고해주세요.(옆으로 넘기면서 보실 수 있습니다.)



프로그램을 업로드한 결과를 사진으로 확인하면서 이번 포스팅을 끝내겠습니다.

아두이노(Arduino) DIY 프로젝트 화장대에 밝기 조정 가능한 조명 설치하기 2편


지금까지 아두이노(Arduino) DIY 프로젝트 화장대에 밝기 조정 가능한 조명 설치하기 2편 포스팅이였습니다.

계속해서 도움되는 포스팅으로 찾아 뵙겠습니다.

by 애드라이프