Piano එකක් හදමු

පෙර ළිපියෙහි සඳහන් කළ පරිදි Arduino Tone හරහා Piano එකක් සාදාගන්න ආකාරය මම ළිපියෙන් අරගෙන ආවා.
මෙන්න පරිපථ සටහන
මෙහි int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; //freq
මඟින් එක් එක් Button එකට අදාල සංඛ්‍යාත සඳහන් කර ඇත.


int button_C = 2;
int button_D = 3;
int button_E = 4;
int button_F = 5;
int button_G = 6;
int button_A = 7;
int button_B = 8;
int button_Cup = 9;

int speaker = 13;

int buttonstate_C = 0;
int buttonstate_D = 0;
int buttonstate_E = 0;
int buttonstate_F = 0;
int buttonstate_G = 0;
int buttonstate_A = 0;
int buttonstate_B = 0;
int buttonstate_Cup = 0;

//NOTES         'c'  , 'd',  'e',  'f',  'g', 'a',  'b',  'C'
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; //freq
int Cur_tone = 0;

void setup()
{
  pinMode(button_C, INPUT);
  pinMode(button_D, INPUT);
  pinMode(button_E, INPUT);
  pinMode(button_F, INPUT);
  pinMode(button_G, INPUT);
  pinMode(button_A, INPUT);
  pinMode(button_B, INPUT);
  pinMode(button_Cup, INPUT);

  pinMode(speaker, OUTPUT);
}

void loop()
{
 buttonstate_C = digitalRead(button_C);
 buttonstate_D = digitalRead(button_D);
 buttonstate_E = digitalRead(button_E);
 buttonstate_F = digitalRead(button_F);
 buttonstate_G = digitalRead(button_G);
 buttonstate_A = digitalRead(button_A);
 buttonstate_B = digitalRead(button_B);
 buttonstate_Cup = digitalRead(button_Cup);

 if((buttonstate_C == HIGH) || (buttonstate_E == HIGH) || 
  (buttonstate_G == HIGH) || (buttonstate_D == HIGH) || 
  (buttonstate_F == HIGH) || (buttonstate_A == HIGH) || 
  (buttonstate_B == HIGH) || (buttonstate_Cup == HIGH) )
 { 
  if (buttonstate_C == HIGH)
  {
   Cur_tone = tones[0];
  } 
  if (buttonstate_E == HIGH)
  {
   Cur_tone = tones[1];
  }
  if (buttonstate_G == HIGH)
  {
   Cur_tone = tones[2];
  }
  if (buttonstate_D == HIGH)
  {
   Cur_tone = tones[3];
  }
  if (buttonstate_F == HIGH)
  {
   Cur_tone = tones[4];
  }
  if (buttonstate_A == HIGH)
  {
   Cur_tone = tones[5];
  }
  if (buttonstate_B == HIGH)
  {
   Cur_tone = tones[6];
  }
  if (buttonstate_Cup == HIGH)
  {
   Cur_tone = tones[7];
  }

  digitalWrite(speaker, HIGH);
  delayMicroseconds(Cur_tone);
  digitalWrite(speaker, LOW);
  delayMicroseconds(Cur_tone);
 }
 else //in case no button is pressed , close the piezo
 {
  digitalWrite(speaker, LOW);
 }

}

Video එක මෙන්න

1 comment: