プログラム
Arduino 017 で Tone を使いました。
Arduino 018 に含まれる Tone はごく一部なので、やはり Tone ライブラリを別途用意して入れる必要があります。
#include <Tone.h>
#include <math.h>
Tone notePlayer;
int val = 0;
int maxv = 0;
int minv = 1024;
int note[]={ 262, 294, 330, 349, 393, 440, 494, 523};
int thre[]={minv,minv,minv,minv,minv,minv,minv,minv};
void setup(void)
{
notePlayer.begin(13);
}
void loop(void)
{
int i;
val = analogRead(0);
if ( minv > val ){
minv = val;
}
if ( maxv < val ){
maxv = val;
}
for( i = 0; i < 8; i++ ){
thre[i] = maxv - (int)((maxv-minv)*pow(((1.0*i+0.3)/7.5),0.1));
}
// lesser : brighter
if ( val > thre[0] ){
notePlayer.play(note[0],100);
}else if ( val > thre[1] ){
notePlayer.play(note[1],100);
}else if ( val > thre[2] ){
notePlayer.play(note[2],100);
}else if ( val > thre[3] ){
notePlayer.play(note[3],100);
}else if ( val > thre[4] ){
notePlayer.play(note[4],100);
}else if ( val > thre[5] ){
notePlayer.play(note[5],100);
}else if ( val > thre[6] ){
notePlayer.play(note[6],100);
}else if ( val > thre[7] ){
notePlayer.play(note[7],100);
}
delay(200);
}