Pencinta petang yang baik buatan sendiri! Hari ini kita akan memasang rangefinder mudah pada Arduino Pro Mini. Peranti ini mampu mengukur jarak dari 2 hingga 400 cm. Kesilapan peranti ini hanya sampai +/- 1-5 cm, bergantung pada jarak yang diukur.
Alat dan bahan
-Arduino Pro mini
Sensor HC-04
- Petunjuk pada tm1637
-Wire (saya ada - MGTF 0.12)
-Programmer
-Plastik perumahan
-Li-on bateri
-Small switch
- Lembaga caj pada TP4056
Superglue
-Pemerintah besi
-Solder
Rosin
Gerudi, gerudi, dll.
Langkah pertama Skim:
Menurut skim itu, segala-galanya adalah mudah, tanpa tambahan.
Langkah Kedua Persediaan Kes:
Mula-mula kita mencuba sensor dan menggerudi dua lubang selama 15 mm.
Seterusnya, buat lubang untuk penyambung mikro-usb dengan gerudi 3-3.5 mm.
Kami memilih gerudi untuk diameter suis dan gerudi.
Di tudung kita membuat "tetingkap" untuk penunjuk tujuh segmen (dalam foto tanpa pemprosesan), dan kami menyelesaikan semua penyelewengan dengan fail.
Langkah Tiga Firmware:
Dalam lakaran, pembolehubah yang boleh diselaraskan untuk diri anda diserlahkan. Semua kod dikomentari.
#include // libraries for work
#include
// ------------- Untuk mengkonfigurasi --------------------------------- --------------------------------
bool Panjang = 0; // 0 - mengukur panjang dari sensor
// 1 - mengukur panjang dari dinding perumahan, yang bertentangan dengan sensor
unsigned int corpus = 10; / jarak dari sensor ke dinding kes sebaliknya (dalam sentimeter)
#define CLK 2 // pin untuk menyambung
#define DIO 3
#define TRIG 4
#define ECHO 5
// ------------------------------------------------ ----------------------------------------------
int impulse = 0; // pembolehubah untuk pengiraan
unsigned int sm = 0;
GyverTM1637 disp (CLK, DIO);
void setup () {
pinMode (TRIG, OUTPUT); // set sebagai output
pinMode (ECHO, INPUT); // set sebagai input
disp.brightness (7); // kecerahan 0-7
disp.point (0); // Matikan kolon
disp.clear (); / / jelas penunjuk
}
kekosongan gelung () {
digitalWrite (TRIG, HIGH); // bekalan 5 volt
delayMicroseconds (10); / // menunda 10 mikroseconds
digitalWrite (TRIG, LOW); // berkhidmat 0
impuls = pulseIn (ECHO, HIGH); // mengukur panjang nadi
sm = impulse / 58; / Tukar kepada sentimeter
jika (Panjang == 1) {// semak tetapan
sm = sm + corpus;
}
jika (sm <= 2) {/ / zero nilai palsu
sm = 1;
}
jika (sm> = 405) {
sm = 1;
}
int integer = sm / 10;
int decimal = sm% 10;
perpuluhan = perpuluhan * 10;
disp.displayClock (integer, decimal); // output kepada penunjuk
kelewatan (300); // tunda 0.3 saat. antara output nilai
}
Seterusnya, sambungkan programmer dan flash MK.
Langkah Empat Pemasangan:
Memandangkan peranti berjalan pada kuasa bateri, kami tidak memerlukan caj tambahan. Oleh itu, pada papan Arduino, kami menyolder LED dan butang reset (untuk mengurangkan saiz).
Letakkan bateri ke badan pada superglue. Kami gam papan pengecasan pada bateri, pasangkan suis dan solder semuanya mengikut skema.
Kami melekatkan sensor ke kes itu dan menyuruh segala-galanya mengikut skema. Pada mulanya terdapat satu idea untuk melekatkan papan pada pita dua belah, tetapi kemudiannya diputuskan untuk melekat pada superglue. Penunjuk boleh diskru atau terpaku.
Langkah Lima Ujian:
Nota: segmen keempat akan sentiasa memaparkan 0. Ini untuk memastikan segmen terakhir tidak kosong. Ternyata jika bacaannya 270, maka ini bermakna jaraknya 27 cm.
Pasti, kesaksian itu boleh disahkan dengan pemerintah.