Pretraži kod

Arduino kod i video za HC-SR501 senzor pokreta

Arduino kod i video za HC-SR501 senzor pokreta

U ovom tutorijalu ćemo istražiti HC-SR501 senzor pokreta, koji je dizajniran za detekciju pokreta putem infracrvene tehnologije. Senzor može pokrenuti izlaz, omogućavajući vam da kontrolišete uređaje poput LED dioda ili alarma na osnovu detekcije pokreta. Do kraja ovog tutorijala, imat ćete jasno razumijevanje kako povezati senzor i implementirati Arduino kod kako bi funkcionirao efikasno. (u videu na 00:45)

Objašnjenje hardvera

HC-SR501 senzor pokreta je kompaktni modul dimenzija 32 puta 24 milimetra, sposoban za rad u rasponu napona od 5 do 20 volti. U njegovoj srži je LHI 778 infracrveni senzor, koji detektuje pokret osjećajući promjene u infracrvenom zračenju. To ga čini pogodnim za različite primjene, uključujući sigurnosne sisteme i robotske projekte.

Ovaj modul ima tri glavna pina: VCC za napajanje, GND za uzemljenje i OUT za izlazni signal. Kada se pokret detektuje, OUT pin šalje visoki signal (3.3 volta TTL), koji se može koristiti za pokretanje alarma ili drugih uređaja. Senzor također uključuje podesive postavke osjetljivosti i vremenskog kašnjenja, omogućavajući vam da prilagodite njegov rad prema vašim specifičnim potrebama.

Detalji iz tehničke dokumentacije

ProizvođačHC-SR501
Broj dijelaHC-SR501
Logički/IO napon3.3 V
Napon napajanja5–20 V
Izlazna struja (po kanalu)≤ 20 mA
Maksimalna struja (po kanalu)≤ 50 mA
PWM frekvencija smjerniceNije primjenjivo
Ulazni logički pragovi0.8 V (LOW), 2.0 V (HIGH)
Pad napona / RDS(on) / zasićenje0.1 V
Toplotna ograničenja0°C do 70°C
PakovanjeModul
Napomene / varijantePodesiva osjetljivost i vremensko kašnjenje

  • Osigurajte ispravan napon napajanja (5-20 V).
  • Koristite otpornik serijski sa LED diodama za ograničenje struje.
  • Podesite potenciometar osjetljivosti za domet detekcije.
  • Postavite vremensko kašnjenje za kontrolu koliko dugo izlaz ostaje visok.
  • Budite oprezni s plutajućim ulazima; koristite pull-up ili pull-down otpornike po potrebi.

Upute za povezivanje

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

Za povezivanje HC-SR501 senzora pokreta, počnite spajanjem VCC pina na 5V izlaz na Arduinu. Zatim spojite GND pin na uzemljenje (GND) na Arduinu. OUT pin treba spojiti na digitalni pin 2 na Arduinu, koji će čitati signal detekcije pokreta.

Ako koristite LED diodu za vizuelnu povratnu informaciju, spojite anodu (dugi pin) LED diode na digitalni pin 8 na Arduinu. Katoda (kratki pin) treba biti spojena na jedan terminal otpornika od 680 oma, s drugim terminalom otpornika spojenim na uzemljenje. Ova postavka omogućava Arduinu da kontroliše LED diodu na osnovu detekcije pokreta.

Primjeri koda i objašnjenje

Arduino kod za ovu postavku inicijalizira serijski monitor i konfiguriše ulazne i izlazne pinove. Ključni identifikatori u kodu uključuju motion, koji pohranjuje stanje senzora pokreta, i digitalne pinove koji se koriste za čitanje ulaza i kontrolu LED diode.

void setup() {
  Serial.begin(9600);// postavljanje serijskog monitora za prikaz informacija
  pinMode(2, INPUT);// Ulaz sa senzora
  pinMode(8, OUTPUT);// IZLAZ na alarm ili LED diodu
}

U ovom izvatku, funkcija setup() inicijalizira serijsku komunikaciju i postavlja načine rada pinova za senzor i LED diodu. Pin 2 je postavljen kao ulaz za čitanje izlaza senzora pokreta, dok je pin 8 postavljen kao izlaz za kontrolu LED diode.

void loop() {
  int motion = digitalRead(2);
  if(motion){
    Serial.println("Pokret detektovan");
    digitalWrite(8, HIGH);
  }else{
    Serial.println("===ništa se ne kreće");
    digitalWrite(8, LOW);
  }
  delay(500);
}

Ovaj isječak koda predstavlja glavnu petlju u kojoj program kontinuirano provjerava stanje senzora pokreta. Ako se pokret detektuje, ispisuje "Pokret detektovan" na serijski monitor i uključuje LED diodu. Ako se pokret ne detektuje, ispisuje "===ništa se ne kreće" i isključuje LED diodu.

Demonstracija / Šta očekivati

Kada je postavka završena i kod je uploadan na Arduino, trebali biste očekivati da se LED dioda upali kada HC-SR501 senzor detektuje pokret. Dodatno, serijski monitor će prikazivati poruke koje ukazuju da li je pokret detektovan ili ne. Ako podesite postavke osjetljivosti i vremenskog kašnjenja na senzoru, možete primijetiti promjene u tome koliko brzo senzor reaguje na pokret (u videu na 05:30).

Uobičajene zamke uključuju pogrešno povezivanje, poput obrnutih veza za VCC i GND, što bi moglo oštetiti senzor. Osigurajte da je izlazni pin senzora ispravno spojen na predviđeni ulazni pin na Arduinu kako biste izbjegli plutajuće ulaze.

Vremenske oznake videa

  • 00:00 Uvod
  • 00:45 Pregled hardvera
  • 02:30 Upute za povezivanje
  • 04:00 Objašnjenje koda
  • 05:30 Demonstracija

Slike

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
48-This is the Arduino code for the HC-SR501 motion sensor.
Jezik: C++
/*
 * 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);

}

Resursi i reference

Još nema resursa.

Datoteke📁

Ostale datoteke