Arduino සිංහලෙන් 11 - Arduino වලින් sound play කරන්නේ මෙහෙමයි

Arduino එක්ක සමහර වැඩ කරද්දී ඒ කරන දේවල් හරියට දැනගන්න අපිට LED වගේම වගේම beeps  වගේ sound paly කරන්න ඕනේ වෙනවා. ඒ වගේම තමන්ගේ නිර්මාණාත්මක හැකියව මත ඕගන් එකක් වගේ දෙයක් උනත් හදා ගන්න පුලුවන්. ඒක නිසා අද මම කියලා දෙන්නේ Arduino වලින් කොහොමද sound play (ස්වර) කරන්නේ කියලා.

ස්වර (notes) සහ සංඛ්‍යාත.

කොහොම උනත් Arduino වලට යන්න කලින් සංගීතයේ තියෙන ස්වර ටික ගැන පොඩි අදහසක් ගත්තොත් හොදයි කියලා හිතෙනවා. ඇත්තටම ස්වරයක් කියන්නේ නිශ්චිත සංඛ්‍යාතයක් තියෙන ශබ්ද තරංගයක්. සංගීතට අනුව මූලික ස්වර 7 ක් තියෙනවා පෙරදිග සංගීතයේදි නම් ස, රි, ග, ම, ප, ධ, නි විදිහටත් බටහිර සංගීතයේදි නම් C, D, E, F, G, A, B විදිහටත් මේවා නම් කරලා තියෙනවා. පහලින් තියෙන්නේ මේ සම්මත් ස්වර වලට අදාල සංඛ්‍යාත ටික හා ඒවාට අදාල Keyboard පිහිටුම් ටිකයි.
(පෙරදිග ස්වර ටික වැරදි නම් පොඩ්ඩක් කියන්න.)



පහලින් තියෙන්නේ මම ඒ විදිහට define කරගත්ත ස්වර ටික. මෙතන සප්තක 5 කට අදාල ස්වර තියෙනවා.
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932

ස්වරයක් Play කිරීම.

ඒක කරන්න පහල තියෙන විදිහට circuit එක හදාගන්න ඕනේ. මෙතන මම use කරලා තියෙන්නේ buzzer එකක්, කොහොම උනත් ඔයාලා ගාව buzzer එකක් නැත්නම් සාමාන්‍ය speaker  එකක් හරි headphone එකක් හරි use කරන්න පුලුවන් සද්දෙ මදිනම් පොඩි amp එකකට හයි කරලා බලන්න.



පහලින් තියෙන code එක upload කරන්න.
#define NOTE_C4  262
#define SP1 9 //define pin 9 as speaker pin

void setup(){
    pinMode(SP1,OUTPUT);
}
void loop(){
    tone(SP1,NOTE_C4);
    delay(50);
    noTone(SP1);
}

පලවෙනි පේලියෙන් ස සිවරයට අදාල සංඛ්‍යාතයත් 2 වෙනි පේලියෙන් speaker pin එකත් define කරගෙන තියෙනවා.
setup එක ඇතුලෙ speaker pin එක output pin එකක් විදිහට හදාගෙන තියෙනවා.
ඊට පස්සේ loop එක ඇතුලේ මම tone කියන keyword එක යොදාගෙන තියෙනවා. මේ පේලියෙන් තමයි sound එක play වෙන්නේ.
uකොහොම උනත් මේ tone keyword එක යොදා ගන්න පුලුවන් ආකාර දෙකක් තියෙනවා. ඒ දෙක තමයි.

tone(pin, frequency)
tone(pin, frequency, duration)

සාමාන්‍ය ස්වරයක් play කරගන්න ඕනෙ නම් use කරන්නඔ ඕනේ පලවෙනි keyword එක, නමුත් sound එක play වෙන කාලේ අඩු වැඩි කර ගන්න ඕනෙ නම් use කරන්න ඕනේ දෙවෙනි keyword එක. මෙතන  duration කියල තියෙන තැන sound එක පවතිoන්න ඕනේ කාලය මිලි තත්පර වලින් දෙන්න ඕනේ.
ඊට පස්සේ මම පොඩි delay එකක් තියලා noTone keyword එක use කරලා තියෙනවා. Arduino වලදී මොකක් හරි pin එකක් හරහා sound එකක් play කරාට පස්සේ අනිවාර්යෙන්ම noTone හරහා පින් එක නැවත් මුල් තත්වයට ගෙන්න ඕනේ.

ලිපිය හොදයි නම් share කරගෙනම යන්න


EmoticonEmoticon