HC-SR04. Ամեն ինչ ուլտրաձայնային սենսորի մասին

HC-SR04 ցուցիչ

Երբեմն դա անհրաժեշտ է Չափել հեռավորությունները և դրա համար ձեր տրամադրության տակ կան մի քանի սենսորներ, Մենք արդեն հոդված ենք նվիրել ՝ խոսելու ա բարձր ճշգրտության հեռավորության սենսոր, ինչպիսին է VL52L0X, Այս սենսորը ToF տիպի էր և հիմնված էր շատ ճշգրիտ չափումների ՝ իր լազերի շնորհիվ: Բայց եթե ճշգրտությունն այնքան էլ կարևոր չէ ձեզ համար, և դուք ցանկանում եք մի բան, որը թույլ կտա ձեզ հեռավորությունը չափել ցածր գնով, ապա մեկ այլ հնարավորություն, որ ձեր ձեռքին կա HC-SR04- ը.

Այն դեպքում, HC-SR04 հեռավորության սենսոր, հեռավորությունը չափվում է ուլտրաձայնային եղանակով, Համակարգը նման է VL52L0X- ի օպտիկական մեթոդին: Այսինքն ՝ արտանետվում է, կա ցատկում և ստացվում է, բայց այս դեպքում լազեր կամ IR լինելու փոխարեն ՝ ուլտրաձայնային է: Եթե ​​դուք կրքոտ եք էլեկտրոնիկայի, ռոբոտաշինության կամ սիրողական արտադրողի նկատմամբ, այն կարող եք օգտագործել DIY- ի բազմաթիվ նախագծերի համար, ինչպիսիք են ռոբոտների խոչընդոտների հայտնաբերման համակարգերը, ներկայության տվիչները և այլն:

Ի՞նչ է HC-SR04- ը:

Դե, դա ակնհայտ է, քանի որ ես արդեն մեկնաբանել եմ նախորդ պարբերություններում, HC-SR04- ը ցածր ճշգրտության հեռավորության սենսոր է, որը հիմնված է ուլտրաձայնի վրա, Դրանով այն թույլ է տալիս չափել հեռավորությունները պարզ և արագ եղանակով, չնայած սկզբունքորեն այն սովորաբար չի օգտագործվում դրա համար: Շատ հաճախ այն օգտագործվում է որպես փոխարկիչ `խոչընդոտները հայտնաբերելու և դրանցից խուսափելու համար` սենսորի պատասխանի հետ կապված այլ մեխանիզմների միջոցով:

Արտաքին տեսքը HC-SR04– ը շատ տարբերակիչ է և հեշտությամբ ճանաչելի, Բացի այդ, այն Arduino- ի մեկնարկային հավաքածուներում շատ տարածված իր է և անհրաժեշտ է բազմաթիվ նախագծերի համար: Այն հեշտությամբ նույնացվում է, քանի որ այն ունի երկու «աչք», որոնք իրականում ուլտրաձայնային սարքեր են, որոնք ինտեգրվում են այս մոդուլի: Նրանցից մեկը ուլտրաձայնային արտանետիչ է, իսկ մյուսը `ընդունիչ: Այն աշխատում է 40 Khz հաճախականությամբ, ուստի այն անլսելի է մարդկանց համար:

Ուլտրաձայնային սենսորի սկզբունքները

Սկզբունքը, որում Այն հիմնված է այն մոդելավորման վրա, որն օգտագործվում է այն ժամանակ, երբ դուք քար եք նետում ջրհորի մեջ ՝ դրա խորությունը չափելու համար, Դուք նետում եք քարն ու ժամանակը, թե որքան ժամանակ է պետք, որ ընկնի հատակը: Դրանից հետո դուք կատարում եք արագության հաշվարկներ անցած ժամանակի համար և ստանում եք քարի անցած հեռավորությունը: Բայց այդ դեպքում սենսորը դու ես:

Առնչվող հոդված.
ESP8266. Arduino- ի WIFI մոդուլը

HC-SR04- ում արտանետողը ուլտրաձայնային կլինի, և երբ նրանք ցատկեն օբյեկտի կամ խոչընդոտի վրա, որը խանգարում է, դրանք կգրավվեն ստացողի կողմից: Ի շղթան կկատարի անհրաժեշտ հաշվարկները այդ արձագանքի համար `հեռավորությունը որոշելու համար: Սա կարող է նաև ձեզ ծանոթ լինել, եթե գիտեք այն համակարգը, որով որոշ կենդանիներ, ինչպիսիք են դելֆինները, կետերը կամ չղջիկները, օգտագործում են խոչընդոտները, որսը և այլն գտնելու համար:

Countարկերակն ուղարկելու պահից մինչ պատասխանը ստանալու պահը հաշվելով ժամանակը կարող է ճշգրիտ որոշվել ժամանակը և, հետեւաբար, հեռավորությունը: Հիշեք, որ [Space = արագության ժամանակ] բայց HC-SR04- ի դեպքում դուք պետք է այս քանակը բաժանեք / 2-ի, քանի որ չափվել է ժամանակը, երբ ուլտրաձայնը դուրս է եկել և տարածության միջով անցնում է մինչև այն հարվածի խոչընդոտին և հետադարձ ճանապարհին, այնպես որ դա կլինի մոտավորապես սրա կեսը ...

Pinout և տվյալների թերթեր

Դուք արդեն գիտեք, որ ձեր ձեռք բերած մոդելի ամբողջական տվյալները տեսնելու համար ամենալավն այն է գտնել տվյալների թերթը արտադրողի բետոն: Օրինակ, ահա ա Sparkfun տվյալների թերթ, բայց PDF- ում առկա են շատ ավելին: Այնուամենայնիվ, ահա HC-SR04- ի ամենակարևոր տեխնիկական տվյալները.

  • Ծխելը4 սնուցման աղբյուր (Vcc), ձգան (Trigger), ընդունիչ (Echo) և գրունտ (GND): Ձգանը ցույց է տալիս, թե երբ պետք է ակտիվացվի սենսորը (երբ ուլտրաձայնը գործարկվի), և այդպիսով հնարավոր կլինի իմանալ ստացողի ազդանշանը ստանալու ժամանակի անցած ժամանակը:
  • կերակրման: 5 վ
  • Ուլտրաձայնային հաճախականություն40 ԿՀց, մարդու ականջը կարող է լսել միայն 20 Հց-ից մինչև 20 ԿՀց: 20Hz- ից ցածր (ինֆրաձայնային) և 20Khz- ից բարձր (ուլտրաձայնային) տակ գտնվող ամեն ինչ ընկալելի չի լինի:
  • Սպառում (սպասում): <2mA
  • Սպառումն աշխատում է: 15 մԱ
  • Արդյունավետ անկյուն՝ <15º, կախված օբյեկտների անկյուններից, կարող եք ունենալ ավելի լավ կամ ավելի վատ արդյունքներ:
  • Չափված հեռավորություն՝ 2 սմ-ից 400 սմ, չնայած 250 սմ-ից թույլատրելիությունը շատ լավ չի լինի:
  • Միջին լուծաչափ0.3 սմ փոփոխություն իրական հեռավորության և չափման միջև, այնպես որ չնայած լազերի նման խիստ ճշգրիտ չի համարվում, չափումները բավականին ընդունելի են կիրառական ծրագրերի մեծ մասի համար:
  • գին՝ մոտ 0,65 եվրոյից

Ինտեգրում Arduino- ի հետ

HC-SR04 Arduino- ի հետ

դեպի Այն Arduino- ին միացնելը չէր կարող ավելի հեշտ լինել, Դուք պարզապես պետք է պատասխանատու լինեք, որ GND- ն միացնեք ձեր Arduino- ի `որպես այդպիսին նշված համապատասխան արդյունքին` Vcc- ն Arduino 5v էլեկտրամատակարարմամբ և HC-SR04- ի մյուս երկու կապիչներով `ձեր նախագծի համար ընտրված մուտքերով / ելքերով: Դուք կարող եք տեսնել, որ դա պարզ է վերին Ֆրիտցինգի սխեմայում ...

Պարզապես պետք է հաշվի առնել, որ կոճղը պետք է ստանա առնվազն 10 միկրովայրկյան էլեկտրական զարկերակ, որպեսզի այն պատշաճ կերպով ակտիվանա: Նախկինում դուք պետք է համոզվեք, որ այն ցածր է:

Ինչ վերաբերում է ծածկագիր Arduino IDE- ի համար, Դուք այլևս չպետք է որևէ գրադարան կամ նմանատիպ այլ բաներ օգտագործեք, ինչպես մյուս բաղադրիչները: Ուղղակի կազմեք բանաձևը `հեռավորությունը և քիչ բան հաշվարկելու համար ... Իհարկե, եթե ուզում եք, որ ձեր նախագիծը ինչ-որ բան անի` ի պատասխան HC-SR04 սենսորի չափման, դուք ստիպված կլինեք ավելացնել ձեր համար անհրաժեշտ ծածկագիրը: Օրինակ ՝ վահանակի վրա չափումները պարզապես ցուցադրելու փոխարեն, կարող եք ստիպել, որ սերվոմոտորները որոշակի հեռավորությունների վրա շարժվեն այս կամ այն ​​ուղղությամբ, որպեսզի խոչընդոտ չլինի, կամ շարժիչը կանգնի, ահազանգը գործարկվի, երբ հայտնաբերում է մոտիկությունը և այլն: ,

 Լրացուցիչ տեղեկություններ ծրագրավորման մասին. Arduino ձեռնարկ (անվճար PDF)

Օրինակ, սա կարող եք տեսնել հիմնական կոդ, որն օգտագործվում է որպես հիմք:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}

 


Հոդվածի բովանդակությունը հավատարիմ է մեր սկզբունքներին խմբագրական էթիկա, Սխալի մասին հաղորդելու համար կտտացրեք այստեղ.

Մեկնաբանություն, թող ձերը

Թողեք ձեր մեկնաբանությունը

Ձեր էլ. Փոստի հասցեն չի հրապարակվելու: Պահանջվող դաշտերը նշված են *

*

*

  1. Տվյալների համար պատասխանատու ՝ Միգել Անխել Գատոն
  2. Տվյալների նպատակը. Վերահսկել SPAM, մեկնաբանությունների կառավարում:
  3. Օրինականություն. Ձեր համաձայնությունը
  4. Տվյալների հաղորդագրություն. Տվյալները չեն փոխանցվի երրորդ անձանց, բացառությամբ իրավական պարտավորության:
  5. Տվյալների պահպանում. Տվյալների շտեմարան, որը հյուրընկալվում է Occentus Networks (EU) - ում
  6. Իրավունքներ. Timeանկացած պահի կարող եք սահմանափակել, վերականգնել և ջնջել ձեր տեղեկատվությունը:

  1.   jose ասաց

    Ես գտա, որ բացատրությունը շատ օգտակար է և պարզ: