Code කරද්දි නැතුවම බැරි Serial මොනිටරේ
අද ලිපියෙන් කියලා දෙන්නෙ කොහොමද අර්ඩුඉනො software එක සමගම එන serial monitor එක භාවිතයෙන් අපේ code වල වැරදි, අඩුපාඩු සහ හරියට වැඩ කරන්නෙ නැති code කොහොමද නිවැරදි කරගන්නෙ කියලා.
ඔයා arduino එක usb cable එක හරහා ඔයාගෙ computer එකට සම්බන්ද කරාම computer එක usb serial device එකක් විදියට තමයි ඔයාගෙ arduino එක හදුනාගන්නෙ. ඒ නිසාම ඔයාගෙ computer එක යම් කිසි serial COM port එකක් ඔයාගෙ arduino එකට ආදේශ කරනවා. ඔයාට හරියටම ඒක බලාගන්න පුලුවන් windows වල device manager එකේ com port යටතේ ඔයාගෙ arduino එක connect වෙලා තියන COM Port එක. ඉතින් මේ විදියට com port එක පෙන්නනවා නම් ඔයාට පුලුවන් ඔයාගෙ arduino software එකේ serial monitor එක open කරගන්න. මේ serial monitor එක යොදාගෙන මම කලින් කිව්ව විදියට අපේ code වල තියන අඩුපාඩු හොයාගන්න සහ නිවැරදි කරගන්න පුලුවන්.
ඔයා code කරද්දි serial monitor එක සමග වැඩ කරන්න බලාපොරොත්තු වෙනවා නම් ඔයා මුලින්ම කරන්න ඕනෙ ඔයාගෙ code එකට serial communication එක ආරම්බ කරන්න අවශ්ය වෙන code ලියාගන්න එක. මේක ලියන්නෙ setup function එක ඇතුලෙයි. මේ විදියට
void setup(){
Serial.begin(9600);
}
මෙතනදි "Serial" කියලා කියන්නෙ අපේ arduino එක සහ computer එක අතර serial communication කරන්න යන object එක. "begin" කියන keyword එකෙන් කරන්නෙ අපේ serial communication එක ආරම්බ කරන්න කියලා කියන එක. මේකට අපි parameter එකක් දෙන්න ඕනෙ. ඒක තමයි baudrate එක. 9600 කියලා ලියල තියෙන්නෙ අන්න ඒක තමයි. baudrate එක කියන්නෙ අපි arduino එක සහ computer එක අතර serial communication එකේ speed එක bits per second වලින්. 9600 කියන්නෙ ගොඩක් stable standerd baudrate එකක්. මීට අමතරව 4800, 115200 වගේ baudrate උනත් යොදාගෙන මේ වැඩේ කරන්න පුලුවන්. එතකොට මතක ඇතුව arduno software එකේ serial monitor එකෙත් ඔයා code එකට දාපු baudrate එකම තෝරගන්න අමතක කරන්න එපා.
මේ serial monitor එකෙන් පුලුවන් අපිට Arduino එකේ ඉදන් එවන යම් දත්ත, text වගේ දේවල් බලාගන්න. ඒක කරන්නෙ මෙහෙමයි. හිතන්න අපිට අර්ඩුඉනො එකේ ඉදන් "hello world" කියන text එක serial monitor එකට යවන්න ඕනෙ කියලා. එතකොට ඒකට code එක ලියන්නෙ මෙහෙම.
Serial.print("hello world");
මේ විදියට "print" කියන keyword එක භාවිතයෙන් අපිට මේ වැඩේ පහසුවෙන්ම කරගන්න පුලුවන්. මෙතනදි අපිට serial monitor එකේ print කරන්න අවශ්ය දේ "" මේ වරහන් තුල (double coutation) ලියන්න ඕනෙ. Number එකක් print කරනවා නම්
Serial.print(34);
මේ විදියට ලියන්න පුලුවන්.
"print" වලට අමතරව "println" කියලා keyword එකකුත් තියනවා. මේකෙන් කරන්නෙත් කලින් කරපු දේමයි. විශේශත්වය තමයි අපි යවන දේ print කරාට පස්සෙ serial monitor එකේ ඊලග line එකට ගමන් කිරීම. එතකොට අපි දෙවනි පාරට මොකක් හරි යවනවා නම් ඒක print වෙන්නෙ ඊලග line එකේ ඉදලා. "write" කියලා මීට වඩා තරමක් වෙනස් keyword එකකුත් තියෙනවා. ඒකෙන් අපිට පුලුවන් byte එකක් serial monitor එකට යවාගන්න. ඔයාල දන්නවා ඇති bit 8 ක් byte එකකට සමාන වෙනවා කියලා. අපි භාවිතා කරන හැම ඉංග්රීසි අකුරකටම bit 8ක code එකක් තියනවා computer වලදී. ඉතින් මේ විදියෙ තනි අකුරක් හෝ ඉලක්කමක් යවන්න පුලුවන් "write" keyword එකෙන්. ඒක ලියන්නෙ මෙහෙමයි.
Serial.write('a');
මෙතනදි අපි තනි කොමා ('') දෙකක් තමයි යොදාගන්නෙ.
අපි මෙතෙක් වෙලා කතා කලේ arduino එකේ සිට serial monitor එකට යම් යම් දත්ත යවන විදිය නේ... ඉතින් අපිට මේකෙ අනිත් පැත්තත් කරන්න පුලුවන්. ඒ කියන්නෙ serial monitor එකේ ඉදන් arduino එකට දත්ත යවන්න serial monitor එකේ වෙනම text box එකක් සහ "send" කියලා button එකක් තියනවා. අපිට අවශ්ය දේ text box එකේ ලියලා send button එක press කරන්න තමයි තියෙන්නෙ.
ඒක arduino එකෙන් අල්ලගන්න මේ විදියට code එක ලියාගන්න පුලුවන්.
void setup(){
Serial.begin(9600);
}
void loop(){
if(Serial.available()){
char c = Serial.read();
Serial.write(c);
}
}
උඩ code එකෙන් කරලා තියෙන්නෙ අපි serial monitor එකේ ඉදන් මොකක් හරි data එකක් එවලා තියෙනවා නම් ඒක "c" කියන char variable එකට අරගෙන ඒක ආපසු serial monitor එකට යවන එක.
ඉතින් අපි මෙතෙක් වෙලා කතා කලේ අපි කොහොමද serial monitor එක භාවිතා කරන්නෙ කියලා. දැන අපි බලමු මේකෙන් කොහොමද අපේ code වල වැරදි අඩුපාඩු හොයාගන්නෙ කියලා.
හිතන්න ඔයා arduino එකක digital output එකක් දෙන light sensor එකක් සවි කරලා ඒකට ආලෝකය වැටුනම ඔයාට LED එකක් on කරගන්න ඕනෙ කියලා. ඒත් අවාසනාවකට ඒ දේ හරියට වෙන්නෙ නැහැ කියල හිතන්න. ඔන්න දැන් අපිට serial monitor එකට print කරලා බලන්න පුලුවන් අර sensor එකේ reading එක. මේ විදියට...
sensor එක සවි කරලා තියෙන්නෙ 2 වෙනි pin එකට නම්,
void setup(){
Serial.begin(9600);
pinMode(2, INPUT);
}
void loop(){
Serial.println(digitalRead(2));
}
(මෙතනදි digitalRead කියන keyword එකෙන් තමයි sensor එක සවි කරපු pin එක read කරන්නෙ)
එතකොට ඔයාලට හරියටම දැනගන්න පුලුවන් අව්ල තියෙන්නෙ code එකේද එහෙමත් නැත්නම් sensor එකේ ද (නැත්නම් code එක ලියපු එකාගෙද 😂) කියලා...
පැහැදිලි ඇති කියලා හිතනවා. ප්රශ්න තියෙනවා නම් comment එකක් දාන්න.
තවත් විශේශම දෙයක් කියන්න තියෙනවා. ඔයාලා serial communication ඔයාගෙ code එකට add කරනවා නම් ඔයාට arduino UNO එකේ 0 සහ 1 කියන pins වෙනත් කිසිම sensor එකක් සවි කරන්න හෝ output එකක් ගන්න භාවිතා කරන්න බැහැ. මොකද මේ pin දෙකෙන් තමයි arduino එකේ තියන microcontroller එක serial communication වලට අදාල signel usb to ttl convertor එකට යවන්නෙ. ඒ නිසා අපි serial communication භාවිතා කරනකොට මේ pin දෙකට කිසිවක් සම්බන්ද කරන්න යන්නෙ නැහැ.
එහෙනම් අදට ලිපිය ඉවරයි.
සුබ දවසක් හැමොටම.
Comments
Post a Comment