HC-SR501 қозғалыс сенсорын реле және Arduino кодымен пайдалану
Бұл оқулықта біз Arduino көмегімен айнымалы ток шамын немесе басқа жүктеме түрін басқару үшін HC-SR501 қозғалыс сенсорын реле арқылы қалай пайдалану керектігін қарастырамыз. HC-SR501 — инфрақызыл қозғалыс сенсоры, ол 7 метрге дейінгі қашықтықтағы қозғалысты анықтай алады, бұл оны қауіпсіздік дабылдары немесе автоматты жарықтандыру жүйелері сияқты әртүрлі қолданбалар үшін өте қолайлы етеді. Осы сенсор мен релені пайдалана отырып, қозғалыс анықталған кезде шамды қосатын жоба жасай аласыз.

Біз аппараттық құралды орнату, сымдарды жалғау нұсқаулары және осы функционалдылыққа қол жеткізу үшін қажетті Arduino коды бойынша қадамдық нұсқаулық береміз. Процесті нақты түсіну үшін байланысты бейнені міндетті түрде көріңіз (бейнеде 00:00).
Аппараттық құрал түсіндірмесі
Бұл жобадағы негізгі компоненттерге HC-SR501 қозғалыс сенсоры, реле модулі және Arduino тақтасы кіреді. HC-SR501 сенсорында үш түйреуіш бар: VCC, GND және OUT. VCC түйреуіші қуат көзіне (5В), GND түйреуіші жерге қосылады, ал OUT түйреуіші қозғалыс анықталған кезде Arduino-ға сигнал жібереді.
Реле модулі жоғары вольтты құрылғыларды басқара алатын қосқыш ретінде әрекет етеді. Оның үш негізгі түйреуіші бар: COM (ортақ), NO (әдетте ашық) және NC (әдетте жабық). Бұл қондырғыда біз NO түйреуішін қолданамыз, ол реле іске қосылғанда жүктемеге қосылады. Бұл Arduino-ға қозғалыс сенсорынан алынған сигнал негізінде релені басқаруға мүмкіндік береді.
Деректер парағының мәліметтері
| Өндіруші | HC-SR501 |
|---|---|
| Бөлшек нөмірі | HC-SR501 |
| Логика/IO кернеуі | 5 В |
| Қоректендіру кернеуі | 5–20 В |
| Қуат тұтынуы | 65 мА |
| Анықтау бұрышы | 120 градус |
| Анықтау қашықтығы | 3–7 м |
| Жұмыс температурасы | -15-тен 70 °C-қа дейін |
| Шығыс түрі | Цифрлық |
| Қаптама | Модуль |
- Сенсор үшін дұрыс қуат көзін (5–20 В) қамтамасыз етіңіз.
- Оңтайлы анықтау қашықтығы үшін сезімталдық потенциометрін реттеңіз.
- Жүктемені тиімді басқару үшін реленің NO түйреуішін пайдаланыңыз.
- Реленің ток күшіне (макс. 10 А) мұқият болыңыз.
- Соңғы орнату алдында қозғалыс сенсорының анықтау қашықтығын тексеріңіз.
- Жоғары жүктемелер үшін релені пайдалансаңыз, жылудың таралуын ескеріңіз.
Сымдарды жалғау нұсқаулары

HC-SR501 қозғалыс сенсоры мен релені Arduino-ға қосу үшін қозғалыс сенсорының VCC түйреуішін Arduino-дағы 5V түйреуішіне қосудан бастаңыз. Содан кейін сенсордың GND түйреуішін Arduino-дағы GND түйреуіштерінің біріне қосыңыз. Қозғалыс сенсорының OUT түйреуіші Arduino-дағы 2-цифрлық түйреуішке қосылуы керек.
Реле модулі үшін VCC түйреуішін Arduino-дағы 5V түйреуішіне және GND түйреуішін жерге қосыңыз. Реленің кіріс түйреуіші (көбінесе IN немесе осыған ұқсас деп белгіленеді) Arduino-дағы 4-цифрлық түйреуішке қосылуы керек. Бұл қондырғы үшін реленің әдетте ашық (NO) күйіне орнатылғанын тексеру үшін оның бағытын тексеріңіз. Соңында, жүктемені (мысалы, айнымалы ток шамын) релеге оның сипаттамаларына сәйкес қосыңыз, қосылымдардың сенімді екеніне көз жеткізіңіз.
Код мысалдары және түсіндірме
Arduino кодында біз сенсор мен реле түйреуіштері үшін тұрақтыларды анықтаймыз. Сенсор түйреуіші SENSOR_PIN ретінде орнатылады, ол 2-цифрлық түйреуішке тағайындалады, ал реле түйреуіші RELAY_PIN ретінде орнатылады, ол 4-цифрлық түйреуішке тағайындалады. Бұл конфигурация сенсордың шығысын оқуға және релені сәйкесінше басқаруға мүмкіндік береді.
const int SENSOR_PIN = 2; // сенсордың шығысына қосылған Arduino түйреуіші
const int RELAY_PIN = 4; // релені басқаруға қосылған Arduino түйреуіші
setup() функциясында біз ақпаратты көрсету үшін сериялық мониторды инициализациялаймыз және сенсор мен реле түйреуіштері үшін түйреуіш режимдерін орнатамыз. Бұл Arduino-ға қай түйреуіштердің кіріс және шығыс екенін білуге мүмкіндік береді.
void setup() {
Serial.begin(9600); // ақпаратты көрсету үшін Serial Monitor орнату
pinMode(SENSOR_PIN, INPUT); // SENSOR_PIN-ді сенсордан кіріс ретінде анықтау
pinMode(RELAY_PIN, OUTPUT); // RELAY_PIN-ді реле үшін шығыс ретінде анықтау
}
loop() функциясында біз қозғалыс сенсорының күйін үздіксіз тексереміз. Егер қозғалыс анықталса, біз сериялық мониторға хабарлама басып шығарамыз және релені төмен деңгейге орнату арқылы қосамыз. Егер қозғалыс анықталмаса, біз басқа хабарлама басып шығарамыз және релені жоғары деңгейге орнату арқылы өшіреміз.
void loop() {
int motion = digitalRead(SENSOR_PIN); // сенсор түйреуішін оқу
if (motion) {
Serial.println("Қозғалыс анықталды");
digitalWrite(RELAY_PIN, LOW); // Релені ҚОСУ
} else {
Serial.println("===Ештеңе қозғалмайды");
digitalWrite(RELAY_PIN, HIGH); // Релені ӨШІРУ
}
delay(500);
}
Демонстрация / Не күтуге болады
Қозғалыс сенсоры қозғалысты анықтаған кезде, реле іске қосылады, бұл қосылған жүктемеге, мысалы, айнымалы ток шамына қуат ағуына мүмкіндік береді. Қозғалыс анықталған кезде шамның бірден қосылғанын көруіңіз керек. Егер сенсор ешқандай қозғалысты анықтамаса, шам өшіп қалады. Сенсордың сезімталдық параметрлері оның анықтау қашықтығына әсер ететінін ескеріңіз, сондықтан оңтайлы өнімділік үшін реттеу қажет болуы мүмкін (бейнеде 05:00).
Жиі кездесетін қателіктерге дұрыс емес сымдарды жалғау немесе реленің ток шегінен асып кету жатады, бұл істен шығуға әкелуі мүмкін. Барлық қосылымдардың сенімді екеніне көз жеткізіңіз және соңғы пайдалану алдында қондырғыны бақыланатын ортада сынап көріңіз.
Бейне уақыт белгілері
- 00:00 Бастау
- 00:35 Жабдықты түсіндіру
- 04:35 Реле қуат көрсеткіші
- 06:00 Сымдарды түсіндіру
- 07:53 Arduino коды түсіндірілді
- 09:48 Осы жобаның демонстрациясы
/*
* This Arduino code uses an HS-SR501 motion sensor and a relay
* and switches an alarm or a device using the relay when motion is detected.
* The device can be an alarm, a light, or any other device.
*
* Written by Ahmad Shamshiri on August 5, 2018, at 12:36 PM for Robojax.com
* in Ajax, Ontario, Canada
* Watch the video instruction for this code: https://youtu.be/QQ7iDagQnQM
* This code has been downloaded from Robojax.com
*/
const int SENSOR_PIN = 2;// the Arduino pin connected to the output (middle) wire of the sensor
const int RELAY_PIN = 4;// the Arduino pin which is connected to control the relay
void setup() {
Serial.begin(9600);// setup Serial Monitor to display information
Serial.println("Robojax Arduino Tutorial");
Serial.println("HC-SR501 sensor with relay");
pinMode(SENSOR_PIN, INPUT);// Define SENSOR_PIN as Input from sensor
pinMode(RELAY_PIN, OUTPUT);// Define RELAY_PIN as OUTPUT for relay
}
void loop() {
// Robojax.com HC-SR501 motion sensor tutorial August 5, 2018
int motion =digitalRead(SENSOR_PIN);// read the sensor pin and stores it in "motion" variable
// if motion is detected
if(motion){
Serial.println("Motion detected");
digitalWrite(RELAY_PIN, LOW);// Turn the relay ON
}else{
Serial.println("===Nothing moves");
digitalWrite(RELAY_PIN,HIGH);// Turn the relay OFF
}
delay(500);
// Robojax.com HC-SR501 motion sensor tutorial August 5, 2018
}
Сізге қажет болуы мүмкін нәрселер
-
Амазонка
-
eBay
-
AliExpressPurchase HC-SR501 HC-SR505 HW-MS03 motion sensor from AliExpresss.click.aliexpress.com
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Файлдар жоқ.