Katika nakala hii, tutaunganisha HC-SR04 ultrasonic rangefinder-sonar kwa Arduino.
Muhimu
- - Arduino;
- - sensorer ya ultrasonic HC-SR04;
- - kuunganisha waya.
Maagizo
Hatua ya 1
Kitendo cha HC-SR04 ultrasonic rangefinder inategemea kanuni ya echolocation. Inatoa msukumo wa sauti angani na hupokea ishara inayoonyeshwa kutoka kwa kikwazo. Umbali wa kitu huamuliwa na wakati wa uenezi wa wimbi la sauti kwa kikwazo na nyuma.
Wimbi la sauti husababishwa na kutumia mapigo mazuri ya angalau microseconds 10 kwa mguu wa TRIG wa rangefinder. Mara tu mapigo yanapoisha, mpatanishi hutoa mpigo wa sauti na masafa ya 40 kHz kwenye nafasi iliyo mbele yake. Wakati huo huo, algorithm ya kuamua wakati wa kuchelewesha kwa ishara iliyoonyeshwa imezinduliwa, na kitengo cha kimantiki kinaonekana kwenye mguu wa ECHO wa safu. Mara tu sensor inapogundua ishara iliyoonyeshwa, sifuri ya mantiki inaonekana kwenye pini ya ECHO. Muda wa ishara hii ("Echo kuchelewesha" kwenye kielelezo) huamua umbali wa kitu.
Masafa ya kipimo cha umbali wa HC-SR04 rangefinder - hadi mita 4 na azimio la cm 0.3. Angu ya uchunguzi - digrii 30, pembe inayofaa - digrii 15. Matumizi ya sasa katika hali ya kusubiri ni 2 mA, wakati wa operesheni - 15 mA.
Hatua ya 2
Ugavi wa nguvu wa upeo wa upeo wa ultrasonic unafanywa na voltage ya +5 V. Pini zingine mbili zimeunganishwa na bandari zozote za dijiti za Arduino, tutaunganisha 11 na 12.
Hatua ya 3
Sasa wacha tuandike mchoro ambao huamua umbali wa kikwazo na kuipeleka kwa bandari ya serial. Kwanza, tunaweka nambari za pini za TRIG na ECHO - hizi ni pini 12 na 11. Halafu tunatangaza kichocheo kama pato na tunaunga kama pembejeo. Tunaanzisha bandari ya serial kwa baud 9600. Katika kila marudio ya kitanzi (), tunasoma umbali na kuipeleka kwenye bandari.
Kazi ya GetEchoTiming () inazalisha kunde ya kuchochea. Inaunda tu mapigo ya microseconds 10, ambayo ni kichocheo cha kuanza kwa mionzi na safu ya pakiti ya sauti angani. Halafu anakumbuka wakati tangu mwanzo wa usambazaji wa wimbi la sauti hadi kufika kwa mwangwi.
Kazi ya GetDistance () huhesabu umbali wa kitu. Kutoka kwa kozi ya fizikia ya shule, tunakumbuka kuwa umbali ni sawa na kasi iliyozidishwa na wakati: S = V * t. Kasi ya sauti angani ni 340 m / s, wakati katika microseconds tunajua ni "duratuion". Ili kupata wakati kwa sekunde, gawanya na 1,000,000. Kwa kuwa sauti husafiri mara mbili umbali - kwenda kwa kitu na kurudi - unahitaji kugawanya umbali kwa nusu. Kwa hivyo inageuka kuwa umbali wa kitu S = 34000 cm / sec * muda / 1.000.000 sec / 2 = 1.7 cm / sec / 100, ambayo tuliandika kwenye mchoro. Mdhibiti mdogo hufanya kuzidisha haraka kuliko mgawanyiko, kwa hivyo nikabadilisha "/ 100" na sawa "* 0, 01".
Hatua ya 4
Pia, maktaba nyingi zimeandikwa kufanya kazi na upeo wa upeo wa ultrasonic. Kwa mfano, hii: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Maktaba imewekwa kwa njia ya kawaida: pakua, fungua zip kwenye saraka ya maktaba, ambayo iko kwenye folda na Arduino IDE. Baada ya hapo, maktaba inaweza kutumika.
Baada ya kusanikisha maktaba, wacha tuandike mchoro mpya. Matokeo ya kazi yake ni sawa - mfuatiliaji wa bandari ya serial huonyesha umbali wa kitu kwa sentimita. Ikiwa unaandika kuelea dist_cm = ultrasonic. Kubadilisha (INC); katika mchoro, basi umbali utaonyeshwa kwa inchi.
Hatua ya 5
Kwa hivyo, tuliunganisha HC-SR04 ultrasonic rangefinder kwa Arduino na tukapokea data kutoka kwa njia mbili tofauti: kutumia maktaba maalum na bila.
Faida ya kutumia maktaba ni kwamba idadi ya nambari imepunguzwa sana na usomaji wa programu umeboreshwa, sio lazima uchunguze ugumu wa kifaa na unaweza kuitumia mara moja. Lakini hii pia ni hasara: unaelewa vizuri jinsi kifaa kinavyofanya kazi na ni michakato gani inayofanyika ndani yake. Kwa hali yoyote, ni njia gani ya kutumia ni juu yako.