蜂鳴器在嵌入式系統中,是很常見的硬體裝置,因為它可以發出聲音,提示操作者目前系統的狀態,本文將說明如何加入蜂鳴器功能。
// (C) 2015, Bridan Wang, CC BY-NC-SA 3.0 TW
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)
// pin 8 Buzzer
#include "MeBuzzer.h"
MeBuzzer buzzer;
byte pitch = 0;
byte pitch = 0;
const PITCH[] = {
// C C# D D# E F F# G G# A A# B
// C C# D D# E F F# G G# A A# B
0, 131, 139, 147, 156, 165, 175, 185, 196, 208, 220, 233, 247,
};
};
// pin 2,3 IR
#include "MeIR.h"
MeIR ir;
const byte IR_CODE[][13] = {
//X, 1, 2, 3, 4, 5, 6, 7, A, B, C, D, E,
0, 12, 24, 94, 8, 28, 90, 66, 69, 70, 71, 68, 67,
0, 1, 3, 5, 6, 8, 10, 12, 7, 9, 11, 2, 4,
};
void IR_CHECK() { // for mBot car
static byte sound = 0;
static byte pre_ir;
byte i;
byte j;
0, 12, 24, 94, 8, 28, 90, 66, 69, 70, 71, 68, 67,
0, 1, 3, 5, 6, 8, 10, 12, 7, 9, 11, 2, 4,
};
void IR_CHECK() { // for mBot car
static byte sound = 0;
static byte pre_ir;
byte i;
byte j;
if (sound != 0){
if (--sound == 0) {
buzzer.noTone();
ir.loop();
}
}
if (sound==0) {
j = ir.key();
for (i = 12; i<13; i--) {
if (j == IR_CODE[0][i] && pre_ir != j) {
pre_ir = j;
if (i==0)
;
else {
pitch = IR_CODE[1][i];
buzzer.tone(PITCH[pitch]);
sound = 2; // 2 x 100ms
// Serial.print("IR - ");
// Serial.println(pitch);
}
break;
}
}
}
if (sound == 0)
ir.loop();
if (--sound == 0) {
buzzer.noTone();
ir.loop();
}
}
if (sound==0) {
j = ir.key();
for (i = 12; i<13; i--) {
if (j == IR_CODE[0][i] && pre_ir != j) {
pre_ir = j;
if (i==0)
;
else {
pitch = IR_CODE[1][i];
buzzer.tone(PITCH[pitch]);
sound = 2; // 2 x 100ms
// Serial.print("IR - ");
// Serial.println(pitch);
}
break;
}
}
}
if (sound == 0)
ir.loop();
}
