» Electronics » Arduino »Range finder sa platform ng Arduino!

Ang saklaw ng finder sa Arduino platform!


Magandang araw sa lahat! Sa artikulong ito nais kong sabihin kung paano ginagamit Arduino, isang hanay ng mga LED at isang sensor ng ultrasonic, maaari mong tipunin ang isang aparato na tumutukoy sa distansya mula sa tagamasid hanggang sa bagay, sa madaling salita, range finder. At kaya umalis na tayo!
Ano ang kailangan natin:
Kapatagan kahon. Ito ay kanais-nais na maging maliit sa laki, dahil naglalaman lamang ito ng isang microcontroller.

Paggamit ultrasonic transducer HC-SR04 matutukoy namin ang distansya.

Apat na tagapagpahiwatig ng numero kailangan nating i-output ang mga nakuha na halaga.

Itakda Mga LED anumang kulay (ginamit kong berde, dahil mas maliwanag sila), resistors sa 220 ohms mga wire o mga jumper din tinapay.





Upang ang mga sangkap ng aming aparato ay ligtas na na-fasten, mas gugulin ko ang mga ito.
Para sa kailangan namin paghihinang iron, pagkilos ng bagay, panghinangpati na rin tinapay para sa paghihinang.

At syempre, wala Arduino wala tayong magagawa! (Maaari kang pumili ng anumang microcontroller, mas gusto ko si Arduino Leonardo o ang katumbas nitong si Iskra Neo)

Sa mga tool na kailangan namin ng isang paghihinang bakal, tulad ng sinabi ko sa itaas, kutsilyo at nippers.

Ngayon simulan natin ang pag-iipon ng aparato.
Hakbang # 1
Upang magsimula, gamit ang isang breadboard, tipunin namin ang isang prototype ng aming aparato sa hinaharap. Magmukha ito ng ganito ..

Wag kang magalala! Walang kakila-kilabot sa gulo ng mga wires na ito!
Ang sensor HC-SR04 ay may apat na pin: kasama, minus (na nakadikit kami sa 5V at GND ng magsusupil), Trig at Echo (ipinasok namin ang mga arduino pin sa 12 at 11, ayon sa pagkakabanggit)
Ang apat na digit na tagapagpahiwatig ay may 3 mga wire: kapangyarihan, ground at signal. Ang huli ay konektado sa 9 pin Arduino.
Ikinonekta namin ang tatlong mga LED sa 6, 5 at 4 na mga contact ng magsusupil sa serye na may resistors. Huwag kalimutan ang tungkol sa polarity. Kasalukuyang dumadaloy mula sa isang mas mahabang paa hanggang sa isang mas maikli.
Iyon lang, kapag pinagsama namin ang aming aparato sa isang breadboard, na-upload ang sketch (ito ay sa dulo ng artikulo) at siniguro na ang lahat ay gumagana, huwag mag-atubiling simulan ang paghihinang.
Hakbang numero 2
Una, ang nagbebenta ng ultrasonic sensor sa breadboard. Gumamit ako ng isang maliit na tinapay sa laki, dahil ang bilang ng mga elemento ay hindi lalampas sa 7.

Pagkatapos nito, sa tulong ng mga nippers, kumagat sa mga binti (humihingi ako ng paumanhin para sa tautology), na ginagawa itong mas maikli upang hindi sila makagambala at magmukhang mas maganda!

Pagkatapos nito, ibebenta ang apat na mga wire laban sa mga contact ng sensor.


Gayundin huwag kalimutan ang tungkol sa mga nippers!


Hakbang # 3
Ang sensor ay nasa lugar, nananatili itong ibebenta sa tatlong mga LED kasama ang mga resistors.


Sa baligtad, mukhang ganito:

Hakbang # 4
Sa gilid ng kahon, gupitin ang isang bilog na butas para sa pagkain.

Sa talukap ng mata, kailangan mong i-cut ang isang lukab sa laki (bahagyang mas maliit sa haba) ng iyong breadboard, at mag-drill din ng mga butas para sa mga tornilyo.


Ngayon, kung i-tornilyo namin ang isang walang laman na tinapay na walang mga elemento dito (ginawa ko ito para lamang sa pagpapakita ..), nakakakuha kami ng isang tulad ng sumusunod:

Hakbang # 5
Kaya, upang gawin itong mas maginhawa, ipinapanukala kong unang ikonekta ang mga wire sa arduino, at pagkatapos ay i-tornilyo ang breadboard sa takip ng kahon. Gayundin, huwag kalimutan ang tungkol sa aming tagapagpahiwatig, na inilagay ko sa itaas ng layout.

Tapos na ang lahat sa pagpupulong ng aparato na ito!
Ito ay nananatiling i-download lamang sa susunod sketch at tamasahin ang laruan!
#nagsama
#nagsama
NewPing sonar (12.11, 400);
int a, j, b;
hindi naka -ign na mahaba t = 0;
int masiv [] = {1,0,0,0,1,0,0,0,1};
walang pag-setup ()
{
 para sa (int i = 4; i & lt; 7; i ++)
 {
   pinMode (i, OUTPUT);
 }
 displayClear (9);
 para sa (int i = 4; i & lt; 7; i ++)
 {
   digitalWrite (i, 0);
 }
  }
walang bisa loop ()
{
  j = 7;
  para sa (int i = 0; i100) tono (2,70);
    digitalWrite (j, masiv [i]);
    habang (millis () & lt; = t + b)
    {
    pagkaantala (50);
    isang = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
    }
    t = millis ();
    kung (j == 4) j = 7;
    kung (i == 8)
    {
     digitalWrite (4.1);
     habang (millis () & lt; = (t + b) + (b * 2))
     {
    pagkaantala (50);
    isang = sonar.ping_cm ();
    displayInt (9, a);
    b = a;
     }
     digitalWrite (4.0);
     t = millis ();
    }
  }



Ilang salita programa ng programa. Salamat sa kanya, ang aming tatlong mga LED ay magkakasunod na kumikislap sa isa't isa, at ang bilis ng kanilang pagkislap ay depende sa distansya sa bagay, na kinakalkula ng ultrasonic sensor. Ngunit upang gawin ang mga LEDs kumurap, hindi ganap na lohikal na gamitin ang pagkaantala () function, dahil kapag ginamit ito, nag-freeze ang controller at walang mga kalkulasyon. Mayroong maraming mga paraan upang malutas ang problemang ito. Sa partikular, ang isa sa kanila ay ang paggamit ng millis () function, na nagbabalik ng isang bilang sa mga millisecond mula sa sandaling gumagana ang controller. At paano natin maaantala ang isang kondisyong 100 millisecond? Upang gawin ito, gumawa ako ng isang mahalagang walang laman na ikot, ang exit mula sa kung saan ay pagkatapos lamang ng mga 100 millisecond, at pagkatapos ang programa ay magpapatuloy / i-off ang mga LED.

Mabuti na lang! Salamat sa pagbabasa ng artikulong ito hanggang sa huli. Inaasahan ko na hindi mo lamang siya nagustuhan, ngunit din inspirasyon ng isang bagong dagat likhang-sining at mga imbensyon!
6
5
5

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
7 komento
Ang may-akda
Kumusta)
Siguro mayroon ka pa ring sketch na nagtatrabaho? Sa ito, lumiliko na kahit ang pag-sign "<" ay pinalitan ng "& lt;")
Kumusta Kapag na-load ko ang iyong sketsa, gumagawa ito ng isang bungkos ng mga error sa syntax para sa ilang kadahilanan. Siyempre, hindi ako masyadong nakikipagtalo sa syntax, ngunit sa ilang mga lugar ay hindi ko alam kung ano ang kailangang ayusin. Halimbawa, sa isang piraso:
para sa (int i = 0; i100) tono (2,70);
digitalWrite (j, masiv [i]);
, ano ang ibig sabihin ng pinagsama na i100? bakit hindi tumaas? Kailangan mo ba ng mga kulot na braces upang ang susunod na dalawang pag-andar pagkatapos ay kabilang sa parehong loop, o nagkamali ba ako? At sa gayon ang compiler ay nanunumpa sa buong code. Maaari ba ako makipag-ugnay sa iyo, linawin ang code? Sinusubukan kong gumawa ng proyekto sa kurso batay sa iyong artikulo.

Gayundin, sa code sa lugar kung saan konektado ang mga aklatan, hindi ipinapahiwatig ang kanilang mga pangalan. Siyempre, maaari mong hulaan, ngunit ang sketch na ito ay hindi masyadong angkop para sa instant na pagsubok, kailangan mong isipin ito)
Ang may-akda
Oo, posible)
Iyon ay, ang penultimate photo (kung saan 77) ay hindi matagumpay dahil sa ilang mga parasito na pag-iilaw ng mga itaas na bahagi bilang isang resulta ng hindi tamang operasyon ng pabago-bagong display? Ang anim ay mayroon ding isang galit na ilaw, kahit na hindi halata.
Ang may-akda
Ivan, ang pagbabasa ng 6cm at 11cm ang distansya mula sa sensor hanggang sa palad)
Mangyaring ipaliwanag kung bakit tulad ng isang kakaibang patotoo sa huling dalawang litrato.

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...