Arduino Lesson 18 – HC-SR501 PIR Sensor

සෑම පිස්සු විද්‍යාඥයෙකුගේ විද්‍යාගාරයක් හෝ යෞවනයෙකුගේ රහස් කාමරයකට, අනවසරයෙන් කවරෙකු හෝ සහෝදර සහෝදරියන් ඇතුළු වීම වැළැක්වීම සඳහා උසස් ආරක්ෂාවක් අවශ්‍ය වේ. ඔබ ඔවුන්ගෙන් එක් කෙනෙක් නම්, ඔබ (PIR) සංවේදකයක් මගින් එය සිදු කරගැනිමට හැකිය. ඔබගේ කාමරයේ ඔබ නොසිටින විට කවරෙකු හෝ අතුලු වි ඇත්නම් එය හඳුනා ගැනීමට PIR සංවේදක ඔබට ඉඩ දෙයි.

මෙම සංවේදකය බොහෝ නවීන ආරක්ෂක පද්ධති(modern security systems), ස්වයංක්‍රීය ආලෝක ස්විච( automatic light switches), ගරාජ් දොර විවරයන්(garage door openers) සහ ඒ හා සමාන යෙදුම් වල භවිතා වේ.

PIR Motion Sensor වැඩ කරන්නෙ කොහොමද?

ඔබ නොදැන සිටියේ නම්, කෙල්වින් 0 එසෙත් නැතිනම් නිරපේක්ෂ ශුන්‍යයට (0 කෙල්වින් / -273.15) C) ඉහළ උෂ්ණත්වයක් ඇති සියලුම වස්තූන් මිනිස් සිරුරු ඇතුළු අධෝරක්ත කිරණ ස්වරූපයෙන් තාප ශක්තිය විමෝචනය කරයි. වස්තුවක් උණුසුම් වන තරමට එය විමෝචනය වන ප්‍රමාණය වැඩි වේ..

එවැනි අධෝරක්ත කිරණ හඳුනා ගැනීම සඳහා PIR Sensor විශේෂයෙන් නිර්මාණය කර ඇත. එය මූලික වශයෙන් ප්‍රධාන කොටස් දෙකකින් සමන්විත වේ: Pyroelectric Sensor  සහ Fresnel lens නම් විශේෂ කාචයයි, එය  මගින් අධෝරක්ත signals Pyroelectric Sensor එක වෙතට යොමු කරයි.

Pyroelectric Sensor එකෙහි ඇත්ත වශයෙන්ම සෘජුකෝණාස්රාකාර තව් දෙකක් ඇත. මේවා පිටුපස වෙනම අධෝරක්ත සංවේදක ඉලෙක්ට්‍රෝඩ දෙකක් ඇත, එකක් positive output එකක් නිපදවීමට වගකිව යුතු අතර අනෙක negative output එකකි. එයට හේතුව අප සොයන්නේ IR මට්ටම්වල වෙනසක් මිස සංසරණ වන IR මට්ටම්වල වෙනසක් නොවේ. ඉලෙක්ට්රෝඩ දෙක වයර් කර ඇති අතර එමඟින් එකිනෙකා සම්බන්ධ ව පවති. එක් අඩක් අනෙක් විකිරණයට වඩා වැඩි හෝ අඩු IR විකිරණ දුටුවහොත්, ප්‍රතිදානය ඉහළට හෝ පහළට වේගයෙන් වෙනස් වේ.

sensor එක වටා චලනයන් නොමැති නම් Sensor එක අක්‍රිය වේ.  එනම් මෙහි කොටස් දෙකෙන්ම එකම අධෝරක්ත කිරණ හඳුනා ගනී, එවිට output එක ලෙස ලබෙන්නේ ශුන්‍ය (0) output signal එකකි.

නමුත් මිනිසෙකු හෝ සතෙකු වැනි උණුසුම් ශරීරයක් පසුකර යන විට; එය මුලින්ම PIR Sensor එකෙහි අඩක් හරහා ගමන් කරයි එනම් බධා කරයි, එමඟින් අර්ධ දෙක අතර ධනාත්මක අවකලනය වෙනස් වේ. උණුසුම් ශරීරය සංවේදක ප්‍රදේශයෙන් ඉවත්ව යන විට, ආපසු හැරීම සිදු වන අතර එමඟින් සංවේදකය මගින් negative ආකරයට අවකලනය වෙනස් කරයි. එනම් අනුරූප ස්පන්දනයේ results එක වන්නේ sensor එකෙහි output pin HIGH ලෙස තබා ගැනීමයි.

HC-SR501 PIR Motion Detector

පුද්ගලයෙකු පිටව ගිය විට හෝ එම ප්‍රදේශයට ඇතුළු වූ විට හෝ ළඟා වූ විට හඳුනා ගැනිම සදහා අපගේ Arduino ව්‍යාපෘති බොහොමයක් තුල HC-SR501 PIR Sensor භවිතයට ගනි.. ඒවා අඩු බලයක් සහ අඩු පිරිවැයක්, තරමක් රළු, පුළුල් හදුනා ගැනිමේ පරාසයක් ඇති අතර ඒවා අපගේ projects සමග පහසුවෙන් භාවිතා කර හැකි අතර විනෝදාංශ කටයුතු සදහා එතරම් සුදුසු නොවේ.

පහත රූප සටහනේ පෙන්වා ඇති පරිදි HC-SR501 වර්ගයේ PIR sensor එකක VCC, ප්‍රතිදානය(OUTPUT) සහ බිම් ප්‍රතිදානය(GND) ලෙස තුනක් ඇත. එයට වෝල්ට් 4.5 සිට 12 දක්වා ඕනෑම DC වෝල්ටීයතාවයක් ලබා දිය හැකි අකරයට එහි voltage regulator එකක් ඇතුලත් කර ඇත, සාමාන්‍යයෙන් මේ සදහා 5V භාවිතා වේ. මේ හැරුණු විට, ඔබේ PIR  sensor එක භාවිතා කිරිමට විකල්ප ක්‍රම කිහිපයක් තිබේ. දැන අපි ඒවා පිලිබව විමසා බලමු.

parameters කිහිපයක් සැකසීමට පුවරුවේ potentiometers දෙකක් තිබේ:

  • සංවේදීතාව (Sensitivity) – මෙය චලනය හඳුනාගත හැකි උපරිම දුර නියම කරයි. එය මීටර් 3 සිට දළ වශයෙන් මීටර් 7 දක්වා පරාසයක පවතී. ඔබේ කාමරයේ ස්ථාන හා ස්වරුපය මත ඔබට ලබා ගන්නා සැබෑ පරාසයට බලපායි.
  • වේලාව (Time) – OUTPUT ප්‍රතිදානය HIGH ලෙස හඳුනාගැනීමෙන් පසු කොපමණ කාලයක් පවතිනු ඇත්දැයි මෙයින් නියම කෙරේ. අවම වශයෙන් එය තත්පර 3 යි, උපරිම වශයෙන් එය තත්පර 300 ක් හෝ විනාඩි 5 කි.

අවසාන වශයෙන් පුවරුවට jumper ඇත (සමහර මාදිලිවල jumper බොර්ඩ් එකට සොල්ඩර් කර නොමැත). එය භවිතයෙන් සැකසුම් දෙකක් සිදු කර ගැනිමට පුලුවන්:

  • H – මෙම ස්ථානයේ රඳවා තබා ගැනීම(Hold) / නැවත කිරීම (Repeat) / නැවත සකස් කිරීම (Retriggering) වැනි චලනයන් HC-SR501Sensor එකෙන් දිගටම හඳුනාගන්නා තාක් කල් output signal එක HIGH නිකුත් කරනු ඇත.
  • L– මෙය අතරමැදි(Intermittent) හෝ නැවත නොකිරීම / නැවත පණ ගැන්වීම( No-Repeat/Non-Retriggering) නොවේ. මෙම ස්ථානයේ ප්‍රතිදානය TIME පොටෙන්ටෝමීටර සකසා ඇති ආකරය මඟින් නියම කරන ලද කාල සීමාව සඳහා OUTPUT එක HIGH ලෙස පවතී.

HC-SR501 PIR Sensor එක බහුකාර්ය කිරීම.

HC-SR501 පරිපථ පුවරුවේ අමතර සංරචක දෙකක් සඳහා පෑස්සීමේ අකාරයට ඇත. මේවා සාමාන්‍යයෙන් ‘RT’ සහ ‘RL’ ලෙස ලේබල් කර ඇත. සමහර පුවරුවල ලේබල් සංරචක වලට විරුද්ධ පැත්තේ ඇති “ගෝලාකාර” කාචයෙන් ආවරණය විය හැකි බව සලකන්න.

  • RT– මෙය උෂ්ණත්වමානයක් හෝ උෂ්ණත්ව සංවේදී ප්‍රතිරෝධකයක් සඳහා අදහස් කෙරේ. මෙය එකතු කිරීමෙන් HC-SR501 අධික උෂ්ණත්වවලදී භාවිතා කිරීමට ඉඩ සලසයි, එමඟින් අනාවරකයේ නිරවද්‍යතාවය යම් ප්‍රමාණයකට වැඩි කරයි.
  • RL– මෙම සම්බන්ධතාවය ආලොක සන්වෙදි ප්‍රතිරෝධකයක් (එල්ඩීආර්) හෝ ෆොටෝසිස්ටරය සඳහා වේ. මෙම component එක එකතු කිරීමෙන් HC-SR501 Sensor එක ක්‍රියාත්මක වන්නේ චලිත සංවේදී ආලෝකකරණ පද්ධති සඳහා වන පොදු යෙදුමක් වන අඳුරේ පමණි.

අතිරේක components කෙලින්ම පුවරුවට solder කර ගැනිමට හෝ වයර් සහ සම්බන්ධක භාවිතා කරමින් දුරස්ථ ස්ථාන කරා විහිදිය හැකිය.

HC-SR501 PIR Sensor පින් පවතින ආකරය

HC-SR501 සතුව පින් 3ක සම්බන්ධකයක් ඇති අතර එය බාහිර කේබල සමග අන්තර් සම්බන්ධ සිදු කරයි. සම්බන්ධතාවය පහත පරිදි වේ:

VCC යනු HC-SR501 PIR sensor එකෙහි බල සැපයුම වන අතර එය අපි Arduino හි 5V පින් සම්බන්ධ කරමු

Output පින් යනු 3.3V TTL තාර්කික ප්‍රතිදානයකි. LOW වලින් පෙන්නුම් කරන්නේ කිසිදු චලිතයක් අනාවරණය වී නොමැති බවයි, HIGH යනු යම් චලිතයක් අනාවරණය වී ඇති බවයි.

GND Arduino බොර්ඩ් එකෙහි GND හා සම්බන්ධ කළ යුතුය.

PIR Sensor ස්වාධීන ඒකකයක් ලෙස භාවිතා කිරීම

HC-SR501 PIR sensor එක අතිශයින් ජනප්‍රිය වීමට එක් හේතුවක් වන්නේ HC-SR501 යනු බහුකාර්ය සංවේදකයක් වන අතර එය තනි module එකක් ලෙස පවතින නිසාය.. Arduino වැනි සමහර මයික්‍රොකොන්ට්රෝලර් සමඟ එය සම්බන්ධ කිරීමෙන් ඔබට එහි බහුකාර්යතාව තව දුරටත් පුළුල් කළ හැකිය. අපගේ පළමු අත්හදා බැලීම සඳහා අපි තනිවම HC-SR501 භාවිතා කර එය කෙතරම් ප්‍රයෝජනවත්ද යන්න නිදර්ශනය කරමු.

මෙම අත්හදා බැලීම සඳහා wire සම්බන්ධ කිරිම ඉතා සරලය. Sensor එකෙහි VCC සහ GND හරහා බැටරි සම්බන්ධ වන අතර කුඩා රතු LED එකක් 220Ω ධාරා සීමා කරන ප්‍රතිරෝධකයක් හරහා OUTPUT පින් එකට සම්බන්ධ කර ඇත.

දැන් PIR Sensor එක මඟින් චලිතය හඳුනාගත් විට, Output පින් “HIGH” වේ.  එවිට LED බල්බය දැල්වෙනු ඇත!

ස්වාධීන යෙදුම් සඳහා PIR සංවේදකයක් භාවිතා කළ හැකි ආකාරය මෙයින් පැහැදිලි වේ.

ඔබ පරිපථය විදුලිය ලබා දුන් පසු PIR Sensor එක කාමරයේ අධෝරක්ත ශක්තියට හුරු වීමට තත්පර 30-60 අතර කාලයක් බලා සිටීමට අවශ්‍ය බව මතක තබා ගන්න. එම කාලය තුළ LED මඳක් දැල්විය හැකිය. LED එක ක්‍රියා විරහිත වන තෙක් රැඳී සිට ඔබගේ අත එය ඉදිරිපිට එහා මෙහා ගෙනයන්න, එවිට LED බල්බය ආලෝකය විහිදුවනු දැක ගත හැකිය!

Wire සම්බන්ධ කිරිම – PIR Sensor එක Arduino UNO බොර්ඩ් එක සමඟ සම්බන්ධ කිරීම

දැන් අපට PIR Sensor එක ක්‍රියා කරන ආකාරය පිළිබඳ පූර්ණ අවබෝධයක් ඇති බැවින්, අපට එය අපගේ Arduino බොර්ඩ් එක සමග සම්බන්ධ කිරීම ආරම්භ කළ හැකිය!

PIR Sensor එක ක්ෂුද්‍ර පාලකයකට(microcontroller) සම්බන්ධ කිරීම ඇත්තෙන්ම පහසුය. PIR Sensor එක ඩිජිටල් නිමැවුමක් ලෙස ක්‍රියා කරයි එනම් එක ඩිජිටල් සිග්නල් ආකරයට output ලබා දේ, එබැවින් ඔබ කළ යුත්තේ HIGH (Motion Detected) හෝ LOW (අනාවරණය වී නැත) ලෙස output පින් එකට ලැබෙන සිග්නල් එක කුමක්ද යන්න සොයාබැලිම පමණි.

දැන් 5V සමඟ PIR බල ගැන්වීම(VCC) සහ GND පින් සම්බන්ධ කර. ඉන්පසු output පින් එක අර්ඩුයිනෝ බොර්ඩ් එකෙහි ඩිජිටල් පින් 8 ට සම්බන්ධ කරන්න.

මෙය නිවැරදිව ක්‍රියා කිරීම සඳහා HC-SR501Sensor එකෙහි හි ජම්පරය H (Retriggering) ස්ථානයට සැකස් කල යුතුය. TIME අවම තත්පර 3 ක් ලෙස සැකසිය යුතුය, TIME පොටෙන්ටෝමීටරය ප්‍රතිවිරුද්ධ දිශාවට හරවන්න. ඔබ කැමති ඕනෑම තැනකට  සංවේදීතාව සකසන්න, ඔබට විශ්වාස නැත්නම් එය මධ්‍ය ලක්ෂ්‍යයට සකසන්න.

ඒ සමඟ, ඔබ දැන් යම් code එකක් එනම් ප්‍රොග්‍රම් එකක් අප්ලොඩ් කර PIR sensor එක වැඩ කරන ආකරය බැලිමට සූදානම්.

Arduino Code

මෙම කේතය ඉතා සරල වන අතර මූලික වශයෙන් ඩිජිටල් 8 පින් එක මගින් output එක HIGH හෝ LOW දැයි සොයා ගනීමට නිර්මණය කර ඇත.

int ledPin = 13;           // choose the pin for the LED
int inputPin = 8;          // choose the input pin (for PIR sensor)

int pirState = LOW;        // we start, assuming no motion detected
int val = 0;               // variable for reading the pin status
 
void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // read input value
  
  if (val == HIGH)	// check if the input is HIGH
  {            
    digitalWrite(ledPin, HIGH);  // turn LED ON
    
    if (pirState == LOW) 
    {
      Serial.println("Motion detected!") // print on output change
      pirState = HIGH;
    }
  } 
  else 
  {
    digitalWrite(ledPin, LOW); // turn LED OFF
    
    if (pirState == HIGH)
    {
      Serial.println("Motion ended!");	// print on output change
      pirState = LOW;
    }
  }
}

යම් චලනයක් අනාවරණය වූ විට අවසානයේදී serial monitor එකෙහි පණිවිඩයක් දිස්වේ.

PIR Sensor output on serial monitor

PIR Sensor එක පදනම් කරගත් යෙදුම් සැලසුම් කිරීමට පෙර සලකා බැලිය යුතු කරුණු

බොහෝ PIR sensors මෙන්ම, HC-SR501 කාමරයේ අධෝරක්ත ශක්තියට හුරු වීමට යම් කාලයක් අවශ්‍ය වේ. සංවේදකය පළමු වරට ක්‍රියාත්මක වන විට මෙය තත්පර 30 සිට 60 දක්වා ගත වේ. කියවීමට පසු තත්පර 5 ක් හෝ 6 ක් පමණ සංවේදකයට “යළි පිහිටුවීමේ” කාල සීමාවක් ඇත. මෙම කාලය තුළ එය කිසිදු චලනයක් හඳුනා නොගනී.

HC-SR501 PIR sensor මත පදනම් වූ පද්ධතියක් සැලසුම් කිරීමේදී ඔබට මෙම ප්‍රමාද කාලයන් සැලකිල්ලට ගත යුතුය.

Leave a Reply

Your email address will not be published. Required fields are marked *

Index