Кодты іздеу

HC-SR501 қозғалыс сенсорын реле және Arduino кодымен пайдалану

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 А) мұқият болыңыз.
  • Соңғы орнату алдында қозғалыс сенсорының анықтау қашықтығын тексеріңіз.
  • Жоғары жүктемелер үшін релені пайдалансаңыз, жылудың таралуын ескеріңіз.

Сымдарды жалғау нұсқаулары

Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor

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 Осы жобаның демонстрациясы

Суреттер

HC-SR501 back
HC-SR501 back
HC-SR501 module
HC-SR501 module
Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor
141-Arduino source code for an HC-SR501 motion sensor to control an AC bulb or load
Тіл: C++
/*
 * 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
}

Сізге қажет болуы мүмкін нәрселер

Ресурстар мен сілтемелер

Әлі ресурстар жоқ.

Файлдар📁

Файлдар жоқ.