코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2015-01-20 15:59:02
테레민이라는 악기를 들어보신 적이 있으신가요?
만약 들어보신 적이 없다면 아래의 영상을 먼저 봐주세요!
테레민은 러시아의 음향 물리학자이자 첼리스트이기도 한 테레민(Léon Theremin)이 개발한 악기로써 두 고주파 발진기의 간섭에 의해 생기는 소리를 이용하여 1920년에 발명한 전자악기 입니다.
No | 부품명 | 수량 |
1 | 오렌지 보드 | 1 |
2 | 초음파센서 | 1 |
3 | 피에조 부저 | 1 |
4 | 점퍼 케이블 | 11 |
5 | 브레드 보드 | 1 |
부품명 | 오렌지 보드 | 초음파 센서 | 피에조 부저 | 점퍼 케이블 | 브레드 보드 |
부품 사진 |
/*
* site : Kocoafab.cc
* date : 2018.06.01
*/
//모듈의 핀 번호 선언
int piezoPin = 3;
int echoPin = 13;
int trigPin = 12;
void setup() {
//모듈 핀모드(pinMode) 선언
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(piezoPin, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
digitalWrite(echoPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duration = pulseIn(echoPin, HIGH);
float distance = duration / 29.0 / 2.0;
/*
* 측정된 거리값을 사용하여 거리에 맞는 음계 출력(6옥타브 음계 출력)
* 50cm 미만일 때 소리가 출력됩니다. 50cm를 초과하면 소리 X
* 5cm간격으로 5, 10, 15, 20, 25씩 소리가 출력됩니다.
*/
if (distance < 50) {
if (distance <= 5) {
tone(piezoPin, 1047); //도
} else if (distance <= 10) {
tone(piezoPin, 1174); //레
} else if (distance <= 15) {
tone(piezoPin, 1318); //미
} else if (distance <= 20) {
tone(piezoPin, 1396); //파
} else if (distance <= 25) {
tone(piezoPin, 1567); //솔
} else if (distance <= 30) {
tone(piezoPin, 1760); //라
} else if (distance <= 35) {
tone(piezoPin, 1975); //시
} else if (distance <= 40) {
tone(piezoPin, 2093); //도
}
}
else {
noTone(piezoPin);
}
delay(100);
}
코드에서는 초음파 거리 센서에서 손과의 거리를 측정한 이 후에 거리값을 통해 5cm단위로 구분하여 tone()함수로 소리를 출력합니다.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!