» Electronics » Arduino »Simple finder sa Arduino

Simpleng Arduino Rangefinder


Magandang mahilig sa hapon gawang bahay! Ngayon magtitipon kami ng isang simpleng rangefinder sa Arduino Pro Mini. Ang aparato ay may kakayahang pagsukat ng isang distansya mula 2 hanggang 400 cm. Ang pagkakamali sa aparatong ito ay umaabot lamang sa +/- 1-5 cm, depende sa sinusukat na distansya.

Mga tool at materyales
-Arduino Pro mini
Sensor HC-04
- Tagapagpahiwatig sa tm1637
-Wire (mayroon ako - MGTF 0.12)
-Programmer
-Plastic na pabahay
-Li-on na baterya
-Small switch
- Pagsingil ng board sa TP4056
Superglue
-Soldering iron
-Solder
Rosin
Drill, drill, atbp.

Hakbang ng isa.
Ayon sa scheme, ang lahat ay simple, nang walang mga karagdagan.


Hakbang Dalawa. Paghahanda ng Kaso:
Una subukan namin sa sensor at mag-drill ng dalawang butas para sa 15 mm.

Susunod, gumawa ng isang butas para sa isang micro-usb connector na may 3-3.5 mm drill.

Pumili kami ng isang drill para sa diameter ng switch at drill.

Sa talukap ng mata gumawa kami ng isang "window" para sa pitong-segment na tagapagpahiwatig (sa larawan nang walang pagproseso), at natapos namin ang lahat ng mga iregularidad na may isang file.


Hakbang Tatlong. Firmware:
Sa sketch, ang mga variable na maaaring ayusin para sa iyong sarili ay nai-highlight. Lahat ng code ay nagkomento.

#include  // aklatan para sa trabaho
#include 
// ------------- Upang i-configure --------------------------------- --------------------------------
bool Long = 0; // 0 - sukatin ang haba mula sa sensor
               // 1 - sukatin ang haba mula sa pader ng pabahay, na kabaligtaran sa sensor
unsigned int corpus = 10; // distansya mula sa sensor hanggang sa tapat ng pader ng kaso (sa sentimetro)

#define CLK 2 // pin upang kumonekta
#define DIO 3
#define TRIG 4
#define ECHO 5
// ------------------------------------------------ ----------------------------------------------
unsigned int impulse = 0; // variable para sa pagkalkula
unsigned int sm = 0;

GyverTM1637 disp (CLK, DIO);
walang pag-setup () {
 pinMode (TRIG, OUTPUT); // itakda bilang isang output
 pinMode (ECHO, INPUT); // itakda bilang input
 kawalang-hanggan (7); // ningning 0-7
 ituro (0); // patayin ang colon
  di-wasto (); // limasin ang tagapagpahiwatig
}

walang bisa na loop () {
 digitalWrite (TRIG, HIGH); // supply ng 5 volts
  pagkaantalaMicroseconds (10); // antala ng 10 microseconds
  digitalWrite (TRIG, LOW); // maglingkod 0
 
  salpok = pulseIn (ECHO, HIGH); // sukatin ang haba ng pulso
  sm = salpok / 58; // convert sa sentimetro

  kung (Long == 1) {// mga setting ng suriin
    sm = sm + corpus;
  }

  kung (sm <= 2) {// zero maling halaga
    sm = 1;
  }
  kung (sm> = 405) {
    sm = 1;
  }

  int integer = sm / 10;
  int decimal = sm% 10;
  desimal = desimal * 10;
 disp.displayClock (integer, desimal); // output sa tagapagpahiwatig

  pagkaantala (300); // antala 0.3 seg. sa pagitan ng halaga ng output
}

Susunod, ikonekta ang programista at flash MK.


Hakbang Ika-apat na Assembly.
Dahil ang aparato ay tumatakbo sa lakas ng baterya, hindi namin kailangan ng labis na singil. Samakatuwid, sa board ng Arduino na ibenta namin ang mga LED at ang pindutan ng pag-reset (upang mabawasan ang laki).

I-glue ang baterya sa katawan sa superglue. I-pandikit ang board ng singil sa baterya, i-install ang switch at ang nagbebenta ng lahat ayon sa pamamaraan.

Dinikit namin ang sensor sa kaso at ibinebenta ang lahat ayon sa pamamaraan.Sa una ay may ideya na ilagay ang board sa double-sided tape, ngunit pagkatapos ay napagpasyahan na ilagay ito sa superglue. Ang tagapagpahiwatig ay maaaring mai-screwed o nakadikit.


Hakbang Limang Pagsubok:
Tandaan: ang pang-apat na segment ay palaging magpapakita 0. Ito ay upang matiyak na ang huling segment ay hindi walang laman. Ito ay lumiliko kung ang pagbabasa ay 270, pagkatapos ay nangangahulugan ito na ang distansya ay 27 cm.

Upang matiyak, ang patotoo ay maaaring mapatunayan sa pinuno.
8
8.3
7.6

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
3 komentaryo
Panauhang George
Ang proyekto ay ninakaw mula sa "AlexGiver", kaya ang may-akda ay "daga" !!!
Una
Hindi namin kailangan ng dagdag na singil sa singil. Samakatuwid sa board Arduino ang panghinang sa mga LED
, ngunit pagkatapos kami ay hangal na gumastos ng higit pa na-save
ang ikaapat na segment ay palaging magpapakita 0.

Upang matiyak, ang patotoo ay maaaring mapatunayan sa pinuno.
At ano ang mga resulta?

Ang proyekto mismo sa form na ipinakita ay pulos pang-edukasyon, walang praktikal na kahalagahan.
Leon
Marami akong na-eksperimento sa sensor na ito, sa kasamaang palad ang kawastuhan ng pagsukat nito ay lubos na nakasalalay sa perpendikularidad ng pagsukat na eroplano sa eroplano ng aparato.

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...