- Back to Home »
- arduino syntax sinhala tutorials part 2 | ආඩිනෝ රීති ක්රම දෙවන කොටස
Posted by : arduino srilanka
2015/02/13
/* */ Block comments
block comments යනු අප විසින් ලියනලද ක්රමලේඛයේ (program) ඇති ප්රකාශන (statement) හදුනාගනීම පහසුවීම සදහා සකසා සකසා ක්රමයයි. line comments හා සන්සන්දනය කලවිට මෙහි ඇති විශේෂත්වය වන්නේ /** සලකුනේ සිට */ සලකුන දක්වා සියළු ප්රකශන සහ වක්ය ක්රමලේඛයේ (program) කේතයට අයත් නෝවීමයි එනම් එය Comment එකක් ලෙස සලකුනු කරනු ලබේ.මේමගින් ඛේත, statement හදුනාගනීම පහසු කරයි.
උදා:
/*
by http://www.arduinosrilanka.blogspot.com
PWMA=255, AIN1=1 , AIN2=0 > clockwise
PWMA=255, AIN1=0 , AIN2=1 > anticlockwise
PWMA=0, AIN1= 0, AIN2= dont carestop
*/
coments කොතරම් දික්වුවද එය program memory මත සටහන් නොවේ.
// Line Coments
මෙය bolock Coments සමග සැසදූකළ ප්රධානතම වෙනස්කම වනුයේ // සලකුනෙන් ඉදිරියේ ඇති ප්රකාශ, ඛේතයන් සියළු දෑ coment ලෙස සලකුනු වීමයි මෙයද program memory මත සටහන් නොවේ.
variable විචල්ය
variable විචල්යක් යනු යම්කිසි සංඛයාත්මක අගයකට නමක් දී එය ගබඩා කිරීමයි.variable විචල්ය වල අගයන් එහි නමේ අරුත මෙන් වෙනස් විය හැකිය,තවත් කොටසක් වෙනස් නොවි නියත අගයක් පවතිය හැකිය. variable විචල්ය call කිරීමෙන් එය බාවිතයට ගත හැකිය.පහත උදාහරණ අවදානය යොමු කරන්න විචල්ය අගයක් ගන්නා variables (නියත නොවූ)
උදා:
int sensorValue = 0; // නියත නොවූ variable එක එහි නම sensorValue
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop(){
sensorValue = analogRead(A0); // A0 ප්රතිසම ප්රදනයෙන් ලැබෙන අගය
//sensorValue , variable තුල save කිරිම
Serial.print(sensorValue); // එම් අගය serial monitor හි මත පෙන්වීම (print) කිරිම.
}
නියත අගයක් ගන්නා variables
උදා:
int DelayTime =2000; // නියත වූ variable එක එහි නම DelayTime
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, 13);
delay(DelayTime); // ප්රමාදය DelayTime එහිඅගය 2000ms
digitalWrite(led, 13);
delay(2000);
}
සෑම විටම variables ඉහත උදාහරණයේ පරිදි සදහා විස්තරත්මක නමක් දිය යුතුයි, කිසිවිටකත් sss , aaa, ksjsns අදී තෙරුමක් / හරයක් නැති නමක් යෙදීම නොකලයුතුයි.එමගින් ක්රමලේඛයේ (program) නිරවද්ය තාවටත් බෙහෙවින් බලපන කාරනාවකි තවත නැවත යම් කලක ක්රමලේඛයේ (program) දියුනු කිරීමට අවශ්ය වූ විටදී එය සිදුකිරීමට වඩා පහසු වේ.
Variable declaration
සෑම variable එකක්ම ආමන්ත්රනය (call) කර තිබිය යුතුය.එසේ නොමතිනම් එය ක්රියත්මක වන්නේ නැත.සෑම variable එකක එහි නමට (variable name) පෙර එහි වර්ගය variable type) සදහන් කල යුතුයි ඉන්පසු අගය සදන් කිරීම කල යුතුයි.
උදා:
int delayVal=1500;
float LightLevel =15933.21;
byte delay=12;
long count =1551521154545;
short Blackcount=0;
unsigned int CurrentNodeX=2000;
unsigned short CurrentNodeY=2;
varible Scope
variable එකක් නම් කිරීම/ස්ථානගත කිරීම void setup() එකට පෙර සිදුකල හැක එය "global variable" ලෙස හදුන්වනු ලැබේ.තවද function එකක් තුලවුවද variable එකක් නම් කිරීම/ස්ථානගත කිරීම කල හැක එය "local variable" ලෙස හදුන්වයි.variable එකක් නම් කරන ස්ථානය ක්රමලේඛයේ තත්ව අනූව වෙනස් වේ.කලින් සදහන් කල පරිදි globa variablel එකක්void setup() ට පෙර නම් කල යුතුය.එය ක්රමලේඛයේ (program) සියළුම function වලට දෘශමාන (visible) වේ.එනම් ක්රමලේඛයේ (program) ඇති සියළු function වලට පොදු වේ
උදා:
int sensorValue;
void setup() {
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(A0);
නියත අගයක් ගන්නා variables
උදා:
int DelayTime =2000; // නියත වූ variable එක එහි නම DelayTime
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, 13);
delay(DelayTime); // ප්රමාදය DelayTime එහිඅගය 2000ms
digitalWrite(led, 13);
delay(2000);
}
සෑම විටම variables ඉහත උදාහරණයේ පරිදි සදහා විස්තරත්මක නමක් දිය යුතුයි, කිසිවිටකත් sss , aaa, ksjsns අදී තෙරුමක් / හරයක් නැති නමක් යෙදීම නොකලයුතුයි.එමගින් ක්රමලේඛයේ (program) නිරවද්ය තාවටත් බෙහෙවින් බලපන කාරනාවකි තවත නැවත යම් කලක ක්රමලේඛයේ (program) දියුනු කිරීමට අවශ්ය වූ විටදී එය සිදුකිරීමට වඩා පහසු වේ.
Variable declaration
සෑම variable එකක්ම ආමන්ත්රනය (call) කර තිබිය යුතුය.එසේ නොමතිනම් එය ක්රියත්මක වන්නේ නැත.සෑම variable එකක එහි නමට (variable name) පෙර එහි වර්ගය variable type) සදහන් කල යුතුයි ඉන්පසු අගය සදන් කිරීම කල යුතුයි.
උදා:
int delayVal=1500;
float LightLevel =15933.21;
byte delay=12;
long count =1551521154545;
short Blackcount=0;
unsigned int CurrentNodeX=2000;
unsigned short CurrentNodeY=2;
varible Scope
variable එකක් නම් කිරීම/ස්ථානගත කිරීම void setup() එකට පෙර සිදුකල හැක එය "global variable" ලෙස හදුන්වනු ලැබේ.තවද function එකක් තුලවුවද variable එකක් නම් කිරීම/ස්ථානගත කිරීම කල හැක එය "local variable" ලෙස හදුන්වයි.variable එකක් නම් කරන ස්ථානය ක්රමලේඛයේ තත්ව අනූව වෙනස් වේ.කලින් සදහන් කල පරිදි globa variablel එකක්void setup() ට පෙර නම් කල යුතුය.එය ක්රමලේඛයේ (program) සියළුම function වලට දෘශමාන (visible) වේ.එනම් ක්රමලේඛයේ (program) ඇති සියළු function වලට පොදු වේ
උදා:
int sensorValue;
void setup() {
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(A0);
delay(1);
if(sensorValue==1023){
digitalWrite(13,HIGH);
Serial.println(sensorValue);
if(sensorValue==1023){
digitalWrite(13,HIGH);
Serial.println(sensorValue);
}
else{
digitalWrite(13,LOW);
Serial.println(sensorValue);
}
}
ඉහත උදාහරණයේ sensorValue ලෙස නම්කර ඇති global variable එක සෑම function එකකට පොදු වේ තව තවත් ක්රමලේඛයේ function තිබුනහොත් එම සියළු function වලට දෘශමාන (visible) වේ.
global variable සමග සන්සන්දනය කලවිට local variable හාත්පසින්ම ප්රතිවිරුද්දව ක්රියාකරයි
එනම් local variables බවිතා වනුයේ function තුල පමණි. local variables දෘශමාන වනුයේ එම variable එක ඇති function එක තුල ඇති staments වලට පමණි.මෙම ක්රමය for loop වලට වැඩි වෂයෙන් බාවිතාවේ.
උදා:
int value;// ඕනෑම function එකකට දෘශමාන වේ එනම් එය global variable
//එකකි
void setup(){
}
}
void loop() {
for (int i=0;i<20;){ // i දෘශමාන වන්නේ for loop එකට පමණි
for (int i=0;i<20;){ // i දෘශමාන වන්නේ for loop එකට පමණි
//එනම් local variable එකකි
i++;
}
float f; // f දෘශමාන වන්නේ void loop එකටයි. එය for loop එකටත් දෘශමාන වේ නමුත්
//මෙය global variable එකකි
}
එකම නමින් local variables ඕනැම ප්රමනයක් විවිද function තුල තිබිය හැක.( එක function එකක් තිබියහැක්කේ එක නමකින් එක variable එකක් පමණි. ) උදාහරණයක් ලෙස උෂ්නත්ව මාන තුනක් සැහිත ක්රමලේඛයක් වෙත අවධානය යොමු කරමු.
උදා:
// Lm35 3TEMPRATURE METER EXAMPLE
// BY ARDUINO SRILANKA
void setup()
{
Serial.begin(9600);
}
void TempM1()
{
float temp;
temp = analogRead(A0);
temp = temp * 0.48828125;
Serial.print("TEMPRATURE METER 1:");
Serial.print(temp);
Serial.print("*C");
Serial.println();
}
void TempM2()
{
float temp;
temp = analogRead(A0);
temp = temp * 0.48828125;
Serial.print("TEMPRATURE METER 2:");
Serial.print(temp);
Serial.print("*C");
Serial.println();
}
void TempM3()
{
float temp;
temp = analogRead(A0);
temp = temp * 0.48828125;
Serial.print("TEMPRATURE METER 3:");
Serial.print(temp);
Serial.print("*C");
Serial.println();
}
void loop()
{
TempM1;
TempM2;
TempM3;
delay(1000);
}
මෙහි void TempM1(), void TempM2() , void TempM3() යනු function තුනකි එහි temp යනු උෂ්නත්වය සැහිත දත්වය ගබඩා කරගනු ලබන variable එකයි function තුනටම එකම නමින් temp variable තිබුනත් එහි විවිධ අගයන් ගනී උෂ්නත්වමාන තුනේ අගයන් වෙනවෙනම මතකයේ තබගනී.අනතුරුව void loop() හි TempM1(), TempM1(), TempM1() function call කරනු ලැබේ.මෙම ක්රමය මගින් වඩා වැඩි නිරවද්ය තාවෙන් යුක්ත වූ ක්රමලේඛ සදාගත හැකි.
එකම නමින් local variables ඕනැම ප්රමනයක් විවිද function තුල තිබිය හැක.( එක function එකක් තිබියහැක්කේ එක නමකින් එක variable එකක් පමණි. ) උදාහරණයක් ලෙස උෂ්නත්ව මාන තුනක් සැහිත ක්රමලේඛයක් වෙත අවධානය යොමු කරමු.
උදා:
// Lm35 3TEMPRATURE METER EXAMPLE
// BY ARDUINO SRILANKA
void setup()
{
Serial.begin(9600);
}
void TempM1()
{
float temp;
temp = analogRead(A0);
temp = temp * 0.48828125;
Serial.print("TEMPRATURE METER 1:");
Serial.print(temp);
Serial.print("*C");
Serial.println();
}
void TempM2()
{
float temp;
temp = analogRead(A0);
temp = temp * 0.48828125;
Serial.print("TEMPRATURE METER 2:");
Serial.print(temp);
Serial.print("*C");
Serial.println();
}
void TempM3()
{
float temp;
temp = analogRead(A0);
temp = temp * 0.48828125;
Serial.print("TEMPRATURE METER 3:");
Serial.print(temp);
Serial.print("*C");
Serial.println();
}
void loop()
{
TempM1;
TempM2;
TempM3;
delay(1000);
}
මෙහි void TempM1(), void TempM2() , void TempM3() යනු function තුනකි එහි temp යනු උෂ්නත්වය සැහිත දත්වය ගබඩා කරගනු ලබන variable එකයි function තුනටම එකම නමින් temp variable තිබුනත් එහි විවිධ අගයන් ගනී උෂ්නත්වමාන තුනේ අගයන් වෙනවෙනම මතකයේ තබගනී.අනතුරුව void loop() හි TempM1(), TempM1(), TempM1() function call කරනු ලැබේ.මෙම ක්රමය මගින් වඩා වැඩි නිරවද්ය තාවෙන් යුක්ත වූ ක්රමලේඛ සදාගත හැකි.
අවසරයකින් තොරව මෙම බ්ලොගයේ පාඩම් මුද්රිත හෝ ඩිජිටල් ආකාරයෙන් පිටපත් කිරීම, නැවත පළ කිරීම තහනම්ය. සියලුම හිමිකම් ඇවිරිණි.
Copying, reposting of lessons from this blog in printed or digital form without permission is prohibited. All rights reserved. written by Rangana Tennakoon.© 2015
supperrr....
ReplyDeleteNiyanayi , thanks ayiye
ReplyDelete