Če želite svoje DIY Arduino projekte opremiti s sposobnostjo zaznavanja bližine ali gibanja in na podlagi tega narediti nekakšno dejanje, na primer registracijo dogodka, vklop luči, sprožitev alarma, vklopite enosmerni motoritd, potem bi morali spoznajte senzor HC-SR501.
ta senzor uporablja IR, kot druge vrste podobnih senzorjev, in v tem priročniku bom poskusil razložiti vse, kar morate vedeti, da ga začnete uporabljati od začetka. Od njegovih funkcij do tega, kako integrirati HC-SR501 z svojo značko Arduino UNO. Vse na bolj praktičen način, da bo čim bolj preprosto.
Kaj je HC-SR501 in načelo dela
El HC-SR501 je neke vrste senzor gibanja, PIR senzor, sestavljen iz dveh ločenih elementov. Po eni strani ima napravo, ki oddaja diferencialni signal med seboj in drugimi senzorji, ki bodo dejansko aktivirali alarmni signal.
To dosežemo z a integrirano vezje BISS0001, ki vsebuje operacijske ojačevalnike in dodatne elektronske vmesnike. Poleg tega modul omogoča dve prilagoditvi svojih funkcij, ena je za občutljivost razdalje zaznavanja PIR z nekaterimi potenciometri. Druga značilnost je možnost samodejnega zaznavanja svetlobe, čeprav tovarniško ni omogočena.
Ta zadnja funkcija se pogosto uporablja nekateri sistemi tako da prižgejo luč sistema, ko zaznajo gibanje, vendar osvetlitev okolice ni velika, torej ko je noč.
V primeru HC-SR501 ima območje zaznavanja gibanja z obsegom 3 do 7 metrov stran, in PIR odprtine do 90 in 110º. To je dober obseg, ki omogoča njegovo namestitev tam, kjer ga potrebujete, na primer stena, strop, tla itd.
Kot lahko vidite, je senzor PIR pokrit z nekakšno belo kupolo, to je tisto, kar je znano kot Fresnelova leča. Imenovan je po francoskem izumitelju in fiziku Augustinu-Jeanu Fresnelu. Zahvaljujoč njej je mogoče izdelati leče z veliko zaslonko in kratko goriščno razdaljo brez teže in glavnine materiala, ki bi ga morali uporabiti z običajnimi lečami.
In to zahvaljujoč zasnovi tega leča, izumljena leta 1822, nato pa sledi površinski vzorec, ki ga vidite na sliki, podobno kot žoga za golf. Zahvaljujoč tej zasnovi je bila izvedena množica naprav, vključno s HC-SR501.
Značilnosti HC-SR501
El IR-modul HC-SR501 je poceni senzor, majhna in z eno najnaprednejših tehnologij vseh trenutnih senzorjev gibanja. Z dvema potenciometroma in integriranim mostičkom lahko njegove parametre enostavno spremenite, tako da jih prilagodite vsem potrebam glede občutljivosti in razdalje ter celo vklopu in odzivnemu času.
The Tehnične specifikacije tega HC-SR501 so:
- Sestavljen je iz PIR LH1778 in krmilnika BISS0001
- Napajalna napetost: 5 do 12v
- Poraba energije: <1 mA
- Razdalja razdalje: 3 do 7 m nastavljiva
- Kot zaznavanja: 110º
- Nastavitve: z 2 potenciometroma za območje zaznavanja in čas aktivnega alarma. Mostiček dodaja možnost konfiguriranja izhoda alarma v načinu posnetka z enim samim strežnikom ali ponavljajočem se ali sprožilnem načinu Izhod alarma lahko nastavite za čas med 3 sekundami in 5 minutami.
- 1 (na sliki): obrnite se v desno, kot je na sliki, da nastavite od 3 sekunde do 5 minut.
- 2 (na sliki): zavijte levo, kot je na sliki, da nastavite razdaljo od 3 metrov do največ 7 metrov.
- 3 (na sliki): mostiček za konfiguracijo sprožilca. Ko je mostiček vstavljen v dva najbolj zunanja zatiča, prikazana na tej sliki, bo konfiguriran kot en posnetek. In če je v dveh najbolj notranjih, se aktivira ponavljajoči se način. To pomeni, da obstajajo 1 zatiči, če je na zunanji strani, srednji pa je mono funkcija, in če je na osrednjem zatiču in tisti na notranji strani PCB, bo to ponavljajoči se.
- Čas inicializacije: po zagonu modula HC-SR501 mora preteči vsaj 1 minuta, preden začne delovati.
- Delovna temperatura: -15 ° C in + 70 ° C
- Más información: glej pinout in podatkovni list
Upoštevajte, da ti pasivni senzorji Idealne so za vaše projekte, zagnale se bodo le, če bodo zaznale bližino, medtem ko bodo ostale pasivne. In to lahko dobite zelo enostavno, saj ima HC-SR501 preprost pinout:
- Vcc dati moč.
- GND za povezavo z zemljo.
- Izhod za izhod senzorja.
Kar se tiče dva trimerja ki sem jih že citiral, jih je mogoče prilagoditi, kot sem že rekel. Nisem pojasnil načinov streljanja s skakalcem:
- H (ponovna aktivacija): Izhod ostane visok, ko se sproži senzor, to pomeni, da ohranja visoko napetost, ko zazna gibanje ali bližino, in to večkrat. Ko senzor ne deluje, se bo znižal.
- L (normalno): izhod se ob aktiviranju poveča od nizke do visoke. Rezultat neprekinjenega gibanja je ponavljajoč se visoko-nizki impulz.
aplikacije
PIR temelji na nizkofrekvenčnem sevanju infrardečega tipa. Bolj ko je predmet bolj vroč, več IR oddaja. Na tem temelji ta tip senzorja, saj ljudje, predmeti in živali oddajajo toploto in z njim je mogoče izmeriti, ali so blizu.
S tem preprostim sistemom se lahko izvede Od vrat, ki se samodejno odprejo, tekočih stopnic, ki se zaženejo, ko zaznajo bližino, alarmov, ki se aktivirajo, ko zaznajo prisotnost, luči, ki zasvetijo, ko zaznajo vašo prisotnost itd. Število prijav je zelo veliko ...
To je v kombinaciji z Arduinom in številnimi drugimi napravami, kot je povezovalni modul, mogoče poslati Internetna opozorilain še razširiti zmogljivosti z oddaljeno sprožitvijo dejavnosti za zaznavanje prisotnosti. Sklicujem se na Modul ESP8266-01 ali podobno ...
Drug priporočilo es uporabite rele za aktiviranje elementov z višjo napetostjo, kot so motor vrat, žarnica itd.
Integracija HC-SR501 z Arduino
za jo integrirajte s svojo ploščo Arduino IDE, Za več informacij si lahko ogledate naš tečaj programiranja. Vendar pa vam pokažem preprosto skico, s katero lahko začnete videti, kako se uporablja na osnovni način, in po malem lahko spremenite začetno kodo in dodate elemente v svoj projekt, da bo popolnoma deloval.
El primer izvorne kode bi bilo tako:
//Ejemplo básico con el HC-SR501 byte sensorpir 8; //Pin del salida del sensor que está como salida. byte led=13; //Puedes conectar un LED en el 13 para ver el efecto visual cuando se activa al detectar presencia void setup() { pinMode(sensorpir, INPUT); //Declaramos pines E/S pinMode(led, OUTPUT); Serial.begin(9600); //Configuramos la velocidad del monitor serial } void loop) { if(digitalRead(sensorpir)== HIGH) { Serial.println("Movimiento detectado"); digitalWrite(led, HIGH); delay(1000); digitalWrite(led , LOW); } }