스마트폰에서 아두이노에 연결된 블루투스 모듈에 신호를 보내서 역시 아두이노 연결된 스피커로 사운드를 출력하려고 하는데 코드가 먹통이네요;; 새벽엔 잘 되었던 것 같은데 어딜 잘못 건든건지...
대략 코드는 이렇습니다.
#include <SoftwareSerial.h>
#include "pitches.h" // 노트에 따른 각 음이 들어있습니다.
SoftwareSerial BTSerial(2, 3);
int buzz = 12;
int melody[] = {
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
4, 8, 8, 4, 4, 4, 4, 4
};
void setup(){
Serial.begin(9600);
BTSerial.begin(9600);
}
void loop(){
if (BTSerial.available()){
Serial.write(BTSerial.read());
}
if (Serial.available()){
byte data = BTSerial.read();
BTSerial.write(Serial.read());
Serial.write(data);
if (data == '0') {
noTone(buzz);
BTSerial.write("off");
Serial.write("off");
}
else if (data == '1') {
for (int thisNote = 0; thisNote < 8; thisNote++) { // BT 모듈 안에 넣지 않고 void loop 바로 아래 넣으면 잘 돌아갑니다.
int noteDuration = 1000 / noteDurations[thisNote];
tone(buzz, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(buzz);
}
BTSerial.write("on");
Serial.write("on");
}
else {
BTSerial.write(" ");
}
}
}
아시는 분 있으면 답변 부탁드리겠습니다 :(