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.