የ Arduino ኮድ እና ቪዲዮ ለ HC-SR501 እንቅስቃሴ ዳሳሽ
በዚህ ትምህርት ውስጥ፣ በኢንፍራሬድ ቴክኖሎጂ አማካኝነት እንቅስቃሴን ለመለየት የተነደፈውን HC-SR501 የእንቅስቃሴ ዳሳሽ እንመረምራለን። ዳሳሹ ውጤትን ማስነሳት ይችላል፣ ይህም እንደ LED ወይም ማንቂያ ያሉ መሳሪያዎችን በእንቅስቃሴ መለየት ላይ በመመስረት እንዲቆጣጠሩ ያስችልዎታል። በዚህ ትምህርት መጨረሻ፣ ዳሳሹን እንዴት እንደሚሰርዙ እና በትክክል እንዲሰራ የ Arduino ኮድን እንዴት እንደሚተገብሩ ግልጽ ግንዛቤ ይኖርዎታል። (በቪዲዮ 00:45 ላይ)

ሃርድዌር ተብራርቷል
የ HC-SR501 የእንቅስቃሴ ዳሳሽ 32 በ 24 ሚሊሜትር የሚለካ የታመቀ ሞጁል ሲሆን፣ ከ5 እስከ 20 ቮልት ባለው የቮልቴጅ ክልል ውስጥ መስራት ይችላል። በውስጡ እምብርት ላይ የ LHI 778 የኢንፍራሬድ ዳሳሽ አለ፣ እሱም በኢንፍራሬድ ጨረር ላይ የሚመጡ ለውጦችን በመለየት እንቅስቃሴን ይለያል። ይህ ለተለያዩ አፕሊኬሽኖች፣ የደህንነት ስርዓቶችን እና የሮቦቲክስ ፕሮጀክቶችን ጨምሮ ተስማሚ ያደርገዋል።
ይህ ሞጁል ሶስት ዋና ፒኖች አሉት፡- VCC ለኃይል፣ GND ለመሬት፣ እና OUT ለውጤት ምልክት። እንቅስቃሴ ሲታወቅ፣ የ OUT ፒን ከፍተኛ ምልክት (3.3 ቮልት TTL) ይልካል፣ ይህም ማንቂያዎችን ወይም ሌሎች መሳሪያዎችን ለማስነሳት ሊያገለግል ይችላል። ዳሳሹ እንዲሁም ሊስተካከሉ የሚችሉ የስሜታዊነት እና የጊዜ መዘግየት ቅንብሮችን ያካትታል፣ ይህም በተወሰኑ ፍላጎቶችዎ መሰረት አሰራሩን እንዲያበጁ ያስችልዎታል።
የዳታሼት ዝርዝሮች
| አምራች | HC-SR501 |
|---|---|
| የክፍል ቁጥር | HC-SR501 |
| የሎጂክ/IO ቮልቴጅ | 3.3 ቮ |
| የአቅርቦት ቮልቴጅ | 5–20 ቮ |
| የውጤት ኤሌክትሪክ (በቻናል) | ≤ 20 ሚኤ |
| ከፍተኛ ኤሌክትሪክ (በቻናል) | ≤ 50 ሚኤ |
| የ PWM ድግግሞሽ መመሪያ | አይተገበርም |
| የግቤት ሎጂክ ገደቦች | 0.8 ቮ (ዝቅተኛ)፣ 2.0 ቮ (ከፍተኛ) |
| የቮልቴጅ ጠብታ / RDS(on) / ሙሌት | 0.1 ቮ |
| የሙቀት ገደቦች | 0°ሴ እስከ 70°ሴ |
| ፓኬጅ | ሞጁል |
| ማስታወሻዎች / ልዩነቶች | ሊስተካከሉ የሚችሉ የስሜታዊነት እና የጊዜ መዘግየት ቅንብሮች |
- ትክክለኛውን የኃይል አቅርቦት ቮልቴጅ (5-20 ቮ) ያረጋግጡ።
- ኤሌክትሪክን ለመገደብ ከ LEDዎች ጋር በተከታታይ ተቃዋሚ ይጠቀሙ።
- ለመለየት ክልል የስሜታዊነት ፖቴንሽዮሜትሩን ያስተካክሉ።
- ውጤቱ ከፍ ያለ ሆኖ የሚቆይበትን ጊዜ ለመቆጣጠር የጊዜ መዘግየቱን ያዘጋጁ።
- ተንሳፋፊ ግቤቶችን ይጠንቀቁ; እንደ አስፈላጊነቱ የመጎተት-ወደላይ ወይም የመጎተት-ወደታች ተቃዋሚዎችን ይጠቀሙ።
የሽቦ መገጣጠም መመሪያዎች

የ HC-SR501 የእንቅስቃሴ ዳሳሽ ለማሰር፣ የ VCC ፒንን በ Arduino ላይ ካለው የ5V ውጤት ጋር በማገናኘት ይጀምሩ። በመቀጠል የ GND ፒንን በ Arduino ላይ ካለው መሬት (GND) ጋር ያገናኙ። የ OUT ፒን በ Arduino ላይ ካለው ዲጂታል ፒን 2 ጋር መገናኘት አለበት፣ ይህም የእንቅስቃሴ መለያ ምልክትን ያነባል።
ለእይታ ግብረመልስ LED እየተጠቀሙ ከሆነ፣ የ LEDውን አኖድ (ረጅሙ ፒን) በ Arduino ላይ ካለው ዲጂታል ፒን 8 ጋር ያገናኙ። ካቶዱ (አጭሩ ፒን) ከ680-ኦም ተቃዋሚ አንድ ተርሚናል ጋር መገናኘት አለበት፣ የተቃዋሚው ሌላኛው ተርሚናል ደግሞ ወደ መሬት ይሄዳል። ይህ ዝግጅት Arduino በእንቅስቃሴ መለየት ላይ በመመስረት LEDውን እንዲቆጣጠር ያስችለዋል።
የኮድ ምሳሌዎች እና ጉዞ
ለዚህ ዝግጅት የ Arduino ኮድ ተከታታይ መቆጣጠሪያውን ያስጀምራል እና የግቤት እና የውጤት ፒኖችን ያዋቅራል። በኮዱ ውስጥ ያሉት ቁልፍ መለያዎች motionን ያካትታሉ፣ እሱም የእንቅስቃሴ ዳሳሹን ሁኔታ ያከማቻል፣ እና ግቤትን ለማንበብ እና LEDውን ለመቆጣጠር የሚያገለግሉት ዲጂታል ፒኖች።
void setup() {
Serial.begin(9600);// መረጃን ለማሳየት ተከታታይ መቆጣጠሪያን ያዘጋጁ
pinMode(2, INPUT);// ከዳሳሽ ግቤት
pinMode(8, OUTPUT);// ውጤት ወደ ማንቂያ ወይም LED
}
በዚህ ክፍል፣ የ setup() ተግባር ተከታታይ ግንኙነትን ያስጀምራል እና ለዳሳሹ እና LEDው የፒን ሁነታዎችን ያዘጋጃል። ፒን 2 የእንቅስቃሴ ዳሳሹን ውጤት ለማንበብ እንደ ግቤት ተዘጋጅቷል፣ ፒን 8 ደግሞ LEDውን ለመቆጣጠር እንደ ውጤት ተዘጋጅቷል።
void loop() {
int motion = digitalRead(2);
if(motion){
Serial.println("እንቅስቃሴ ተለይቷል");
digitalWrite(8, HIGH);
}else{
Serial.println("===ምንም አይንቀሳቀስም");
digitalWrite(8, LOW);
}
delay(500);
}
ይህ የኮድ ክፍል ዋናውን ዑደት ይወክላል፣ ፕሮግራሙ የእንቅስቃሴ ዳሳሹን ሁኔታ ያለማቋረጥ የሚፈትሽበት። እንቅስቃሴ ከተለየ፣ "እንቅስቃሴ ተለይቷል" ብሎ ወደ ተከታታይ መቆጣጠሪያው ያትማል እና LEDውን ያበራል። ምንም እንቅስቃሴ ካልተለየ፣ "===ምንም አይንቀሳቀስም" ብሎ ያትማል እና LEDውን ያጠፋል።
ማሳያ / ምን እንደሚጠበቅ
ዝግጅቱ ሲጠናቀቅ እና ኮዱ ወደ Arduino ሲጫን፣ እንቅስቃሴ በ HC-SR501 ዳሳሽ ሲታወቅ LEDው ሲበራ መጠበቅ አለብዎት። በተጨማሪም፣ ተከታታይ መቆጣጠሪያው እንቅስቃሴ መለየቱን ወይም አለመለየቱን የሚያመለክቱ መልዕክቶችን ያሳያል። በዳሳሹ ላይ የስሜታዊነት እና የጊዜ መዘግየት ቅንብሮችን ካስተካከሉ፣ ዳሳሹ ለእንቅስቃሴ ምላሽ በሚሰጥበት ፍጥነት ላይ ለውጦችን ሊያስተውሉ ይችላሉ (በቪዲዮ 05:30 ላይ)።
የተለመዱ ወጥመዶች የተሳሳተ ሽቦ መገጣጠምን ያካትታሉ፣ ለምሳሌ የ VCC እና GND ግንኙነቶችን መቀልበስ፣ ይህም ዳሳሹን ሊጎዳ ይችላል። ተንሳፋፊ ግቤቶችን ለማስቀረት የዳሳሹ ውጤት ፒን በ Arduino ላይ ከተመደበው የግቤት ፒን ጋር በትክክል መገናኘቱን ያረጋግጡ።
የቪዲዮ የጊዜ ማህተሞች
- 00:00 መግቢያ
- 00:45 የሃርድዌር አጠቃላይ እይታ
- 02:30 የሽቦ መገጣጠም መመሪያዎች
- 04:00 የኮድ ማብራሪያ
- 05:30 ማሳያ
/*
* This is the Arduino code for HC-SR501 Motion Sensor
* to detect motion of humans or objects using Arduino for robotic car and other applications
* Watch the video https://youtu.be/mZCJNOf69JI
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: Dec 27, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
pinMode(2, INPUT);// Input from sensor
pinMode(8, OUTPUT);// OUTPUT to alarm or LED
}
void loop() {
int motion =digitalRead(2);
if(motion){
Serial.println("Motion detected");
digitalWrite(8,HIGH);
}else{
Serial.println("===nothing moves");
digitalWrite(8,LOW);
}
delay(500);
}
ምንጮች እና ምንጮች
አሁን ምንም ምንጮች የለም።
ፋይሎች📁
ሌላ ፋይሎች
-
HC-SR501 እንቅስቃሴ ሴንሰር LHI778 መመሪያ
robojax-HC-SR501-motion-LHI778-manual.pdf0.20 MB