| Home | Introduction | Buy Arduino / Modules |

Arduino #3 - Serial Input එකෙන් දත්ත ලබාගැනීම

Topic එක දැක්කට අවුල් ගන්න එපා පොඩි දෙයක් ගැන කියන්නෙ. අපි කලින් ලිපියෙදි කරේ Arduino එකට කුඩා වැඩසටහනක් පිටපත් කරලා පරිගණකයක් නොමැතිව තනිව ක්‍රියාකරවන්න පුලුවන් වැඩසටහනක් ලියපු එක. නමුත් දැන් කරන්න යන්නෙ, Arduino එකට අපි ලබා දෙන දත්තයක් පරිගණකය හරහා කියවීමට පුලුවන් වැඩසටහනක් ලියන්න. 


මේ වැඩේට ඕනෙ වෙනවා

  • Arduino එකක්.
  • LDR එකක්.
  • 10K Resistor එකක්.

Arduino එකට දත්ත ලබා දෙන්න?
ඔව් Arduino එකට විවිධාකාරයෙන් දත්ත ලබා දෙන්න පුලුවන්, ඉතින් එහෙම් ලබා දෙන්න පුලුවන් එක් ක්‍රමයකුත් මෙතනදි කතා වෙනවා. අපි අද කරන්නෙ පරිසරයේ තිබෙන ආලෝක මට්ටම මනින Code එකක් ලියන්න.
කොහොමද පරිසරයේ තිබෙන ආලෝක මට්ටම දත්තයක් විදියට 

Arduino එකට ලබා දෙන්නෙ?
අපි Arduino එකට ආලෝක සංවේදකයක් සම්බන්ද කරනවා. LDR - Light Dependent Resistor කියන්නෙමේ උපාංගයට. රු. 20/- ක් පමණ වෙනවා.

ඔය දත්තය පරිගණකයට ලැබෙන්නෙ?
Arduino එකෙන් අපිට ලැබෙන Serial Communication පහසුකම හරහා පරිගණකයට සම්බන්දවීමෙනි.

හරි දැන් බලමු උපාංග එකලස් කරගන්නෙ කොහොමද කියලා.
ආලෝක සංවේදක ප්‍රතිරෝදකයක් (LDR) හරහා ලැබෙන්නේ විචල්‍ය Analog දත්තයක් බැවින් එය Analog Input තිබෙන කොටසේ A0 Pin එකට සම්බන්ද කරගන්නවා. අනෙක් උපාංග සවි කරගන්නා ආකරයත් රූපසටහනේ පෙනවලා තිබෙනවානෙ.
දැන් තියෙන්නෙ Code එක ලියන්න.

Coding වල රතු පාටින් තිබෙන කොටස් Type කිරීමෙන් වළකින්න.
// සමඟින් ආරම්භ වන්නේ Comments බැවින් ඒවා Code එක ක්‍රියාත්මක වීමට බලපාන්නේ නැත. ඒවා අපගේ පහසුවට ලියා ගන්නා දේවල්ය.මෙසේ රතු පටින් දක්වා ඇත්තේ එක් එක් Comment එකට අදාල වන කොටස්ය. එක් කේතයක රූලක් (Line) අවසන් කරන්නේ ; සංකේතයෙනි. Void යනුවෙන් පටන් ගන්නේ Function එකක් වන අතර එයට අදාල සියලුම කේත { } වරහන් දෙක තුල ලියා ඇත.

//--------------------------------------------------------
void setup() {
  Serial.begin(9600);
  // තත්පරයකට Bit 9600 බැගින් දත්ත ලබාගන්න.}
void loop() {

  int sensorValue = analogRead(A0); // A0 Pin එකෙන් දත්ත ලබාගන්න
  
  Serial.println(sensorValue); // ලබාගත් දත්තය පරිගණකයේ පෙන්වන්න.
  delay(200); 
       // නොකඩවා සම්බන්දතාවය පවත්වාගැනීමට කුඩා Delay එකක් තබයි.

}
//--------------------------------------------------------
Code එක Upload වෙලා ඉවර වුනාම අපිට් දකින්න පුළුවන් Arduino එකේ අමතර LED එකක් දැල්වෙනවා. ඒ කියන්නෙ අර දත්ත පරිගණකය වෙත ගමන් කරනවා කියන්න.

එහෙනම් ඒ දත්ත ටික බලමු.
Arduino එක පරිගණකයට සම්බන්ද කර Arduino මෘදුකාංගයේ Serial Monitor ඔබන්න. එවිට Error එකක් ආවොත් Port එක නිවැරදිව ලබාදෙන්න. Help
ඔයාලට මේ වගේ පසුබිමක අර ලැබන දත්ත බලාගන්න පුළුවන්.
LDR එක අතින් වහලා බලන්න මේ අගය අඩු වෙන ආකාරය, LDR එකට හොඳින් ආලෝකය වැටෙන්න සලස්වන්න මේ අගය වැඩි වේ.
මේ ලිපියෙන් අපි ඉගෙනගත්තා Arduino එකක් හරහා Analog දත්ත කියවන ආකාරය හා එය පරිගණකයෙන් ලබා ගන්නා ආකරය. LDR එකෙන් කරන්න පුළුවන් තවත් වැඩ මීළඟ ලිපියෙන් ලබා දෙන්නම්.
මතකද මුලදි මම කිව්වා Arduino එකක් සමඟ C# වැනි පරිගණක භාශාවකින් ලියූ වැඩසටහනක් පලනය කළ හැකි බව?
ඉතින් මන් C# Program එකක් ලිව්වා ආලෝක මට්ටම අනුව අඩු වැඩි වන Progress bar එකකට.මේ වැඩසටහන ටහ්වත් දියුණු කරලා LDR එක අතින් වහපුවාම Automate වන Media player එකකුත් හදන්න පුලුවන් වුනා.ඉතින් LDR කිහිපයක් අරන් අතින් අල්ලනෙ නැතුව වැඩකරන Mouse එකක් වුනත් හදන්න පුලුවන්. කෙසේවෙතත් C# සමඟ Arduino භාවිතා කිරීම ඉදිරියෙදී ලබා දෙන්නම්.
දැන් ඔයාලගෙ වෙලාව අදහස් ගැටලු එහෙම තිබේ නම් ලියලා යන්න.

18 comments:

  1. ********************************************** nice

    ReplyDelete
  2. thank machan mama me activity eka kala .........
    meke thiyena widihata lesiyen iganaganna puluwan

    ReplyDelete
  3. ස්තූතියි හැමෝටම

    ReplyDelete
  4. පට්ටම පට්ට වැඩක් !
    java programme ekak ekka link karana vidiha kiyala denna puluwna nam loku udauwak!

    ReplyDelete
  5. wadee godaak hodai......aluth project haduwe nadda.....?

    ReplyDelete
  6. me wage board ekakin air quality eka measure karana haddane khomada

    ReplyDelete
  7. mama robo athak hadanna yanne.ekata servo motor 12k vithara controll karanna ona.ekata arduino walin controll karana vidiya post ekkakin danawada.loku udawwak.

    alokayata sanwedi robo kenek hadana vidiyath nam puluwannam danna.

    ReplyDelete
  8. serial monitor eke values uparma 1023 mcn.eka a widiyta nathuwa apita ona value ekakata set krnna pluwnda ?

    ReplyDelete
  9. niyamai.harima sathutui...digatama karagena yan..........

    ReplyDelete