// (1)- Sketch Started time ස්කෙච් එක පටන් ගන්න වෙලාව
unsigned long ms_from_start=0;
// (2) - Keeps the number of millisecond since the sketch was started untill the time of the last led status change
// ස්කෙච් එක රන් වෙන්න පටන් ගත්ත වෙලාව සහ අවසානයට බල්බ් එකේ තත්වය එහෙමත් නැත්තම් ඔෆ් හෝ ඔන් වීමට ගත්තු කාලය අතර වෙනස
unsigned long ms_previous_read_LED1=0;
// (3) -Keeps intraval we need to keep LED ON/OFF
// බල්බ් එක පත්තු වෙලා තියෙන්න ඕන කාලය හරියට අපි ඩිලේ ෆන්ක්ෂන් එකේදී පාවිච්චි කලා වගේ මිලි සෙකන්ඩ් වලින්.
unsigned long LED1_interval=1000;
#define LED1 13 // define LED Pin
int LED1_state=0; // (4)- Define LED State ස්කෙච් එක රන් වෙන්න පටන් ගන්න කොට තියෙන තත්වේ
void setup() {
pinMode(LED1, OUTPUT);
}
void loop() {
// ( 5)-Read current time in Milliseconds , ලුප් එක පටන් ගන්නකොටම තියෙන වෙලාව
ms_from_start=millis();
// (6) - Check whether the time difference between start time and previous led state change is exceeded the Led Turn OFF/ON Interval
/* ස්කෙච් එක රන් වෙන්න පටන් ගත්ත වෙලාව සහ අවසානයට බල්බ් එකේ තත්වය එහෙමත් නැත්තම් ඔෆ් හෝ ඔන් වීමට ගත්තු කාලය අතර වෙනස ,
බල්බ් එක පත්තු වෙලා තියෙන්න ඕන කාලය ට වඩා අඩුද වැඩිද කියල පරික්ෂා කිරීම */
if (ms_from_start - ms_previous_read_LED1 > LED1_interval){
/*(7)- If Interval exceed time difference , update ms_previous_read_LED1 variable and change the
LED Status of the led switching it ON when it is off or vice versa.*/
/*ස්කෙච් එක රන් වෙන්න පටන් ගත්ත වෙලාව සහ අවසානයට බල්බ් එකේ තත්වය එහෙමත් නැත්තම් ඔෆ් හෝ ඔන් වීමට ගත්තු කාලය අතර වෙනස ,
බල්බ් එක පත්තු වෙලා තියෙන්න ඕන කාලය ට වඩා වැඩි උනොත් LED එකේ තත්වය වෙනස් කිරීම ඒ කියන්නේ ON නම් OFF , OFF නම් ON කිරීම */
ms_previous_read_LED1=ms_from_start;
//(8)-Switching LED State
if (LED1_state==0) LED1_state=1; else LED1_state=0;
digitalWrite(LED1,LED1_state);
}
}