소리로 전등을 꺼보자! 👏
< 1st Arduino proj. >
소리로 전등을 꺼보자 !
1. 서론
우연하게 하고 있는 인턴 일에서 하드웨어를 접할 기회가 많이 생겼고
그것 때문인지 덕분인지, 하드웨어에 관심이 생겼다.
마침 전에 디바이스마트 서포터즈 1기로 활동하며 받은
아두이노 키트가 집에 있어서
모처럼 주말을 맞아 꺼내보았고
그렇게 아두이노와 함께 주말을 전부 보내고 말아ㄸr,,,☆
뭐 암튼
일단 아두이노하면 빼놓을 수 없는
센서들과 친해지기 위해
기본 센서들을 이용해보기로 했다
그냥 센서에 대해 이론적인 걸 바로 보면 금방 재미없어질 것 같아
(이론적 지식에 대한 흥미 진입장벽이 높은 편 ..)
어떤 어떤 센서들을 이용해서 만들 수 있는 것들을 생각해보고 검색해보다가,
사운드 센서와 서보 모터를 이용해서
박수소리로 방 스위치 끄기 를 해보기로 결심했따
참고자료
- 아이디어 참고
https://bbs.ruliweb.com/hobby/board/300113/read/30559353 - 회로도 코드 참고
https://bsgwark.blogspot.com/2017/04/led-and-servo-motor-responding-to-sound.html
- 유투브 코사임당 사운드 센서 - 박수소리로 LED 전구를 켜고 끄는 예제 있음
https://www.youtube.com/watch?v=VU6Vzhyf9E4 - 유투브 코사임당 서보모터 - 기본적인 서보모터의 작동 원리
https://www.youtube.com/watch?v=ZKIKBeBCkQo - 유투브 코사임당 LED & 회로도에 대한 설명
https://www.youtube.com/watch?v=6TEaXPfJS40
여담이지만 이번 첫 프로젝트에 유투브 채널 '코사임당'이 정말루,,, 큰 도움이 되었다
(이 자리를 빌어 감사의 인사를 전해요,,,, THANK YOU !)
시간만 많다면 아두이노 센서들 소개해주시는 영상 하나하나 보고 싶은데,
일단 오늘은 사운드랑 서보모터 부분을 열심히 참고하며 코드를 짜보았다.
사운드 센서에 따라 박수소리를 인식하는 크기가 달라서
내 박수소리로 계속 테스트하며 값을 조정하였다.
C언어 문법 같은 경우는 학교에서도 수업하고 써 본적이 있던 터라
문법 자체는 어렵지 않았는데,
어려웠던 건 아무래도 아두이노가 동작하는 원리와
연결,,, 같은 거,,, 저항,,, 전류는 어디서 어디로,,, 이런 거 ....?!
아무튼.. 준비물부터 알아보자 ㅎuㅎ
준비물
- 서보모터
- 아두이노
- 사운드센서
- 점퍼 케이블
- (LED) 굳이 필요 없을 듯
코드는 위의 참고링크 중에서
티스토리 링크를 보면서 아이디어 흐름이나 연결 회로도 부분을 참고 하였고,
- 코사임당의 사운드 센서 영상 중 박수소리로 LED 제어하는 부분
- 각 경우에 따라 서보모터 작동 시키는 부분 추가
요런 식으로 코드를 완성했다.
브레드보드에 대한 기본 지식이 없어서
그동안은 아예 똑같이 따라하기만 했는데
어느 줄에서 어디끼리 연결되어있는지 같은 기본적인 지식을 익히고 나니
대충 연결시켜줘야하는 것끼리만 알아도 간단한 점퍼선 연결 정도는 할 수 있겠더라고
(아마?!)
코드
#include <Servo.h>
#define SOUND A0
#define LED 3
const int servoPin = 9;
Servo myservo;
int vol=0;
int light = 0;
void setup() {
pinMode(LED, OUTPUT);
myservo.attach(servoPin);
myservo.write(0);
}
void loop() {
// put your main code here, to run repeatedly:
vol = analogRead(SOUND);
if(vol >=79) {
if(light ==0){
light = 50;
analogWrite(LED, light);
delay(100);
myservo.write(180);
delay(1000);
}
else if(light ==50){
light = 255;
analogWrite(LED, light);
delay(100);
myservo.write(180);
delay(1000);
}
else{
light = 0;
analogWrite(LED, light);
delay(100);
}
myservo.write(0);
delay(1000);
}
}
완성
사실 아직도 잘 모르겠다
소리를 잡는게 아직 많이 부족하긴 하지만
그래도 이게 어디인가 !!~!
자주는 아니더라도 아두이노 관련 글을 꾸준히 써 보겠사와요
멀고도 험한
아두이노의 세계 ,,,,☆
Author And Source
이 문제에 관하여(소리로 전등을 꺼보자! 👏), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@minjung0067/소리로전등끄기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)