God eftermiddagsälskare DIY! Idag kommer vi att montera en enkel avståndsmätare på Arduino Pro Mini. Enheten kan mäta ett avstånd från 2 till 400 cm. Felet för denna enhet är bara +/- 1-5 cm, beroende på det uppmätta avståndet.
Verktyg och material
-Arduino Pro mini
Sensor HC-04
- Indikator på tm1637
-Wire (jag har - MGTF 0,12)
-Programmator
-Plasthus
-Li-on batteri
-Liten strömbrytare
- Laddningskort på TP4056
-Superkley
-Lödjärn
-Pripoy
-Kanifol
Borr, borr, etc.
Steg ett. Schema:
Enligt schemat är allt enkelt utan tillägg.
Steg 2. Förberedelse av ärenden:
Först försöker vi på sensorn och borrar två hål i 15 mm.
Därefter gör du ett hål för en mikro-USB-kontakt med en 3-3,5 mm borr.
Vi väljer en borr för omkopplarens och borrens diameter.
På locket skapar vi ett "fönster" för sju-segmentet (på bilden utan bearbetning), och vi avslutar alla oegentligheter med en fil.
Steg 3. Firmware:
I skissen markeras variabler som kan justeras för dig själv. All kod kommenteras.
#include // bibliotek för arbete
#include
// ------------- För att konfigurera --------------------------------- --------------------------------
bool Long = 0; // 0 - mät längden från sensorn
// 1 - mät längden från husväggen, som är mitt emot sensorn
osignerat int korpus = 10; // avstånd från sensorn till motsatt fallvägg (i centimeter)
# definiera CLK 2 // stift för att ansluta
# definiera DIO 3
# definiera TRIG 4
# definiera ECHO 5
// ------------------------------------------------ ----------------------------------------------
osignerad int-impuls = 0; // variabler för beräkning
osignerad int sm = 0;
GyverTM1637 disp (CLK, DIO);
ogiltig installation () {
pinMode (TRIG, OUTPUT); // Ställ in som utgång
pinMode (ECHO, INPUT); // Ställ in som ingång
disp.brightness (7); // ljusstyrka 0-7
disp.point (0); // stäng av kolon
disp.clear (); // rensa indikatorn
}
void loop () {
digitalWrite (TRIG, HIGH); // leverera 5 volt
fördröjning Mikrosekunder (10); // fördröja 10 mikrosekunder
digitalWrite (TRIG, LOW); // servera 0
impuls = pulsIn (ECHO, HÖG); // mäta pulslängden
sm = impuls / 58; // konvertera till centimeter
if (Långt == 1) {// kontrollera inställningar
sm = sm + korpus;
}
if (sm <= 2) {// noll falska värden
sm = 1;
}
if (sm> = 405) {
sm = 1;
}
int heltal = sm / 10;
int decimal = sm% 10;
decimal = decimal * 10;
disp.displayClock (heltal, decimal); // utgång till indikator
fördröjning (300); // fördröjning 0,3 sek. mellan värdeutgången
}
Anslut sedan programmeraren och flash MK.
Steg 4. Montering:
Eftersom enheten körs med batteri behöver vi inte extra laddning. Därför lödar vi lysdioderna och återställningsknappen på Arduino-kortet (för att minska storleken).
Limma batteriet på kroppen på superlim. Vi limmar laddningskortet på batteriet, installerar brytaren och löd allt enligt schemat.
Vi limmar sensorn på fodralet och lödar allt enligt schemat. Först var det en idé att fästa kortet på dubbelsidig tejp, men sedan beslutades att fästa det på superlim. Indikatorn kan skruvas på eller limmas.
Steg 5. Test:
Obs: det fjärde segmentet kommer alltid att visa 0. Detta är för att säkerställa att det sista segmentet inte är tomt. Det visar sig om avläsningen är 270, då betyder det att avståndet är 27 cm.
För att vara säker kan vittnesboken verifieras med linjalen.