Šiame straipsnyje mes prijungsime ultragarso nuotolio ieškiklį-sonarą HC-SR04 prie „Arduino“.
Būtinas
- - Arduino;
- - ultragarso jutiklis HC-SR04;
- - jungiamieji laidai.
Nurodymai
1 žingsnis
HC-SR04 ultragarso nuotolio ieškiklis veikia pagal echolokacijos principą. Jis skleidžia garso impulsus į kosmosą ir gauna signalą, atsispindintį nuo kliūties. Atstumą iki objekto lemia garso bangos sklidimo laikas iki kliūties ir nugaros.
Garso banga suveikia taikant teigiamą mažiausiai 10 mikrosekundžių impulsą į nuotolio ieškiklio TRIG koją. Kai tik impulsas baigiasi, nuotolio ieškiklis į priekį esančią erdvę skleidžia 40 kHz dažnio garso impulsų pliūpsnį. Tuo pačiu metu paleidžiamas atspindėto signalo delsos laiko nustatymo algoritmas, o atstumo ieškiklio ECHO kojoje pasirodo loginis vienetas. Kai tik jutiklis aptinka atspindėtą signalą, ant ECHO kaiščio atsiranda loginis nulis. Šio signalo trukmė (paveiksle „Echo delay“) nustato atstumą iki objekto.
HC-SR04 nuotolinio matuoklio atstumo matavimo diapazonas - iki 4 metrų, kai skiriamoji geba yra 0,3 cm. Stebėjimo kampas - 30 laipsnių, efektyvusis kampas - 15 laipsnių. Srovės sąnaudos budėjimo režime yra 2 mA, veikiant - 15 mA.
2 žingsnis
Ultragarso nuotolio ieškiklio maitinimas atliekamas esant +5 V įtampai. Kiti du kaiščiai yra prijungti prie bet kokių „Arduino“skaitmeninių prievadų, mes prisijungsime prie 11 ir 12.
3 žingsnis
Dabar parašykime eskizą, kuris nustato atstumą iki kliūties ir išleidžia jį į nuoseklųjį prievadą. Pirmiausia nustatome TRIG ir ECHO kaiščių numerius - tai 12 ir 11 kaiščiai. Tada mes paskelbiame, kad trigeris yra išėjimas, o aidas - kaip įvestis. Inicializuojame nuoseklųjį prievadą 9600 baudu. Kiekvieną kartą kartojant kilpą (), mes nuskaitome atstumą ir išvedame jį į prievadą.
„GetEchoTiming“) funkcija sukuria trigerio impulsą. Tai tiesiog sukuria 10 mikrosekundžių impulso srovę, kuri yra radijo pradžios priežastis, kurią sukelia garso paketo nuotolio ieškiklis į kosmosą. Tada ji prisimena laiką nuo garso bangos perdavimo pradžios iki aido atėjimo.
„GetDistance“() funkcija apskaičiuoja atstumą iki objekto. Iš mokyklos fizikos kurso prisimename, kad atstumas lygus greičiui, padaugintam iš laiko: S = V * t. Garso greitis ore yra 340 m / s, mums žinomas laikas mikrosekundėmis yra „duratuion“. Norėdami gauti laiką sekundėmis, padalykite iš 1 000 000. Kadangi garsas nueina dvigubą atstumą - iki objekto ir atgal - atstumą reikia padalyti per pusę. Taigi paaiškėja, kad atstumas iki objekto S = 34000 cm / sek * trukmė / 1 000 000 sek / 2 = 1,7 cm / sek / 100, kurį parašėme eskize. Mikrovaldiklis dauginimą atlieka greičiau nei dalijimas, todėl „/ 100“pakeičiau ekvivalentu „* 0, 01“.
4 žingsnis
Be to, daugelis bibliotekų buvo parašytos dirbti su ultragarso nuotolio ieškikliu. Pavyzdžiui, šis: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Biblioteka įdiegta standartiniu būdu: atsisiųskite, išpakuokite bibliotekų katalogą, kuris yra aplanke su „Arduino IDE“. Po to biblioteka gali būti naudojama.
Įdiegę biblioteką, parašykime naują eskizą. Jo darbo rezultatas yra tas pats - nuoseklaus prievado monitorius atstumą iki objekto parodo centimetrais. Jei eskize parašysite plūdę dist_cm = ultragarsinis. Diapazonas (INC); tada atstumas bus rodomas coliais.
5 žingsnis
Taigi, prijungėme ultragarso nuotolio ieškiklį HC-SR04 prie „Arduino“ir gavome iš jo duomenis dviem skirtingais būdais: naudodamiesi specialia biblioteka ir be jos.
Bibliotekos naudojimo pranašumas yra tas, kad žymiai sumažėja kodo kiekis ir pagerėja programos įskaitomumas, jums nereikia gilintis į įrenginio subtilybes ir galite iš karto juo naudotis. Bet tai yra ir trūkumas: jūs mažiau suprantate, kaip veikia įrenginys ir kokie procesai jame vyksta. Bet kokiu atveju, kurį metodą naudoti, priklauso tik nuo jūsų.