LED Fire Effect - ගිනි මැලයක් හදමු

Posted on January 06, 2016 · 5 mins read · Sinhala · Nuwan Jaliyagoda

මම අද බලාපොරොත්තු වෙන්නේ ආර්ඩියුනෝ බෝඩ් එකක් මගින් LED ගිනි මැලයක් (Fire Effect) නිර්මාණය කරගන්නේ කොහොමද කියලා කියාදෙන්නයි.

මේකට අවශ්‍ය උපකරණ හා උපාංග ලැයිස්තුව මෙන්න

  • Arduino Board
  • Breadboard
  • Yellow LED x 2
  • Red LED x 1
  • 150 ohm resistors x 3
  • Circuit Wires

Circuit Diagram

LED හා Resistors ටික මේ රූපසටහනේ විදිහට අමුණාගන්න.දැන් පරිගණකය ඔන් කරලා Arduino IDE එක විවෘත කරගන්න. අලුතින් sketch එකක් ආරම්භ කරගන්න. මම ඒක fire-effect.ino කියන නමින් save කරගත්තා. දැන් පහත code එක ටයිප් කරන්න. නැත්නම් copy paste කරන්න.

int ledPin1 = 9;
int ledPin2 = 10;
int ledPin3 = 11;

void setup()
{
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
}

void loop()
{
  analogWrite(ledPin1, random(120) + 135);
  analogWrite(ledPin2, random(120) + 135);
  analogWrite(ledPin3, random(120) + 135);
  delay(random(100));
}

දැන් මේ sketch එක බෝඩ් එකට upload කරගන්න. ඔයාලා හැම දෙයක්ම හරියටම කරලා තියෙනවා නම් දැන් ඔයාලට ලස්සන ආලෝක සංදර්ශනයක් දැකගන්න ලැබේවි. කළුවර තැනකට අරන් ගියොත් වඩාත් ලස්සනට මේ fire effect එක නරඹන්න පුළුවන්.

දැන් අපි සාකච්ඡා කරලා බලමු කොහොමද මේක වැඩකරන්නේ කියලා.

int ledPin1 = 9;
int ledPin2 = 10;
int ledPin3 = 11;

මුලින්ම මම කළේ LED වලට යොදාගන්න pin වලට නම් ලබාදුන්න එක. මේකට මම int වර්ගයේ විචල්‍ය 3 ක් පාවිච්චි කළා.

pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);

වැඩහටහන ආරම්භයේදී ම මම LED වලට පාවිච්චි කරන pin 3, ප්‍රතිදාන(output) අග්‍ර විදිහට හදුන්වා දුන්නා. මම ප්‍රතිදාන අග්‍ර විදිහට පාවිච්චි කළේ PWM පහසුකම තියෙන අග්‍ර 3ක්. PWM කියන්නේ Pulse Width Modulation කියන එකයි. අපිට මේ පහසුකම තියෙන අග්‍ර වලට විතරයි analogWrite() කියන function එක පාවිච්චි කරන්න පුළුවන්කම තියෙන්නේ.

analogWrite(ledPin1, random(120) + 135);
analogWrite(ledPin2, random(120) + 135);
analogWrite(ledPin3, random(120) + 135);

analogWrite(pin,value) කියන්න් analog voltage එකක් අදාළ pin එකෙන් නිකුත්කරන ලෙස දෙන උපදෙසයි. අපිට මේ value එක විදිහට 0 ත් 255 ත් අතර අගයක් ලබාදෙන්න පුළුවන්. 0 කියන්නේ 0V, 255 කියන්නේ 5V කියන එක.

random() කියන function එකෙන් කරන්නේ අහඹු අගයක් ලබාදෙන එකයි. random(120) කියන එකෙන් අදහස්වන්නේ 0 ට වැඩි 120 ට අඩු ඕනෑම ඉලක්කමක් අහඹු ලෙස ලබාදෙන බවයි. LED එකක් දැල්වෙන්න 1.5-3 V අතර අගයක් අවශ්‍ය නිසා analogWrite() වල අඩුම අගය විදිහට 135 ක් ලැබෙන්න තමයි random(120) + 135) කියලා ලියලා තියන්නේ.

random එක 0 වනවිට analogWrite එකේ value එන වෙන්නේ 135. මේ උපක්‍රමය හින්දා LED 3 ම එකදිගටම දැල්වෙමින් තියෙනවා. ඒත් analogWrite අගය වෙනස් වෙනනිසා ඒවයේ brightness එක වෙනස් වෙනවා. මේ විදිහට තමයි ලස්සන Fire effect එකක් ලැබෙන්නේ.

රතු, තැඹිලි, කහ LED කීපයක් ම පාවිච්චි කළොත් වඩාත් ලස්සන ගිනිමැලයක් නිර්මාණය කරගන්න පුළුවන්. ඔබත් උත්සාහ කරලා බලන්න.