5W Vesak Bulb Wela – වෙසක් සැරසිලි

Spread the love

අද මම කියලා දෙන්නේ Arduino පාවිච්චි කරලා වෙසක් එකට ලස්සන බල්බ් වැලක් හදන විදිය. මේකෙදි අපි පාවිච්චි කරන්නේ 5W බල්බ්. වෙනදාට් බල්බ් වැලක් හදනවාට වඩා වෙනස් විදියකට නෙමෙයි අපි මේ බල්බ් වැල හදාගන්න ඕනෙ. මේකෙදි මම පාට 4 කින් බල්බ් 10 ගානෙ ඔක්කොම බල්බ් 40 ක් පාවිච්චි කරලා තියනවා. ඔයාලට කැමති බල්බ් ගානක් මේකට පාවිච්චි කරන්න පුලුවන්.

මේ diagram එකේ තියන විදියට තමයි අපි බල්බ් ටික සම්බන්ධ කරගන්න ඕනෙ. වැඩි විස්තර ඔක්කොම වීඩියෝ එකේ කියලා දීලා තියනවා.

මේ බල්බ් අපි control කරන්නේ relay වලින්. Relay වැඩ කරන විදිය සහ program කරන විදිය ගැනත් මම වීඩියෝ එකක් කරලා තියනවා මෙතනින් ඒක බලන්න පුලුවන්.

මෙතනිදි අපිට line 4 ක් control කරන්න් ඕනෙ නිසා මම 4 channel relay module එකක් පාවිච්චි කරලා තියනවා. මේවත් එක්ක වැඩ කරද්දි කල්පනාවෙන් වැඩ කරන්න ඕනේ, මොකද අපි 230V එක්ක තමයි මේ සෙල්ලම කරන්නේ.

Arduino board එක, Relay module එක සහ බල්බ් වැල සම්බන්ධ කරගන්න විදිය ගැන වීඩියෝ එකේ හරියටම පැහැදිලි කරලා තියනවා. මම පහල මේකට ලියපු program එකත් දාලා තියනවා. අවශ්‍ය pattern ටික function විදියට ලියලා ඒවා loop එකේදී call කරලා තියනවා. ඔයාලට මේකට pattern add කරගන්න හෝ තියන ඒවා අයින් කරගන්නත් පුලුවන්. මේ වගේ program එකක් හරියට තේරුම් ගන්න නම් for loop එක දාන විදිය ගැන හොද අවබෝධයක් තියෙන්න ඕනේ. තාමත් for loop එක අවුල් නම් මේ වීඩියෝ එක බලන්න.

මේ වීඩියෝ එකේ තියෙන්නේ pattern ඔක්කොම වැඩ කරන විදිය. එහෙනම් හදලා බලලා කියන්න වැඩේ කොහොමද කියලා

.

// More - https://goo.gl/eUqkST
#define on LOW
#define off HIGH
#define first 4
#define last 7
#define loops 10
int time = 20;
void setup() {
  for (int i = first ; i <= last; i++) {
    pinMode(i, OUTPUT);
  }
}
/*  Author         Nisal Hewagamage
    More videos    www.youtube.com/NisalHewagamage
    Facebook page  www.facebook.com/NisalHeElc
*/
void loop() {
  P1(1);
  P2(0);
  P1(1);
  P2(2);
  P1(0);
  P1();
  P2();
  All_blink1(200, 8);
  P1in(3);
  P2in(3);
  P1in(3);
  P2in(3);
  color(4, 150, 6);
  color(5, 150, 6);
  color(6, 150, 6);
  color(7, 150, 6);
  P11(5);
  for (int i = 0; i < 8; i++) {
    P1(0);
    P2(0);
  }
  All_blink1(500, 22, 20);
  All_blink2(80, 21, 20);
  color(4, 150, 3);
  color(6, 150, 3);
  color(5, 150, 3);
  color(7, 150, 3);
}
//////////////  Patterns  /////////////////////
void P1(int count) {
  time  = 200;
  for (int j = 0; j <= count; j++) {
    for (int i = first; i <= last; i++) {
      digitalWrite(i, on);
      delay(time);
      digitalWrite(i, off);
    }
  }
}
void P1() {
  time  = 50;
  for (int j = 0; j <= 40; j++) {
    for (int i = first; i <= last; i++) {
      digitalWrite(i, on);
      delay(time);
      digitalWrite(i, off);
      time += 1;
    }
  }
}
void P11(int count) {
  time  = 200;
  for (int j = 0; j <= count - 1; j++) {
    for (int i = first; i <= last; i++) {
      digitalWrite(i, on);
      digitalWrite(i + 1, on);
      digitalWrite(i - 3, on);
      delay(time * 2);
      digitalWrite(i, off);
      digitalWrite(i + 1, off);
      digitalWrite(i - 3, off);
      // time += 1;
    }
  }
}
void P2() {
  time  = 210;
  for (int j = 0; j <= 35; j++) {
    for (int i = last; i >= first; i--) {
      digitalWrite(i, on);
      delay(time);
      digitalWrite(i, off);
      time -= 1;
    }
  }
}
void P2(int count) {
  time  = 200;
  for (int j = 0; j <= count; j++) {
    for (int i = last; i >= first; i--) {
      digitalWrite(i, on);
      delay(time);
      digitalWrite(i, off);
      time--;
    }
  }
}
void All_blink1(int time, int count) {
  for (int j = 0; j <= count; j++) {
    for (int i = first; i <= last; i++) {
      digitalWrite(i, on);
    }
    delay(time);
    for (int i = first; i <= last; i++) {
      digitalWrite(i, off);
    }
    delay(time);
  }
}
void All_blink1(int time, int count, int inc) {
  for (int j = 0; j <= count; j++) {
    for (int i = first; i <= last; i++) {
      digitalWrite(i, on);
    }
    delay(time);
    for (int i = first; i <= last; i++) {
      digitalWrite(i, off);
    }
    delay(time);
    time -= inc;
  }
}
void All_blink2(int time, int count, int dec) {
  for (int j = 0; j <= count; j++) {
    for (int i = first; i <= last; i++) {
      digitalWrite(i, on);
    }
    delay(time);
    for (int i = first; i <= last; i++) {
      digitalWrite(i, off);
    }
    delay(time);
    time += dec;
  }
}
void color(int pin, int time, int count) {
  for (int j = 0; j <= count; j++) {
    digitalWrite(pin, on);
    delay(time);
    digitalWrite(pin, off);
    delay(time);
  }
}
void P1in(int count) {
  time  = 200;
  for (int j = 0; j <= count; j++) {
    for (int i = first; i <= last; i++) {
      digitalWrite(i, off);
      delay(time);
      digitalWrite(i, on);
    }
  }
}
void P2in(int count) {
  time  = 200;
  for (int j = 0; j <= count; j++) {
    for (int i = last; i >= first; i--) {
      digitalWrite(i, off);
      delay(time);
      digitalWrite(i, on);
    }
  }
}

Spread the love