Goedemiddagliefhebbers zelfgemaakt! Vandaag gaan we een simpele afstandsmeter monteren Arduino Pro Mini. Het apparaat kan een afstand van 2 tot 400 cm meten, de fout van dit apparaat bedraagt slechts +/- 1-5 cm, afhankelijk van de gemeten afstand.
Gereedschap en materialen
-Arduino Pro mini
Sensor HC-04
- Indicator op TM1637
-Wire (ik heb - MGTF 0.12)
-Programmeur
-Plastic behuizing
-Li-on batterij
-Kleine schakelaar
- Oplaadbord op TP4056
Superlijm
-Soldeerbout
-Soldeer
Hars
Boren, boren, etc.
Stap 1. Regeling:
Volgens het schema is alles eenvoudig, zonder toevoegingen.
Stap 2. Voorbereiding van de zaak:
Eerst proberen we de sensor en boren twee gaten van 15 mm.
Maak vervolgens een gat voor een micro-usb-connector met een boor van 3-3,5 mm.
We selecteren een boor voor de diameter van de schakelaar en boren.
Op het deksel maken we een “venster” voor de zeven-segment indicator (in de foto zonder verwerking), en we maken alle onregelmatigheden af met een bestand.
Stap drie: Firmware:
In de schets worden variabelen gemarkeerd die voor jezelf kunnen worden aangepast. Alle code is uitgecommentarieerd.
#include // bibliotheken voor werk
#include
// ------------- Om te configureren --------------------------------- --------------------------------
bool Long = 0; // 0 - meet de lengte vanaf de sensor
// 1 - meet de lengte vanaf de muur van de behuizing, die tegenover de sensor ligt
niet-ondertekend int corpus = 10; // afstand van de sensor tot de tegenoverliggende kastwand (in centimeters)
#define CLK 2 // pinnen om verbinding mee te maken
# definieer DIO 3
#define TRIG 4
# definieer ECHO 5
// ------------------------------------------------ ----------------------------------------------
niet-ondertekende int-impuls = 0; // variabelen voor berekening
niet-ondertekende int sm = 0;
GyverTM1637 disp (CLK, DIO);
ongeldige setup () {
pinMode (TRIG, OUTPUT); // ingesteld als output
pinMode (ECHO, INPUT); // ingesteld als invoer
disp. helderheid (7); // helderheid 0-7
disp.point (0); // zet de dubbele punt uit
disp.clear (); // wis de indicator
}
leegte lus () {
digitalWrite (TRIG, HIGH); // leveren 5 volt
delayMicroseconds (10); // vertraging 10 microseconden
digitalWrite (TRIG, LOW); // serveer 0
impuls = pulseIn (ECHO, HIGH); // meet de pulslengte
sm = impuls / 58; // converteren naar centimeters
if (Long == 1) {// controleer instellingen
sm = sm + corpus;
}
if (sm <= 2) {// nul valse waarden
sm = 1;
}
if (sm> = 405) {
sm = 1;
}
int geheel getal = sm / 10;
int decimaal = sm% 10;
decimaal = decimaal * 10;
disp.displayClock (geheel getal, decimaal); // output naar indicator
vertraging (300); // vertraging 0,3 sec. tussen waarde-uitvoer
}
Sluit vervolgens de programmeur en flash MK aan.
Stap vier: montage:
Omdat het apparaat op batterijvoeding werkt, hebben we geen extra kosten nodig. Daarom solderen we op het Arduino-bord de LED's en de resetknop (om de grootte te verkleinen).
Lijm de batterij op het lichaam op superlijm. We lijmen het laadbord op de batterij, installeren de schakelaar en solderen alles volgens het schema.
We lijmen de sensor op de behuizing en solderen alles volgens het schema.In eerste instantie was er een idee om het bord op dubbelzijdige tape te plakken, maar toen werd besloten om het op superlijm te plakken.De indicator kan worden geschroefd of gelijmd.
Stap vijf Test:
Opmerking: het vierde segment geeft altijd 0 weer. Dit is om ervoor te zorgen dat het laatste segment niet leeg is. Het blijkt dat als de meting 270 is, dit betekent dat de afstand 27 cm is.
Voor de zekerheid kan de getuigenis worden geverifieerd bij de liniaal.