제너럴공국

초간단 아두이노 무드등 만들기 실습! 본문

전자전기공학/Arduino

초간단 아두이노 무드등 만들기 실습!

제너럴3세 2020. 8. 3. 20:51
반응형

<작품 소개>

초음파 센서 HC-SR04와 블루투스 모듈 HC-06를 활용한 초간단 무드등을 만들어보겠습니다.

  • 기본 상태: 노란 불빛
  • 초음파 센서에서 근거리 감지 시: 붉은 불빛
  • 블루투스를 통한 제어: 보라색(send 1), 주황색(send 2), 초록색(send 3)

<재료>

  • 초음파 센서 HC-SR04 1개
  • Adafruit Neopixel Jewel 1개
  • 블루투스 모듈 HC-06 1개
  • 아두이노 우노 1개
  • 브레드보드
  • 점퍼선(암-수, 수-수)
  • 3D 프린터 출력물

<회로 구성>

아래와 같이 회로를 구성해주세요.

HC-06를 사용했지만 시뮬레이션 툴에선 HC-05로 나타내었습니다.

 

실제 회로 모습입니다.


<.ino 코드 작성>

#include <SoftwareSerial.h>
#include <Adafruit_NeoPixel.h> //네오픽셀 작동을 위한 라이브러리 추가

#ifdef __AVR__
#include <avr/power.h> //AVR 프로세서 작동을 위한 파워선택
#endif

#define trig 8
#define echo 9
#define PIN 7 //NeoPixel 핀번호
#define NUMPIXELS 7           
#define BRIGHTNESS 250 //최대 밝기 0~255에서 선택 가능

char received_bt;
SoftwareSerial BTSerial(2, 3); // 순서 RX, Tx
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

//내가 만든 rgb 값 설정해주는 함수
void turn_on(int red, int green, int blue){
  for(int i=0; i< NUMPIXELS;i++){
      pixels.setPixelColor(i, red, green, blue);
  }
    pixels.show();
    return;
}

void setup(){
  Serial.begin(9600);
  BTSerial.begin(9600);
  pixels.begin();
  pixels.setBrightness(BRIGHTNESS);    //  최대 255 BRIGHTNESS 만큼 밝기 설정
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  Serial.println("bluetooth&ultrasound connected");
}

void loop(){
  turn_on(255,255,0);
  //블루투스 코드
  if(BTSerial.available()){
    received_bt = BTSerial.read();
    Serial.write(received_bt);
    if(received_bt == '1'){
      turn_on(139,0,255);
      delay(2000);
    }
    if(received_bt == '2'){
      turn_on(255,127,0);
      delay(2000);
    }
    if(received_bt == '3'){
      turn_on(0,255,0);
      delay(2000);
    }
  }

  //초음파 센서 코드
  float distance;
  digitalWrite(trig, LOW); delayMicroseconds(5);
  digitalWrite(trig, HIGH); delayMicroseconds(10);
  digitalWrite(trig, LOW);
//초음파는 초당 340m 29마이크로초당 1cm)
  distance = pulseIn(echo, HIGH)/(29*2);
  if (distance < 4){
    Serial.print("거리:");
    Serial.print(distance);
    Serial.println("cm");
    turn_on(255,0,0);
    delay(200);
  }
  delay(200);
}

<무드등 외관 출력>

저는 이 램프가 이뻐서 이걸로 3D 프린팅 했습니다.

https://www.thingiverse.com/thing:2966757

 

Modern lamp (mood lamp) by Abolin

Hi, Before you make the lamp you need a few components. 12V or 6V adapter 12V or 6V LED strip I used 6cm of LED strip When you have those you should be good to go, the design is made to fit everything it can be tricky to connect the LED strip to the contro

www.thingiverse.com


<작동 모습>

여러가지 색을 통한 무드등 제어

위처럼 5가지 색상을 나타낼 수 있게 했습니다. 각 색상을 나타내는 조건은 다음과 같습니다.

색상 변환 조건입니다.

 평상시에는 노란색, 가까워지면 붉은색, 블루투스로 '1'을 전송하면 보라색, '2'를 전송하면 주황색, '3'을 전송하면 초록색이 켜집니다.


<제작 시 유의사항>

1. 무드등을 제작하기 위해서는 빛이 강한 조명장치를 사용하고 얇은 3D 프린터 출력물을 사용해야 합니다. 저는 NeoPixel을 사용하고, 무드등 역할로 설계된 3D 모델링 파일을 사용하였습니다.

2. 네오 픽셀과 같은 LED의 경우 해당 LED를 사용하기 위해 라이브러리를 포함해야 합니다. 본인이 선택한 LED에 맞는 라이브러리를 꼭 포함해주세요. 저의 경우 NeoPixel을 사용하기 위해 #include <Adafruit_NeoPixel.h>를 했습니다.

반응형
Comments