//pin select
int MOTOR =11;
int LED=10;
//サウンドのレベル用変数
int sound_level;
//サウンド感度調整ツマミ用変数
int analog0;
//モーターの回る時間調整ツマミ用変数
int analog1;
//LEDの明るさ用変数
int led_blight;
//forループ用変数
int j;
//セットアップ
void setup(){
//モーターピンをアウトプット(電気が出るように)
pinMode(MOTOR,OUTPUT);
//LEDピンもアウトプット(電気が出るように)
pinMode(LED,OUTPUT);
}
//メインループ
void loop(){
//サウンドレベルを読む(analog5ピン)
sound_level=analogRead(5);
//サウンド感度調整ツマミを読む(analog3ピン)
analog0=analogRead(3);
//もしも、サウンドレベルが感度調整ツマミより大きくなったら、
if(sound_level>analog0){
//モーターに電気を流す(回転)
digitalWrite(MOTOR,HIGH);
//LEDの明るさ変数を最大にする
led_blight=1023;
//モーターの回転時間調整ツマミを読む(alanog4ピン)
analog1=analogRead(4);
//モーターの回転調整の数値の回数だけ、delay(1)を繰り返す
for(j=0; j < analog1; j++){
delay(1);
}
//モーターの電気をとめる(回転停止)
digitalWrite(MOTOR,LOW);
//もう一度、モーター回転時間調整ツマミを読む
//その時間を今度は4で割る
analog1=analogRead(4)/4;
//回転時間調整ツマミを4で割った回数だけ、delay(1)を繰り返す
for(j=0; j < analog1; j++){
delay(1);
}
}
//そうじゃないとき(サウンドレベルが感度調整ツマミより大きくないとき)
else{
//LEDの明るさ変数に、0.99を掛け算して、徐々に減らす
//(じんわりと消えていくような場合のテクです)
led_blight*=0.99;
//モーターの電気をストップ(回転停止)
digitalWrite(MOTOR,LOW);
}
//LEDの明るさを実際にピンに反映させる
analogWrite(LED,1023-led_blight);
}
プログラムサンプル
登録:
投稿 (Atom)