프라모델

LED 제어 관련 아두이노 문법 #2 (블루투스 및 아날로그 출력)

여우래비 2019. 8. 18. 19:58
반응형

모장혼이라는 중국 업체에서 PG 유니콘 호환용 LED Kit 를 출시 했다.

아래 영상을 보면 알겠지만, 단순히 LED를 On/Off 하는 것만 아니라, 색상도 변하고 다양한 LED 출력을 선보인다.

https://www.youtube.com/watch?v=8QBtX5DzGq0

이와 비슷한 효과를 자작으로도 가능하게 하는 스마트라이트라는 Kit 가 예전에 판매 되었는데,

현재는('19.8월) 아쉽게도 판매 중단 상태이다.

스마트라이트는 원래 레고 용도에서 출발하였는데, 스마트폰으로 LED를 제어하여 다양한 효과를 낼 수 있도록 한다.

관련 영상은 아직 유튜브에 많이 남아 있는데, 사용자가 쉽게 자작하여 여러가지 효과를 줄 수 있었던 Kit 였던것 같다. 

여러가지 색상을 한개의 LED 로도 가능하게 하는 RGB LED 는 일반 SMD LED 에 비해 크기가 크므로 추후에 구현을 고민해 보기로 하고

이번에는 아두이노를 이용, 블루투스로 여러개의 LED 를 서서히 키고, 서서히 끄기를 구현해 보기로 한다.

 

▣ 아두이노를 이용한 다수 LED 블루투스 제어

준비물: 아두이노, 블루투스 모듈 (HC-06), LED 6개

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
48
49
50
51
52
53
54
55
#include <SoftwareSerial.h>
 
SoftwareSerial hc06(12,13); //Tx, Rx
 
int i=0
 
void setup() {
  hc06.begin(9600); 
  pinMode (11, OUTPUT);
  pinMode (10, OUTPUT);
  pinMode (9, OUTPUT);
  pinMode (6, OUTPUT);
  pinMode (5, OUTPUT);
  pinMode (3, OUTPUT);
}
 
void loop() {
if(hc06.available()){ // 만약 hc06에 데이터의 입력이 있으면 
 int  a = hc06.read(); // int형 a에 입력값을 저장한다
  if(a == '1'// 만약 입력값이 1이면
    {
    On_fadeIn();  // 서서히 켜기 함수 호출
    }
  if(a == '2'// 만약 입력값이 2이면 
    {
    Off_fadeOut();  // 서서히 끄기 함수 호출
    }
  }
}
 
//서서히 켜기 함수 정의
void On_fadeIn(){ 
  for (i=0; i<=255; i++) {
      analogWrite(11, i);
      analogWrite(10, i);
      analogWrite(9, i);
      analogWrite(6, i);
      analogWrite(5, i);
      analogWrite(3, i);
      delay(2); 
  }
}
 
//서서히 끄기 함수 정의
void Off_fadeOut(){
  for (i=255; i>=0; i--) {
      analogWrite(11, i);
      analogWrite(10, i);
      analogWrite(9, i);
      analogWrite(6, i);
      analogWrite(5, i);
      analogWrite(3, i);
      delay(2);
  }
}
cs

 

 

회로가 구성되었으면, 구글 PlayStore 에서 "BlueTooth Serial Controller" 앱을 다운받는다.

아이폰용 앱은 있는지 잘 모르겠다.

앱을 실행시키면, 아래와 같은 화면이 뜬다.

9개 Keypad 에서 두개는 필자가 이미 설정해 놓았기 때문에 1, 2 로 표시되어 있다. 설정이 없으면 def 로 표시된다.

 

우측상단의 "PREFERENCE"를 클릭한 후, Command 를 클릭한다.

 

버튼 배열이 나오고, 밑으로 조금 내려보면 설정 메뉴가 나온다.

 

button1 에 "1"을, button2 에 "2"를 할당한다.

button1 에 "1" 할당. button2 도 동일한 방법으로 "2" 할당.

 

첫화면으로 돌아온 후, 중앙 상단에 "CONNECT" 를 클릭하여 "BTSlave" 를 클릭한다.

 

정상적으로 연결되면, 좌측 상단에 connected 라고 표시 될 것이다.

아래는 동작 동영상이다.

 

이번 포스트 끝.

반응형