Hľadať kód

Arduino kód a video pre modul pohybového senzora HC-SR505 s relé

Arduino kód a video pre modul pohybového senzora HC-SR505 s relé

V tomto návode si postavíme systém detekcie pohybu pomocou pohybového senzora HC-SR505 a reléového modulu. Toto zapojenie vám umožní zapínať zariadenia, ako sú svetlá alebo bzučiaky, keď sa zistí pohyb. Relé funguje ako spínač na bezpečné ovládanie zariadení s vysokým napätím. Na konci tejto príručky budete mať funkčné zapojenie senzora pohybu, ktoré dokáže aktivovať rôzne spotrebiče na základe detekcie pohybu. Pre lepšie pochopenie si pozrite príslušné video (vo videu v čase 0:00).

HC-SR505 motion sensor

Vysvetlenie hardvéru

Hlavné komponenty tohto projektu zahŕňajú pohybový senzor HC-SR505, reléový modul a dosku Arduino. HC-SR505 je pasívny infračervený (PIR) senzor, ktorý detekuje pohyb snímaním zmien infračerveného žiarenia. Funguje tak, že meria teplo vyžarované objektmi v jeho zornom poli. Keď sa zistí pohybujúci sa objekt, senzor pošle signál do Arduina.

Reléový modul sa používa na ovládanie zariadenia s vysokým napätím, ako je žiarovka. Funguje ako elektricky ovládaný spínač, ktorý umožňuje Arduinu bezpečne zapínať alebo vypínať zariadenie. Relé má dve hlavné konfigurácie: spínací kontakt (NO) a rozpínací kontakt (NC), ktoré určujú predvolený stav, keď relé nie je aktivované.

Podrobnosti z katalógového listu

VýrobcaHC-SR505
Označenie dieluHC-SR505
Logické/IO napätie3,3V - 20V
Napájacie napätie5V
Výstupný prúd (na kanál)20 mA
Špičkový prúd (na kanál)100 mA
Odporúčanie pre PWM frekvenciuN/A
Logické prahové hodnoty vstupu0,3V (nízka) / 2,5V (vysoká)
Pokles napätia / RDS(on) / saturácia0,2V
Tepelné limity+70 °C
PuzdroModul
Poznámky / variantyMalé rozmery; nízka spotreba energie

  • Zabezpečte správny odvod tepla pre záťaže s vysokým prúdom.
  • Použite oddeľovacie kondenzátory pre stabilné napájanie.
  • Buďte opatrní pri pripájaní vysokého napätia; zaistite bezpečnosť.
  • Otestujte senzor s jednoduchými výstupmi pred pripojením k relé.
  • Skontrolujte orientáciu PIR senzora pre optimálnu detekciu.

Pokyny na zapojenie

Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor

Na zapojenie pohybového senzora HC-SR505 najprv pripojte napájací pin (označený ako +) na 5V výstup na vašom Arduine. Potom pripojte uzemňovací pin (označený ako -) na jeden z uzemňovacích pinov Arduina. Signálny pin (stredný pin) by mal byť pripojený na digitálny pin 2 na Arduine.

Pre reléový modul pripojte pin VCC na 5V výstup na Arduine a uzemňovací pin na uzemnenie Arduina. Vstupný pin relé by mal byť pripojený na digitálny pin 9 na Arduine. Nakoniec pripojte kladný pól bzučiaka na digitálny pin 8 a jeho záporný pól na uzemnenie. Uistite sa, že ste správne pripojili spoločný a spínací kontakt relé na ovládanie vášho zariadenia.

Príklady kódu a vysvetlenie

Kód pre tento projekt inicializuje piny pre senzor, bzučiak a relé. Používa funkciu digitalRead() na kontrolu pohybu a primerane reaguje. Nižšie je ukážka z funkcie setup:


void setup() {
  Serial.begin(9600); // nastavenie sériového monitora
  pinMode(PIR, INPUT_PULLUP); // definovanie pinu ako vstup pre senzor
  pinMode(BUZZER, OUTPUT); // definovanie pinu ako výstup pre bzučiak
  pinMode(RELAY, OUTPUT); // definovanie pinu ako výstup pre relé
}

V tejto ukážke sú piny nastavené buď na vstupný alebo výstupný režim. Serial.begin(9600) inicializuje sériovú komunikáciu na ladenie.

Hlavná slučka kontroluje pohyb a aktivuje bzučiak a relé, keď sa zistí pohyb. Tu je zameraná ukážka z funkcie loop:

Wirig relay module to AC load

void loop() {
  int motion = digitalRead(PIR); // čítanie senzora
  if(motion) {
    Serial.println("Pohyb zistený");
    digitalWrite(BUZZER, HIGH); // zapnutie bzučiaka
    digitalWrite(RELAY, LOW); // zapnutie relé
  } else {
    Serial.println("===nič sa nehýbe");
    digitalWrite(BUZZER, LOW); // vypnutie bzučiaka
    digitalWrite(RELAY, HIGH); // vypnutie relé
  }
  delay(500);
}

Táto ukážka číta stav PIR senzora a aktivuje alebo deaktivuje bzučiak a relé na základe zisteného pohybu. Oneskorenie 500 milisekúnd zabezpečuje, že slučka kontroluje senzor v primeranom intervale.

Demonštrácia / Čo očakávať

Keď sa zistí pohyb, svetlo pripojené k relé sa zapne a bzučiak zaznie. Ak sa nezistí žiadny pohyb, relé vypne svetlo a bzučiak bude tichý. Upozorňujeme, že HC-SR505 má vstavané oneskorenie, ktoré udržiava výstup aktívny krátky čas po zistení pohybu (až 8 sekúnd), ktoré nie je možné nastaviť (vo videu v čase 5:30).

Časové značky videa

  • 00:00 – Úvod do projektu
  • 01:30 – Vysvetlenie komponentov
  • 03:15 – Pokyny na zapojenie
  • 05:30 – Vysvetlenie kódu
  • 07:00 – Demonštrácia zapojenia

Obrázky

Wirig relay module to AC load
Wirig relay module to AC load
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
HC-SR505 motion sensor
Arduino wiring for  HC-SR505 motion sensor
Arduino wiring for HC-SR505 motion sensor
74-This is the Arduino code for the HC-SR505 motion sensor (small) with relay.
Jazyk: C++
/*
 * This is the Arduino code for HC-SR501 Motion Sensor
 * to detect motion of human or objects using Arduino for robotic car and other applications
 * Watch HC-SR505 video https://youtu.be/qhThpxiXubI
 * 
// Written by Ahmad S. for Robojax.com on 
// February 10, 2018 at 11:41 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.
 * 
 */


#define PIR 2 // define pin 2 for sensor
#define BUZZER 8 // define pin 8 as for buzzer
#define RELAY 9 // define pin 9 as for relay

void setup() {
  // HC-SR505 Motion Sensor Code by Robojax.com 20180210
  Serial.begin(9600);// setup Serial Monitor to display information
  pinMode(PIR, INPUT_PULLUP);// define pin as Input sensor
  pinMode(BUZZER, OUTPUT);// define pin as OUTPUT for buzzer or LED
  pinMode(RELAY, OUTPUT);// define pin as OUTPUT for relay
}

void loop() {
  // HC-SR505 Motion Sensor Code by Robojax.com 20180210
  int motion =digitalRead(PIR);// read the sensor 
  if(motion){
    Serial.println("Motion detected");
    digitalWrite(BUZZER,HIGH);// turn the buzzer ON
    digitalWrite(RELAY,LOW);// turn the relay ON
  }else{
     Serial.println("===nothing moves");
     digitalWrite(BUZZER,LOW);// keep the buzzer OFF
     digitalWrite(RELAY,HIGH);// turn the relay OFF
  }
  delay(500);
 // HC-SR505 Motion Sensor Code by Robojax.com 20180210
}

Veci, ktoré by ste mohli potrebovať

Zdroje a referencie

Zatiaľ žiadne zdroje.

Súbory📁

Datasheet (pdf)

Súbor Fritzing