- Reikalingi komponentai:
- Grandinės schema ir paaiškinimas:
- Darbinis paaiškinimas:
- Programavimo paaiškinimas:
Saugumas visada mums kelia didelį rūpestį, o rinkoje yra daug „Hi-tech“ ir „IoT“ pagrįstų saugumo ir stebėjimo sistemų. Įsibrovėlis arba įsilaužimo signalizacija yra vienas klasikinių ir populiarių projektų tarp elektronikos studentų ir mėgėjų. Mes taip pat sukūrėme daugybę įsilaužimo signalizacijų, pagrįstų įvairiomis technologijomis:
- Apsaugos nuo lazerio grandinė lazeriu
- IR pagrįstas saugos signalizacija
- Apsaugos nuo įsilaužimo signalas naudojant PIR
- GSM apsaugos sistema
Šiandien į savo sąrašą įtraukiame dar vieną saugos signalizaciją, pagrįstą ultragarso jutikliu. Ši „ Arduino“ valdomų durų signalizacija gali būti sumontuota šalia durų, kad būtų galima aptikti, jog prie durų yra kas nors. Kai kas nors patenka į ultragarso jutiklio diapazoną, garsinis signalas pradeda pypsėti. Jutiklio aptikimo diapazoną galite reguliuoti pagal savo duris. Ši sistema taip pat gali būti naudojama judesio detektoriui.
Reikalingi komponentai:
- Bandomoji Lenta
- Ultragarsinis jutiklis
- Buzeris
- „Arduino Mega“ (bet koks modelis)
- Šuolių laidai
- USB laidas „Arduino“ arba 12v, 1A adapteriui.
Ultragarso jutiklio modulis:
Ultragarsinis jutiklis HC-SR04 čia naudojamas norint aptikti bet kurio asmens buvimą prie durų. Jutiklio modulį sudaro ultragarso siųstuvas, imtuvas ir valdymo grandinė. Ultragarsinis jutiklis susideda iš dviejų apskritų akių, iš kurių viena naudojama ultragarso bangai perduoti, kita - jai priimti.
Mes galime apskaičiuoti objekto atstumą pagal laiką, per kurį ultragarso banga grįžta atgal į jutiklį. Kadangi garso laikas ir greitis yra žinomi, atstumą galime apskaičiuoti pagal šias formules.
- Atstumas = (laikas x garso greitis) / 2
Vertė padalijama iš dviejų, nes banga eina į priekį ir atgal, įveikdama tą patį atstumą. Tačiau šiame projekte mes naudojome „ NewPing.h“ biblioteką, ir ši biblioteka rūpinasi šiuo skaičiavimu, ir mums tiesiog reikia naudoti keletą raktinių žodžių, paaiškinimas pateikiamas žemiau esančiame programavimo skyriuje.
Patikrinkite žemiau pateiktą projektą, kad pamatuotumėte bet kokio objekto atstumą ir tinkamai suprastumėte veikiantį ultragarso jutiklį:
- „Arduino“ atstumo matavimas naudojant ultragarso jutiklį
- Atstumo matavimas naudojant HC-SR04 ir AVR mikrovaldiklį
Grandinės schema ir paaiškinimas:
Šio ultragarso aliarmo grandinių jungtys yra labai paprastos. Ultragarsinio jutiklio paleidimo kaištis yra prijungtas prie kaiščio Nr. 12 „Arduino“ ir jutiklio „Echo“ kaištis yra prijungtas prie „Arduino“ kaiščio Nr. 11. Jutiklio Vcc yra prijungtas prie „Arduino“ 5 V kaiščio, o jutiklio GND - prie „Arduino“ GND. Vienas skambučio kaištis yra prijungtas prie „Arduino“ GND, o kitas - prie 8 -ojo „Arduino“ kaiščio.
Darbinis paaiškinimas:
Dirbti su šia „ Arduino“ durų signalizacija yra labai paprasta. Kai tik kas nors patenka į ultragarso jutiklio kelią / diapazoną, mikrovaldiklis nustato objekto atstumą nuo jutiklio ir, jei objektas yra nustatytame diapazone, jis siunčia aukšto signalo garsinį signalą, o garsinis signalas pradeda pypsėti.
Galite patikrinti grandinę uždėdami bet kokį dalyką priešais jutiklį diapazone, patikrinkite vaizdo įrašą. Ši ultragarso jutiklio funkcija taip pat gali būti naudojama kuriant robotą nuo kliūčių.
Programavimo paaiškinimas:
Šiame projekte mes naudojome „ NewPing.h“ biblioteką ultragarso jutikliui, kurią sukūrė Timas Eckelis. Nors mes galime naudoti ultragarso jutiklį be šios bibliotekos, kaip tai darėme ankstesniame projekte, tačiau ši biblioteka suteikia daugybę gerų ultragarso jutiklio savybių ir tampa lengva koduoti ultragarso jutiklį naudojant šią biblioteką. Naudodamiesi šia biblioteka, mes galime lengvai naudoti ultragarso jutiklio funkcijas, nerašydami per daug kodo eilučių; tai panašu į kitas bibliotekas, kurios naudojamos tvarkant sudėtingumą žemesniu lygiu.
# įtraukti
Spustelėdami šią nuorodą, galite patikrinti visas šios bibliotekos funkcijas, naudojimą ir kodų pavyzdžius. Taip pat patikrinkite oficialų šios bibliotekos „Arduino“ puslapį.
Naujausią bibliotekos leidimą galima atsisiųsti iš pirmiau pateiktos nuorodos. Be to, mes atsisiuntėme biblioteką iš žemiau pateiktos nuorodos, kuri yra modifikuota „Teensy“:
github.com/PaulStoffregen/NewPing
Pirmiausia turėtumėte išbandyti jutiklį įrašydami pavyzdinius kodus, pateiktus jo puslapyje. Savo projektui taip pat panaudojome pavyzdinius kodus ir juos modifikavome pagal durų signalizacijos projektą.
Paleidimo kaištis yra prijungtas prie „Arduino“ 12 kaiščio, o „Aido“ kaištis - prie „Arduino“ 11 kaiščio. „MAX_DISTANCE“ reiškia, kad atstumas, iki kurio jutiklis gali aptikti kliūtį, yra 500 cm arba 5 m.
#define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 500
Žemiau eilutėje nurodomas perdavimo greitis, kuriuo duomenys siunčiami į „Arduino“ nuoseklųjį prievadą iš ultragarso jutiklio.
Serijos pradžia (115200);
Kaištis Nr. 10 sukonfigūruotas kaip išvesties kaištis ir yra prijungtas prie garsinio signalo. Kitas buzerio kaištis yra prijungtas prie „Arduino“ GND.
pinMode (10, OUTPUT);
Be void echoCheck () funkcija, sonar.ping_result / US_ROUNDTRIP_CM naudojamas apskaičiuoti kliūties atstumą nuo daviklio. vėliava naudojama signalui paleisti, kai kliūtis yra 50 cm atstumu nuo ultragarso jutiklio. Šį „atstumą“ galite pakeisti pagal savo reikalavimus ar durų dydį.
if ((sonar.ping_result / US_ROUNDTRIP_CM) <50) vėliava = 1; else if ((sonar.ping_result / US_ROUNDTRIP_CM)> 50) vėliava = 0;
Kodas yra labai gerai komentuojamas NewPing.h bibliotekos autoriaus ir lengvai suprantamas. Be to, galite patikrinti patį bibliotekos puslapį, kad geriau suprastumėte jį, ir naudoti šią biblioteką sudėtingam projektui atlikti naudojant ultragarso jutiklį. Visas šio durų signalizacijos projekto kodas pateiktas žemiau.
Visų pirma ultragarso jutiklis naudojamas atstumui nuo bet kurio objekto matuoti, tačiau čia galime pamatyti, kad jis gali būti naudojamas kaip apsaugos signalas arba durų signalizacija su „Arduino“. Taip pat galime sukurti daug naudingų projektų naudodami tai: automatinis vandens lygio indikatorius ir valdiklis naudojant „Arduino“