God eftermiddagselskere DIY! I dag vil vi samle en simpel afstandsmåler til Arduino Pro Mini. Enheden er i stand til at måle en afstand fra 2 til 400 cm. Fejlen på denne enhed når kun +/- 1-5 cm, afhængigt af den målte afstand.
Værktøjer og materialer
-Arduino Pro mini
Sensor HC-04
- Indikator på tm1637
-Wire (jeg har - MGTF 0,12)
-Programmator
-Plastisk hus
-Li-on batteri
-Liten switch
- Opladningsplade på TP4056
-Superkley
- Loddejern
-Pripoy
-Kanifol
Bor, bor osv.
Trin 1. Skema:
I henhold til ordningen er alt simpelt uden tilføjelser.
Trin 2. Forberedelse af sag:
Først prøver vi sensoren og borer to huller i 15 mm.
Bor derefter et 3-3,5 mm hul til mikro-usb-stikket.
Vi vælger en bor til diameteren af kontakten og boren.
På låget laver vi et “vindue” til syv-segment indikatoren (på billedet uden behandling), og vi afslutter alle uregelmæssigheder med en fil.
Trin 3. Firmware:
I skitsen fremhæves variabler, der kan justeres for dig selv. Al kode kommenteres.
#include // biblioteker til arbejde
#include
// ------------- For at konfigurere --------------------------------- --------------------------------
bool Lang = 0; // 0 - mål længden fra sensoren
// 1 - mål længden fra husvæggen, der er modsat sensoren
usigneret int corpus = 10; // afstand fra sensoren til den modsatte kassevæg (i centimeter)
#definér CLK 2 // benene, der skal tilsluttes
#definér DIO 3
#definér TRIG 4
#definér ECHO 5
// ------------------------------------------------ ----------------------------------------------
usigneret int-impuls = 0; // variabler til beregning
usigneret int sm = 0;
GyverTM1637 disp (CLK, DIO);
ugyldig opsætning () {
pinMode (TRIG, OUTPUT); // indstilles som output
pinMode (ECHO, INPUT); // indstilles som input
disp.brightness (7); // lysstyrke 0-7
disp.point (0); // Sluk for tyktarmen
disp.clear (); // ryd indikatoren
}
void loop () {
digitalWrite (TRIG, HIGH); // levering 5 volt
forsinkelse Mikrosekunder (10); // forsink 10 mikrosekunder
digitalWrite (TRIG, LAV); // server 0
impuls = pulsIn (ECHO, HØJ); // måle pulslængde
sm = impuls / 58; // konverter til centimeter
if (Lang == 1) {// Kontroller indstillinger
sm = sm + korpus;
}
if (sm <= 2) {// nul falske værdier
sm = 1;
}
hvis (sm> = 405) {
sm = 1;
}
int heltal = sm / 10;
int decimal = sm% 10;
decimal = decimal * 10;
disp.displayClock (heltal, decimal); // output til indikator
forsinkelse (300); // forsinkelse 0,3 sek. mellem værdioutput
}
Tilslut derefter programmereren og flash MK.
Trin 4. Samling:
Da enheden kører på batteristrøm, har vi ikke brug for ekstra opladning. Derfor lodder vi LED'erne og nulstillingsknappen på Arduino-tavlen (for at reducere størrelsen).
Lim batteriet på kroppen på superlim. Vi limer opladningspladen på batteriet, installerer afbryderen og lodder alt efter skemaet.
Vi limer sensoren på sagen og lodder alt i henhold til skemaet. Først var der en idé om at klæbe pladen på dobbeltsidet bånd, men derefter blev det besluttet at sætte det på superlim. Indikatoren kan skrues på eller limes på.
Trin 5. Test:
Bemærk: det fjerde segment viser altid 0. Dette er for at sikre, at det sidste segment ikke er tomt. Det viser sig, at hvis aflæsningen er 270, betyder det, at afstanden er 27 cm.
For at være sikker, kan vidnesbyrdet verificeres med linealen.