본문 바로가기

작업실/arduino

아두이노(arduino) - 스피커를 이용한 음악연주





소스1 -7번에 스피커 연결   제목:떳다 떳다 비행기 -


void setup(){                   

  pinMode(7, OUTPUT);

}


void loop(){

  e();

  delay(500);

  d();

  delay(200);

  c();

  delay(500);

  d();

  delay(500);

  

  e();

  delay(200);

  e();

  delay(200);

  e();

  delay(500);

  

  d();

  delay(200);

  d();

  delay(200);

  d();

  delay(500);

  

  e();

  delay(500);

  g();

  delay(500);

  g();

  delay(500);

  

  e();

  delay(500);

  d();

  delay(200);

  c();

  delay(500);

  d();

  delay(500);

  

  e();

  delay(500);

  e();

  delay(500);

  e();

  delay(500);

  

  d();

  delay(500);

  d();

  delay(500);

  e();

  delay(500);

  d();

  delay(500);

  c();

  delay(1000);


void c(){

  for(long i=0; i <100000 ; i+=2552){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(955);

      digitalWrite(7,0);

      delayMicroseconds(955);

  }

}  


void d(){

  for(long i=0; i <100000 ; i+=2552){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(851);

      digitalWrite(7,0);

      delayMicroseconds(851);

  }

}  


void e(){

  for(long i=0; i <100000 ; i+=2552){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(758);

      digitalWrite(7,0);

      delayMicroseconds(758);

  }

}  


void f(){

  for(long i=0; i <100000 ; i+=2552){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(715);

      digitalWrite(7,0);

      delayMicroseconds(715);

  }

}  


void g(){

  for(long i=0; i <100000 ; i+=2552){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(637);

      digitalWrite(7,0);

      delayMicroseconds(637);

  }

}  


void a(){

  for(long i=0; i <100000 ; i+=2552){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(568);

      digitalWrite(7,0);

      delayMicroseconds(568);

  }

}  


void b(){

  for(long i=0; i <100000 ; i+=2552){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(506);

      digitalWrite(7,0);

      delayMicroseconds(506);

  }

}  





소스2 -제목:버터플라이-


void setup(){

  pinMode(7, OUTPUT);

}


void loop(){

  f();

  b();

  delay(2000);

  

  cc();

  cc();

  cc();

  cc();

  f();

  e();

  

  f();

  f();

  f();

  f();

  cc();

  cc();

  

  cc();

  cc();

  cc();

  dd();

  b();

  a();

  

  b();

  b();

  b();

  b();

  a();

  b();

  

  cc();

  cc();

  cc();

  cc();

  f();

  e();

  


void c(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(955);

      digitalWrite(7,0);

      delayMicroseconds(955);

  }

}  


void d(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(851);

      digitalWrite(7,0);

      delayMicroseconds(851);

  }

}  


void e(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(758);

      digitalWrite(7,0);

      delayMicroseconds(758);

  }

}  


void f(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(715);

      digitalWrite(7,0);

      delayMicroseconds(715);

  }

}  


void g(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(637);

      digitalWrite(7,0);

      delayMicroseconds(637);

  }

}  


void a(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(568);

      digitalWrite(7,0);

      delayMicroseconds(568);

  }

}  


void b(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(506);

      digitalWrite(7,0);

      delayMicroseconds(506);

  }

}  


void cc(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(477);

      digitalWrite(7,0);

      delayMicroseconds(477);

  }

}  


void dd(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(425);

      digitalWrite(7,0);

      delayMicroseconds(425);

  }

}  



소스3 -소스1,2는 따로 함수를 만들었지만 소스3은 내부함수인 tone을 이용했습니다. one변수 값을 변경하면 음악이 빨라집니다.-


void setup(){

  pinMode(7, OUTPUT);

}


void loop(){

  int one=200;

  

   tone(7,955,one); //c

   delay(one);

   tone(7,851,one); //b

   delay(one);

   

   tone(7,477,one*4); //cc

   delay(one*4);

   tone(7,715,one); //f

   delay(one);

   tone(7,758,one); //e

   delay(one);

   

   tone(7,715,one*4); //f

   delay(one*4);

   tone(7,477,one*2); //cc

   delay(one*2);

   

   tone(7,477,one*3); //cc

   delay(one*3);

   tone(7,425,one); //dd

   delay(one);

   tone(7,851,one); //b

   delay(one);

   tone(7,568,one); //a

   delay(one);

   

   tone(7,851,one*4); //b

   delay(one*4);

   tone(7,568,one); //a

   delay(one);

   tone(7,851,one); //b

   delay(one);

   

   tone(7,477,one*4); //cc

   delay(one*4);

   tone(7,715,one); //f

   delay(one);

   tone(7,758,one); //e

   delay(one);


void c(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(955);

      digitalWrite(7,0);

      delayMicroseconds(955);

  }

}  


void d(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(851);

      digitalWrite(7,0);

      delayMicroseconds(851);

  }

}  


void e(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(758);

      digitalWrite(7,0);

      delayMicroseconds(758);

  }

}  


void f(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(715);

      digitalWrite(7,0);

      delayMicroseconds(715);

  }

}  


void g(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(637);

      digitalWrite(7,0);

      delayMicroseconds(637);

  }

}  


void a(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(568);

      digitalWrite(7,0);

      delayMicroseconds(568);

  }

}  


void b(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(506);

      digitalWrite(7,0);

      delayMicroseconds(506);

  }

}  


void cc(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(477);

      digitalWrite(7,0);

      delayMicroseconds(477);

  }

}  


void dd(){

  for(long i=0; i <100000 ; i+=500){ //1초동안 

    digitalWrite(7,1);

      delayMicroseconds(425);

      digitalWrite(7,0);

      delayMicroseconds(425);

  }

}