ආඩියුනෝ පරිපථයේ ඔබන අවස්ථා යතුරක් (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); // බල්බය නිවන්න } }