코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-09-22 10:35:05
NO | 부품명 | 수량 | 상세설명 |
1 | 아두이노 우노 | 1 | 아두이노 |
2 | 7SMD RGB LED | 2 | DFRobot |
3 | 사운드 센서 | 1 | |
4 | 유리병 | 2 | |
5 | 스피커 | 1 | |
6 | 케이블 | 10-15 |
부품명 | 아두이노 우노 | 7SMD RGB LED | 사운드 센서 | 유리병 | 스피커 | 케이블 |
부품 사진 |
const int Soundsensor = A0; //사운드 센서 핀번호 const int sensitivity = 684; //사운드 센서 감도(초기값) int prevVal = 0; int sensorstate = 0; int val = 0;
//7SMD RGB LED 핀번호 int B_1 = 3; int G_1 = 5; int R_1 = 6; int B = 9; int G = 10; int R = 11; void setup() {
//핀모드 설정 pinMode(Soundsensor, INPUT); for(int i=9;i<12;i++) pinMode(i,OUTPUT); pinMode(B_1,OUTPUT); pinMode(G_1,OUTPUT); pinMode(R_1,OUTPUT);
//시리얼통신 초기화 Serial.begin(9600); } void loop() {
//하나의 7 SMD RGB LED는 파란색에서 빨간색으로 변환
//다른 하나의 7 SMD RGB LED는 녹색에서 파란색으로 변환 for(int i = 0; i < 255; i++) { sensorstate = analogRead(Soundsensor)-sensitivity; measureSoundValue(sensorstate, prevVal); Serial.println(val);
//사운드센서에서 값이 측정될 경우 녹색 LED의 밝기값이 변화 analogWrite(B,255-i); analogWrite(R,i); blinkLED(G,val);
//다른 하나는 파란 LED의 밝기값이 변화 analogWrite(B_1,i); blinkLED(R_1,val); analogWrite(G_1,255-i); val = 0; prevVal = sensorstate; delay(50); }
//하나의 7 SMD RGB LED는 빨간색에서 녹색으로 변환
//다른 하나의 7 SMD RGB LED는 파란색에서 빨간색으로 변환 for(int i = 0; i < 255; i++) { sensorstate = analogRead(Soundsensor)-sensitivity; measureSoundValue(sensorstate, prevVal); Serial.println(val); //사운드센서에서 값이 측정될 경우 파란 LED의 밝기값이 변화 blinkLED(B,val); analogWrite(R,255-i); analogWrite(G,i); //다른 하나는 녹색 LED 밝기값이 변화 analogWrite(B_1,255-i); analogWrite(R_1,i); blinkLED(G_1,val); prevVal = sensorstate; val = 0; delay(50); }
//하나의 7 SMD RGB LED는 녹색에서 파란색으로 변환
//다른 하나의 7SMD RGB LED는 빨간색에서 녹색으로 변환 for(int i = 0; i < 255; i++) { sensorstate = analogRead(Soundsensor)-sensitivity; measureSoundValue(sensorstate, prevVal); Serial.println(val); //사운드센서에서 값이 측정될 경우 빨간 LED의 밝기값이 변화 analogWrite(B,i); blinkLED(R,val); analogWrite(G,255-i); //다른 하나는 파란 LED의 밝기값이 변화 blinkLED(B_1,val); analogWrite(R_1,255-i); analogWrite(G_1,i); prevVal = sensorstate; val = 0; delay(50); } delay(10); }
//사운드센서의 측정값에 따라 7 SMD RGB LED의 특정 LED를 깜빡거리게 하는 함수 void blinkLED(int pinNum ,int brightness) { analogWrite(pinNum, brightness); analogWrite(pinNum, 0); analogWrite(pinNum, brightness); }
//사운드센서가 측정하는 값에 크기에 따라 LED의 수치를 임의적으로 조절하는 함수 void measureSoundValue(int sensorstate, int prevVal) { if(abs(sensorstate - prevVal) > 31 ) val = 240; else if(abs(sensorstate - prevVal) > 28 ) val = 210; else if(abs(sensorstate - prevVal) > 25 ) val = 180; else if(abs(sensorstate - prevVal) > 22 ) val = 150; else if(abs(sensorstate - prevVal) > 19 ) val = 120; else if(abs(sensorstate - prevVal) > 16 ) val = 90; else if(abs(sensorstate - prevVal) > 13 ) val = 60; else if(abs(sensorstate - prevVal) > 10 ) val = 30; else if(abs(sensorstate - prevVal) > 7 ) val = 0; }
analogWrite(B,255-i);
analogWrite(R,i);
blinkLED(G,val);
void measureSoundValue(int sensorstate, int prevVal) { if(abs(sensorstate - prevVal) > 31 ) val = 240; else if(abs(sensorstate - prevVal) > 28 ) val = 210; else if(abs(sensorstate - prevVal) > 25 ) val = 180; else if(abs(sensorstate - prevVal) > 22 ) val = 150; else if(abs(sensorstate - prevVal) > 19 ) val = 120; else if(abs(sensorstate - prevVal) > 16 ) val = 90; else if(abs(sensorstate - prevVal) > 13 ) val = 60; else if(abs(sensorstate - prevVal) > 10 ) val = 30; else if(abs(sensorstate - prevVal) > 7 ) val = 0; }
수박쨈