Search Code

Kutumia Sensor ya Mwendo ya HC-SR501 na Relay na Msimbo wa Arduino

Kutumia Sensor ya Mwendo ya HC-SR501 na Relay na Msimbo wa Arduino

Katika mafunzo haya, tutachunguza jinsi ya kutumia kihisi cha mwendo cha HC-SR501 pamoja na relay kudhibiti balbu ya AC au aina nyingine ya mzigo kwa kutumia Arduino. HC-SR501 ni kihisi cha mwendo cha infrared ambacho kinaweza kugundua mwendo hadi mita 7 mbali, na kuifanya kuwa bora kwa matumizi mbalimbali kama vile kengele za usalama au mifumo ya taa za kiotomatiki. Kwa kutumia kihisi hiki na relay, unaweza kuunda mradi unaowasha taa wakati mwendo unapogunduliwa.

Tutatoa mwongozo wa hatua kwa hatua kuhusu usanidi wa vifaa, maagizo ya wiring, na msimbo wa Arduino unaohitajika kufikia utendaji huu. Kwa uelewa wazi zaidi wa mchakato, hakikisha unatazama video inayohusiana (katika video saa 00:00).

Vifaa Vimeelezwa

Vipengele vya msingi katika mradi huu vinajumuisha kihisi cha mwendo cha HC-SR501, moduli ya relay, na bodi ya Arduino. Kihisi cha HC-SR501 kina pini tatu: VCC, GND, na OUT. Pini ya VCC inaunganishwa na chanzo cha nguvu (5V), pini ya GND inaunganishwa na ardhi, na pini ya OUT inatuma ishara kwa Arduino wakati mwendo unapogunduliwa.

Moduli ya relay hufanya kama swichi inayoweza kudhibiti vifaa vya voltage ya juu. Ina pini tatu kuu: COM (common), NO (kawaida wazi), na NC (kawaida imefungwa). Katika usanidi huu, tutatumia pini ya NO, ambayo inaunganisha kwenye mzigo wakati relay inapowashwa. Hii inaruhusu Arduino kudhibiti relay kulingana na ishara inayopokelewa kutoka kwa kihisi cha mwendo.

Maelezo ya Datasheet

MtengenezajiHC-SR501
Nambari ya sehemuHC-SR501
Voltage ya Logic/IO5 V
Voltage ya usambazaji5–20 V
Matumizi ya nguvu65 mA
Pembe ya kugunduadigrii 120
Umbali wa kugundua3–7 m
Joto la kufanya kazi-15 hadi 70 °C
Aina ya patoDigital
KifurushiModuli

  • Hakikisha usambazaji sahihi wa nguvu (5–20 V) kwa kihisi.
  • Rekebisha potentiometer ya unyeti kwa masafa bora ya kugundua.
  • Tumia pini ya NO ya relay kudhibiti mzigo kwa ufanisi.
  • Kuwa makini na ukadiriaji wa sasa wa relay (kiwango cha juu cha 10 A).
  • Jaribu masafa ya kugundua ya kihisi cha mwendo kabla ya usanidi wa mwisho.
  • Zingatia uharibifu wa joto ikiwa unatumia relay kwa mizigo ya juu.

Maagizo ya Wiring

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

Ili kuunganisha kihisi cha mwendo cha HC-SR501 na relay na Arduino, anza kwa kuunganisha pini ya VCC ya kihisi cha mwendo kwenye pini ya 5V kwenye Arduino. Ifuatayo, unganisha pini ya GND ya kihisi kwenye moja ya pini za GND kwenye Arduino. Pini ya OUT kutoka kwa kihisi cha mwendo inapaswa kuunganishwa kwenye pini ya digital 2 kwenye Arduino.

Kwa moduli ya relay, unganisha pini ya VCC kwenye pini ya 5V kwenye Arduino na pini ya GND kwenye ardhi. Pini ya kuingiza (mara nyingi inaitwa IN au sawa) ya relay inapaswa kuunganishwa kwenye pini ya digital 4 kwenye Arduino. Hakikisha unaangalia mwelekeo wa relay ili kuhakikisha imewekwa kuwa kawaida wazi (NO) kwa usanidi huu. Hatimaye, unganisha mzigo (kwa mfano, balbu ya AC) kwenye relay kulingana na specifikojeni za relay, kuhakikisha miunganisho ni salama.

Mifano ya Msimbo na Maelezo

Katika msimbo wa Arduino, tunafafanua viwango vya kudumu kwa pini za kihisi na relay. Pini ya kihisi imewekwa kama SENSOR_PIN, ambayo imetengwa kwa pini ya digital 2, na pini ya relay imewekwa kama RELAY_PIN, iliyotengwa kwa pini ya digital 4. Usanidi huu unaturuhusu kusoma pato la kihisi na kudhibiti relay ipasavyo.

const int SENSOR_PIN = 2; // pini ya Arduino iliyounganishwa na pato la kihisi
const int RELAY_PIN = 4; // pini ya Arduino ambayo imeunganishwa kudhibiti relay

Katika kazi ya setup(), tunaanzisha monitor ya serial kwa ajili ya debugging na kuweka modes za pini kwa pini za kihisi na relay. Hii inahakikisha Arduino inajua ni pini zipi ni za kuingiza na zipi za kutolea.

void setup() {
  Serial.begin(9600); // anzisha Serial Monitor kuonyesha taarifa
  pinMode(SENSOR_PIN, INPUT); // Weka SENSOR_PIN kama Input kutoka kihisi
  pinMode(RELAY_PIN, OUTPUT); // Weka RELAY_PIN kama OUTPUT kwa relay
}

Katika kazi ya loop(), tunaangalia hali ya kihisi cha mwendo kila wakati. Ikiwa mwendo unagunduliwa, tunachapisha ujumbe kwenye monitor ya serial na kuwasha relay kwa kuiweka kuwa low. Ikiwa hakuna mwendo unaogunduliwa, tunachapisha ujumbe tofauti na kuzima relay kwa kuiweka kuwa high.

void loop() {
  int motion = digitalRead(SENSOR_PIN); // soma pini ya kihisi
  if (motion) {
    Serial.println("Mwendo umegunduliwa");
    digitalWrite(RELAY_PIN, LOW); // Washa relay
  } else {
    Serial.println("===Hakuna kinachosonga");
    digitalWrite(RELAY_PIN, HIGH); // Zima relay
  }
  delay(500);
}

Maonyesho / Nini cha Kutarajia

Wakati kihisi cha mwendo kinapogundua harakati, relay itawashwa, ikiruhusu nguvu kupita kwenye mzigo uliounganishwa, kama vile balbu ya AC. Unapaswa kuona balbu ikiwasha mara moja baada ya kugundua mwendo. Ikiwa kihisi hakigundui harakati yoyote, balbu itabaki imezimwa. Fahamu kwamba mipangilio ya unyeti wa kihisi itaathiri masafa yake ya kugundua, kwa hivyo marekebisho yanaweza kuhitajika kwa utendaji bora (katika video saa 05:00).

Makosa ya kawaida yanajumuisha wiring isiyo sahihi au kuzidi mipaka ya sasa ya relay, ambayo inaweza kusababisha kushindwa. Hakikisha miunganisho yote ni salama na jaribu usanidi katika mazingira yaliyodhibitiwa kabla ya matumizi ya mwisho.

Vidokezo vya Muda wa Video

  • 00:00 Anza
  • 00:35 Vifaa vimeelezwa
  • 04:35 Ukadiriaji wa nguvu ya relay
  • 06:00 Uunganishaji wa waya umeelezwa
  • 07:53 Msimbo wa Arduino Umeelezwa
  • 09:48 Maonyesho ya mradi huu

Bilder

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
Språk: 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
}

Resurser och referenser

Inga resurser än.

Filer📁

Inga filer tillgängliga.