BASIC4MCU | 질문게시판 | 아두이노 부저 질문드립니다.
페이지 정보
작성자 h6in 작성일2019-11-24 19:34 조회3,755회 댓글0건본문
아두이노를 이제 공부중인 학생인데요
부저를 이용해 동요를 나오게 하는데
가변저항을 돌려서 동요의 On/Off같이
일정 가변저항(516)이하일 때 단음이 나오고
이상일땐 다시 동요가 나오게 하고싶은데
제가 작성한건 동요가 끝나야 단음이 나오더라구요,,
뭘 바꿔야할까요 ?
#include "pitches.h"
#define DURATION 10
#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 = 12;
int variableR = A3;
int R = 0;
int melody[] = {
NOTE_C5,NOTE_C5,NOTE_C5,NOTE_C5,NOTE_C5,
NOTE_E5,NOTE_G5,NOTE_G5,NOTE_E5,NOTE_C5,
NOTE_G5,NOTE_G5,NOTE_E5,NOTE_G5,NOTE_G5,NOTE_E5,
NOTE_C5,NOTE_C5,NOTE_C5,
NOTE_G5,NOTE_G5,NOTE_E5,NOTE_C5,
NOTE_G5,NOTE_G5,NOTE_G5,
NOTE_G5,NOTE_G5,NOTE_E5,NOTE_C5,
NOTE_G5,NOTE_G5,NOTE_G5,
NOTE_G5,NOTE_G5,NOTE_E5,NOTE_C5,
NOTE_G5,NOTE_G5,NOTE_G5,NOTE_A5,NOTE_G5,
NOTE_C6,NOTE_G5,NOTE_C6,NOTE_G5,
NOTE_E5,NOTE_D5,NOTE_C5
};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[]={
4,8,8,4,4,
4,8,8,4,4,
8,8,4,8,8,4,
4,4,2,
4,4,4,4,
4,4,2,
4,4,4,4,
4,4,2,
4,4,4,4,
8,8,8,8,2,
4,4,4,4,
4,4,2
};
void setup() {
pinMode(tonepin, OUTPUT);
pinMode(variableR, INPUT);
}
void loop() {
R = analogRead(variableR);
if(0<=R && R<516)
{
tone(tonepin,NOTE_G5);
}
else
{
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
조회수 3,755등록된 댓글이 없습니다.