පාඩම් මාලාව 9: උපාංග එකට සම්බන්ධ කිරීම

እስካሁን ඔබ විවිධ සෙන්සර්, ක්‍රියාකාරක සහ displays වෙන වෙනම භාවිතා කරන ආකාරය ඉගෙන ගත්තා. මෙම පාඩමේ අරමුණ වන්නේ ඒ සියල්ල එකට එකතු කර, වඩාත් සංකීර්ණ සහ ප්‍රයෝජනවත් ව්‍යාපෘති නිර්මාණය කරන ආකාරය පෙන්වීමයි. සැබෑ ලෝකයේ ගැටළු විසඳීමට Arduino යොදාගන්නේ මෙලෙසයි.

පාඩමේ අන්තර්ගතය

Arduino හි loop() ශ්‍රිතය ඉතා වේගයෙන් නැවත නැවතත් ක්‍රියාත්මක වේ. එම නිසා, අපට එහි ඇතුළත විවිධ සෙන්සර් වලින් දත්ත කියවීමේ කේත කොටස් පිළිවෙලින් ලිවිය හැක.

උදාහරණයක් ලෙස, උෂ්ණත්ව සෙන්සරයකින් (DHT11), ආලෝක සෙන්සරයකින් (LDR), සහ බොත්තමකින් (push button) එකම loop() එක තුළදී දත්ත ලබාගත හැක.
void loop() {
  // DHT සෙන්සරයෙන් දත්ත කියවයි
  float temperature = dht.readTemperature(); 
  
  // LDR සෙන්සරයෙන් දත්ත කියවයි
  int lightLevel = analogRead(A0);
  
  // බොත්තමෙන් දත්ත කියවයි
  int buttonState = digitalRead(2);
  
  // මෙම දත්ත පදනම්ව තීරණ ගනී...
  delay(500); // කියවීම් අතර කුඩා ප්‍රමාදයක්
}
එක් එක් සෙන්සරයෙන් ලැබෙන දත්ත වෙන වෙනම විචල්‍යයන් (variables) වල ගබඩා කර, පසුව එම දත්ත මත පදනම්ව තීරණ (decisions) ගත හැක.

සම්පූර්ණ ව්‍යාපෘතියක් යනු input (සෙන්සර්) ලබාගෙන, එය සැකසීමකට (processing) ලක් කර, output (ක්‍රියාකාරක) එකක් ලබා දීමයි.

තාර්කික ගැලපීම (Logic Flow):
  1. Input ලබාගන්න: සෙන්සරයකින් (e.g., LDR) අගයක් කියවන්න.
  2. තීරණයක් ගන්න: if-else statement එකක් භාවිතයෙන්, ලබාගත් අගය නිශ්චිත තත්වයක් (condition) සපුරන්නේදැයි පරීක්ෂා කරන්න (e.g., ආලෝකය අඩුද?).
  3. Output එකක් ක්‍රියාත්මක කරන්න: එම තීරණය මත පදනම්ව ක්‍රියාකාරකයක් (e.g., LED, motor) on/off කරන්න.
මෙම සරල Input -> Process -> Output රටාව බොහෝ Arduino ව්‍යාපෘති වල පදනම වේ.

මෙම ව්‍යාපෘතියේදී, LDR සෙන්සරයක් සහ LED එකක් භාවිතා කර, පරිසරය අඳුරු වන විට ස්වයංක්‍රීයව දැල්වෙන සහ ආලෝකය ඇති විට නිවී යන විදුලි පහනක් නිර්මාණය කරමු.
  1. පරිපථය: LDR සෙන්සරයක් වෝල්ටීයතා බෙදුම් පරිපථයක් ලෙස සකසා A0 pin එකටද, LED එකක් digital pin 9 ටද සම්බන්ධ කරන්න.
  2. කේතය:
    • loop() එක තුළදී, analogRead(A0) මගින් LDR සෙන්සරයේ ආලෝක මට්ටම කියවන්න.
    • එକ සීමාන්තික අගයක් (threshold value) තීරණය කරන්න. (e.g., int threshold = 400;). අත්හදා බැලීමෙන් ඔබට සුදුසු අගයක් සොයාගත හැක.
    • if (lightLevel < threshold) ලෙස පරීක්ෂා කරන්න. මෙයින් අදහස් වන්නේ "ආලෝකය අඩු නම්" යන්නයි.
    • If statement එක සත්‍ය නම්, digitalWrite(9, HIGH); ලෙස LED එක ON කරන්න.
    • එසේ නොමැති නම් (else), digitalWrite(9, LOW); ලෙස LED එක OFF කරන්න.
මෙම ව්‍යාපෘතිය මගින් 6 වන පාඩමේ (LDR Sensor) සහ 3 වන පාඩමේ (Blink LED) උගත් දේවල් ප්‍රායෝගිකව එකට යොදන ආකාරය ඔබට පෙන්වයි.
← පෙර පාඩම: LCD සහ Displays ඊළඟ පාඩම: අවසාන ව්‍යාපෘති →