පසුගිය පාඩමෙන් ඔබ LED Blink කරන හැටි ඉගෙන ගත්තා නේද? අද අපි ඉගෙන ගන්නේ සෙන්සර් සහ බොත්තම් භාවිතා කරන ආකාරය!


අද ඉගෙන ගන්න දේ

✅ LDR (ආලෝක සංවේදී රෙසිස්ටර්) භාවිතා කර ආලෝක මට්ටම හඳුනා ගැනීම
✅ පුෂ් බොත්තම් (Push Button) සමඟ අන්තර්ක්‍රියා කිරීම
✅ සරල ප්‍රෝග්‍රෑම් 2ක් (LDR LED Control, Button LED Control)


ඔබට අවශ්‍ය දෑ

  1. Arduino UNO/Nano

  2. LDR සහ 10kΩ රෙසිස්ටර්

  3. පුෂ් බොත්තම්

  4. LED + 220Ω රෙසිස්ටර්

  5. බ්‍රෙඩ්බෝඩ් සහ වයර්


පරිපථ 1: LDR සමඟ LED පාලනය

පරිපථ සැකැස්ම

  • LDR එකේ එක් පාදය → 5V

  • LDR එකේ අනෙක් පාදය → A0 සහ 10kΩ රෙසිස්ටර් → GND

කේතය – Code

int ldrPin = A0; // LDR A0 ට සම්බන්ධ කර ඇත
int ledPin = 13;  // LED D13 ට සම්බන්ධ කර ඇත

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);  // සීරියල් මොනිටර් සකසන්න
}

void loop() {
  int light = analogRead(ldrPin);  // LDR අගය කියවන්න
  Serial.println(light);          // අගය පෙන්වන්න

  if (light < 500) {              // අඳුරු නම් LED ON කරන්න
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
  delay(100);
}

ක්‍රියාකාරිත්වය

  • LDR එක ආලෝකය අඩු වූ විට LED එක ලයිට් වේ!

  • Serial Monitor (Ctrl+Shift+M) විවෘත කර LDR අගය නරඹන්න.


පරිපථ 2: බොත්තම් සමඟ LED පාලනය

පරිපථ සැකැස්ම

  • බොත්තම් එක → D2 සහ GND

  • LED එක → D13

Button Circuit

කේතය

cpp

Copy

Download

int buttonPin = 2;  // බොත්තම් D2 ට සම්බන්ධ කර ඇත
int ledPin = 13;    // LED D13 ට සම්බන්ධ කර ඇත

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);  // පුල්-අප් රෙසිස්ටර් සක්‍රිය කරන්න
}

void loop() {
  if (digitalRead(buttonPin) == LOW) {  // බොත්තම් ඔබා ඇත්නම්
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

ක්‍රියාකාරිත්වය

  • බොත්තම් ඔබන විට LED එක ලයිට් වේ!


ගැටලු නිරාකරණය

❌ LDR අගය නිවැරදිව නොපෙන්වේද?
→ 10kΩ රෙසිස්ටර් භාවිතා කර ඇත්දැයි පරීක්ෂා කරන්න.

❌ බොත්තම් ක්‍රියා නොකරයිද?
→ INPUT_PULLUP භාවිතා කර ඇත්දැයි බලන්න.


ඊළඟ පාඩම

  • PWM භාවිතා කර LED වල දීප්තිය පාලනය කිරීම

  • උෂ්ණත්ව සෙන්සර් (DHT11) සමඟ වැඩ කිරීම