BASIC4MCU | 질문게시판 | 아두이노 수동부저와 led제어
페이지 정보
작성자 비공개 작성일2018-06-19 09:32 조회14,869회 댓글0건본문
현재 아두이노를 이용해 수동부저와 led제어를 하고있습니다.
아두이노에 멜로디를 넣어 수동부저에 멜로디가 재생되는것까지는 했는데 제가 원하는 동작인
멜로디 계이름에 led하나씩 1대1로 동작을 하는것입니다. 예를들어 계이름 도가 실행되면 led1이 동작되고 레가 실행되면 led2가 실행되는 방식을 원하는데 잘안되서 올려봅니다.
#define NOTE_C5 523 //도
#define NOTE_D5 587 //레
#define NOTE_E5 659 //미
#define NOTE_F5 698 //파
#define NOTE_G5 784 //솔
#define NOTE_A5 880 //라
#define NOTE_B5 988 //시
#define NOTE_C6 1047 //도 <<계이름 설정int tonepin=8;
int led1=4;
int led2=5;
int led3=6;
int led4=7;
int melody[]={ //떳다 떳다 비행기 계이름
NOTE_E5,NOTE_D5,NOTE_C5,NOTE_D5,NOTE_E5,NOTE_E5,NOTE_E5, //미레도레미미미
NOTE_D5,NOTE_D5,NOTE_D5, //레레레
NOTE_E5,NOTE_G5,NOTE_G5, //미솔솔
NOTE_E5,NOTE_D5,NOTE_C5,NOTE_D5,NOTE_E5,NOTE_E5,NOTE_E5, //미레도레미미미
NOTE_D5,NOTE_D5,NOTE_E5,NOTE_D5,NOTE_C5, //레레미레도
};int noteDurations[]={ //박자 계산 2분음표, 4분음표, 8분음표
2,8,4,4,4,4,2,
4,4,2,
4,4,2,
2,8,4,4,4,4,2,
4,4,4,4,2
};void setup(){
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}void loop(){
{
if(digitalRead(melody[NOTE_C5]) == HIGH){
digitalWrite(led1, HIGH);
}else{
digitalWrite(led1, LOW);
}
if(digitalRead(melody[NOTE_D5]) == HIGH){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
if(digitalRead(melody[NOTE_E5]) == HIGH){
digitalWrite(led3, HIGH);
}else{
digitalWrite(led3, LOW);
}
if(digitalRead(melody[NOTE_F5]) == HIGH){
digitalWrite(led4, HIGH);
}else{
digitalWrite(led4, LOW);
}
}{ for(int i=0; i<49; i++){
int Durations=1000/noteDurations[i]; //음계의 음길이 계산
tone(tonepin, melody[i],Durations);
int pauseBetweenNotes=Durations*1.3;
delay(pauseBetweenNotes);
noTone(tonepin);
}
}
}
댓글 0
조회수 14,869등록된 댓글이 없습니다.