යතුරක් එබූ වාර ගණන
 
ආඩියුනෝ පරිපථයේ ඔබන අවස්ථා යතුරක් (Momentary Push button)එබූ වාර ගණන ලබාගැනීම කරමු.
ඔබන අවස්ථා යතුරේ රතු කණුව 5v අග්‍රයටද, කලු කණුව 10k Ω ප්‍රතිරෝධයක් හරහා බ්ම් අග්‍රයට(GND pin )ද සවි කරන්න. තෙවන කණුව ඩ්ගිටල් 2 අග්‍රයට සවි කරන්න.

ආරම්භයේදී යතුර ඔබා නැති අතර එහි කණු අතර සම්බන්ධයක් නැත. එම නිසා ආදානය LOW වේ. යතුර එබූවිට වෝල්ට් 5 ක ධාරාවකට සම්බන්ධවීමෙන් ආදානය HIGH වේ.
යතුර ඔබන සෑම විටකම ආදානය LOW සහ HIGH අතර මාරු වේ.
ඒවා ගණන් කිරීමෙන් වාර ගණන ලබාගනී. 


// නියත 
const int buttonPin = 2;    // ඔබන අවස්ථා යතුරේ අග්‍රය
const int ledPin = 13;      // LED අග්‍රය


// වෙනස් විය හැකි විචල්‍ය
int buttonPushCounter = 0; // එබූ වාර ගණන
int buttonState = 0;              // යතුරේ තත්වය
int lastButtonState = LOW;   // කලින් අවස්ථාවේ ප්‍රතිදාන අගය

void setup() {

  pinMode(buttonPin, INPUT); // යතුර ආදානයක් ලෙස
  pinMode(ledPin, OUTPUT); //බල්බය ප්‍රතිදානයක් ලෙස
  Serial.begin(9600); // රේඛීය සන්නිවේදන ආරමිභය
 }

void loop() {
  // යතුරේ ආදානය ලබාගන්න
  buttonState = digitalRead(buttonPin);

  // කලින් අවස්ථාවේ තත්වයට අසමාන නම්
  if (buttonState != lastButtonState) {
    // යතුරේ ආදානය වෙනස් වී ඇතිනම්
    if (buttonState == HIGH) {
      // වත්මන් තත්වය HIGH නම්
      // එබූ වාරගණනට එකක් එකතු කරන්න
      buttonPushCounter++;
      Serial.println("on"); // රේඛීය මුද්‍රණය 
      Serial.print("number of button pushes:  ");
      Serial.println(buttonPushCounter); //එබූ වාර ගණන
    } else {
      // වත්මන් තත්වය LOW නම් 
      Serial.println("off");
    }
    // ආපසු ඒම (bouncing) නොසලකා හැරීමට විරාමය
    delay(50);
  }
  //  ඊ ලඟ වටය සඳහා වත්මන් තත්වය අවසාන අවස්ථාව ලෙස සේවා කරන්න
  lastButtonState = buttonState;
  //සෑම එබුම් හතරකටම බල්බය දැල්වේ
  // modulo ශ්‍රතය (%) බෙදීමක ඉතිරිය (remainder) ලබා දේ
  if (buttonPushCounter % 4 == 0) {
    digitalWrite(ledPin, HIGH); //බල්බය දල්වන්න
  } else {
    digitalWrite(ledPin, LOW);  // බල්බය නිවන්න
  }

}