ソースコードの変更 |
 |
#include <SD.h>
#include <SPI.h>
#include <arduino.h>
#include <MusicPlayer.h>
#define NUM_LED 12
const int knockSensor[NUM_LED] =
{A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15};
int sensorReading[NUM_LED] =
{0,0,0,0,0,0,0,0,0,0,0,0};
const int threshold = 10;
bool on_off_flg[NUM_LED] ={
false,false,false,false,false,false,false,false,false,false,false,false};
int led[NUM_LED] ={2,3,4,5,6,7,8,
9,10,11,12,13};
int note[NUM_LED] =
{48,62,64,65,67,69,71,72,74,76,77,79};
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
player.beginInMidiFmt();
player.midiWriteData(0xB0, 0x07, 127);
player.midiWriteData(0xB0, 0x0b, 127);
player.setVolume(10);
int i;
for(i=0;i<NUM_LED;i++)
{
player.midiWriteData(0x90, note[i],
127);
analogWrite(led[i], 150);
delay(500);
analogWrite(led[i], 0);
player.midiWriteData(0x80, note[i],
0);
}
}
void loop()
{
int i;
for(i=0;i<NUM_LED;i++)
{
sensorReading[i] =
analogRead(knockSensor[i]);
if (sensorReading[i] >= threshold &&
on_off_flg[i]==false)
{
player.midiWriteData(0x90, note[i], 127);
analogWrite(led[i], 150);
on_off_flg[i]=true;
//
Serial.println(i);
//
Serial.println(sensorReading[i]);
}
else if (sensorReading[i] < threshold
&& on_off_flg[i]==true)
{
player.midiWriteData(0x80, note[i], 0);
analogWrite(led[i], 0);
on_off_flg[i]=false;
}
}
}
|
|
ここでは12個のピエゾとLEDをarduinoに接続して、ピエゾをたたくと、LEDが点灯して発音するようにしています。起動時にハードウェアの動作確認のためにLEDの点灯と発音を行うようにしています。 |
|
|