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);
 
delay(1);
 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 එකට පමණි 
                                                     //එනම්  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 කරනු ලැබේ.මෙම ක්‍රමය මගින්  වඩා වැඩි නිරවද්‍ය තාවෙන් යුක්ත වූ ක්‍රමලේඛ සදාගත හැකි. 




අවසරයකින් තොරව මෙම බ්ලොගයේ පාඩම් මුද්‍රිත හෝ ඩිජිටල් ආකාරයෙන් පිටපත් කිරීම, නැවත පළ කිරීම තහනම්ය. සියලුම හිමිකම් ඇවිරිණි.

Copying, reposting of lessons from this blog in printed or digital form without permission is prohibited. All rights reserved. written by Rangana Tennakoon.© 2015

{ 2 comments... read them below or Comment }

Popular Post

Copyright © arduino sri lanka