Tags
- EasyEDA
- odyssey x86J4105
- 아두이노
- 태양광 휴대폰케이스
- artwork
- 체험지수
- pcb
- 태양 충전 케이스
- Video
- 윈도우10
- 태양광 충전 휴대폰케이스
- RQ-TITAN
- JLCPCB
- Imitating Arm
- UART
- PCB Artwork
- SIOR-TITAN
- motion recognition
- 태양전지
- 모션제어
- Motion Estimation
- Python
- 태양광
- 오디세이 x86
- opencv-python
- Canny
- 태양광 충전케이스
- pcb 설계
- Arduino
- opencv
Archives
- Today
- Total
제너럴공국
초간단 아두이노 무드등 만들기 실습! 본문
반응형
<작품 소개>
초음파 센서 HC-SR04와 블루투스 모듈 HC-06를 활용한 초간단 무드등을 만들어보겠습니다.
- 기본 상태: 노란 불빛
- 초음파 센서에서 근거리 감지 시: 붉은 불빛
- 블루투스를 통한 제어: 보라색(send 1), 주황색(send 2), 초록색(send 3)
<재료>
- 초음파 센서 HC-SR04 1개
- Adafruit Neopixel Jewel 1개
- 블루투스 모듈 HC-06 1개
- 아두이노 우노 1개
- 브레드보드
- 점퍼선(암-수, 수-수)
- 3D 프린터 출력물
<회로 구성>
아래와 같이 회로를 구성해주세요.
<.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
<작동 모습>
위처럼 5가지 색상을 나타낼 수 있게 했습니다. 각 색상을 나타내는 조건은 다음과 같습니다.
평상시에는 노란색, 가까워지면 붉은색, 블루투스로 '1'을 전송하면 보라색, '2'를 전송하면 주황색, '3'을 전송하면 초록색이 켜집니다.
<제작 시 유의사항>
1. 무드등을 제작하기 위해서는 빛이 강한 조명장치를 사용하고 얇은 3D 프린터 출력물을 사용해야 합니다. 저는 NeoPixel을 사용하고, 무드등 역할로 설계된 3D 모델링 파일을 사용하였습니다.
2. 네오 픽셀과 같은 LED의 경우 해당 LED를 사용하기 위해 라이브러리를 포함해야 합니다. 본인이 선택한 LED에 맞는 라이브러리를 꼭 포함해주세요. 저의 경우 NeoPixel을 사용하기 위해 #include <Adafruit_NeoPixel.h>를 했습니다.
반응형
'전자전기공학 > Arduino' 카테고리의 다른 글
[아두이노] 풀다운 저항 연결하기 (1) | 2021.01.26 |
---|---|
[아두이노] UART 시리얼 통신 함수 (1) | 2021.01.14 |
Comments