ゆるく楽しむプログラミング

メロディーIC SM6201

メロディーIC SM6201
スペックシートの通りに、演奏テンポを調整する抵抗とスイッチを付ければ使えます。
出力はちょっと弱いのでアンプが必要 PAM8012使用2ワットD級アンプモジュール を使用しました。





ArduinoUNOで制御

TK0~TK3のいずれかをLOWにすれば演奏を開始できます。
PENの状態で演奏終了を感知することができます。



Melody-IC.zip
/*
 * MelodyIC Contril 
 */
#define IS_PLAY 6
#define MELODY1 8
#define MELODY2 9
#define MELODY3 10
#define MELODY_SEQ 11
#define LED 13

void setup() {
  pinMode(IS_PLAY,INPUT) ;
  pinMode(MELODY1,OUTPUT) ;
  pinMode(MELODY2,OUTPUT) ;
  pinMode(MELODY3,OUTPUT) ;
  pinMode(MELODY_SEQ,OUTPUT) ;
  pinMode(LED,OUTPUT) ;

  digitalWrite(MELODY1,HIGH) ;
  digitalWrite(MELODY2,HIGH) ;
  digitalWrite(MELODY3,HIGH) ;
  digitalWrite(MELODY_SEQ,HIGH) ;
}

void loop() {
  // Start playing
  digitalWrite(MELODY_SEQ,LOW) ;
  while(digitalRead(IS_PLAY) == LOW){
    digitalWrite(13,digitalRead(IS_PLAY)) ;
  }
  digitalWrite(MELODY_SEQ,HIGH) ;

  // WWait for the end of the playing
  while(digitalRead(IS_PLAY) == HIGH){
    digitalWrite(LED,digitalRead(IS_PLAY)) ;
  }
  digitalWrite(LED,digitalRead(IS_PLAY)) ;

  delay(5000) ;
}

解説動画