Guten Tag Liebhaber hausgemacht! Heute werden wir einen einfachen Entfernungsmesser montieren Arduino Pro Mini. Das Gerät kann einen Abstand von 2 bis 400 cm messen. Der Fehler dieses Geräts erreicht je nach gemessenem Abstand nur +/- 1-5 cm.
Werkzeuge und Materialien
-Arduino Pro mini
Sensor HC-04
- Anzeige auf tm1637
-Wire (ich habe - MGTF 0.12)
-Programmer
-Plastikgehäuse
-Li-On-Batterie
-Kleiner Schalter
- Ladetafel am TP4056
Sekundenkleber
-Lötkolben
-Solder
Kolophonium
Bohren, bohren usw.
Schritt eins. Schema:
Nach dem Schema ist alles einfach, ohne Zusätze.
Schritt zwei. Fallvorbereitung:
Zuerst probieren wir den Sensor an und bohren zwei Löcher für 15 mm.
Machen Sie als nächstes ein Loch für einen Micro-USB-Anschluss mit einem 3-3,5-mm-Bohrer.
Wir wählen einen Bohrer für den Durchmesser des Schalters und des Bohrers.
Auf dem Deckel machen wir ein „Fenster“ für die Sieben-Segment-Anzeige (auf dem Foto ohne Verarbeitung) und beenden alle Unregelmäßigkeiten mit einer Datei.
Schritt drei. Firmware:
In der Skizze werden Variablen hervorgehoben, die für Sie angepasst werden können. Der gesamte Code ist auskommentiert.
#include // Bibliotheken für die Arbeit
#include
// ------------- Zum Konfigurieren --------------------------------- --------------------------------
bool Long = 0; // 0 - Messen Sie die Länge vom Sensor
// 1 - Messen Sie die Länge von der Gehäusewand, die dem Sensor gegenüberliegt
vorzeichenloser int corpus = 10; // Abstand vom Sensor zur gegenüberliegenden Gehäusewand (in Zentimetern)
#define CLK 2 // Pins zum Verbinden
# DIO definieren 3
#define TRIG 4
# ECHO definieren 5
// ------------------------------------------------ ----------------------------------------------
vorzeichenloser int impulse = 0; // Variablen zur Berechnung
unsigned int sm = 0;
GyverTM1637 disp (CLK, DIO);
void setup () {
PinMode (TRIG, OUTPUT); // als Ausgabe setzen
pinMode (ECHO, INPUT); // als Eingabe setzen
Disp. Helligkeit (7); // Helligkeit 0-7
disp.point (0); // Schalte den Doppelpunkt aus
disp.clear (); // lösche den Indikator
}}
void loop () {
digitalWrite (TRIG, HIGH); // 5 Volt liefern
delayMicroseconds (10); // Verzögerung von 10 Mikrosekunden
digitalWrite (TRIG, LOW); // 0 servieren
Impuls = ImpulsIn (ECHO, HOCH); // Pulslänge messen
sm = Impuls / 58; // in Zentimeter umrechnen
if (Long == 1) {// Einstellungen überprüfen
sm = sm + Korpus;
}}
if (sm <= 2) {// null falsche Werte
sm = 1;
}}
if (sm> = 405) {
sm = 1;
}}
int integer = sm / 10;
int decimal = sm% 10;
dezimal = dezimal * 10;
disp.displayClock (Ganzzahl, Dezimalzahl); // Ausgabe an Indikator
Verzögerung (300); // Verzögerung 0,3 Sek. zwischen Wertausgabe
}}
Schließen Sie als nächstes den Programmierer und das Flash-MK an.
Vierter Schritt: Montage:
Da das Gerät mit Batteriestrom betrieben wird, benötigen wir keine zusätzliche Ladung. Daher löten wir auf der Arduino-Platine die LEDs und den Reset-Knopf (um die Größe zu reduzieren).
Kleben Sie die Batterie auf Sekundenkleber auf das Gehäuse. Wir kleben die Ladetafel auf den Akku, installieren den Schalter und löten alles gemäß dem Schema.
Wir kleben den Sensor auf das Gehäuse und löten alles gemäß dem Schema. Zuerst kam die Idee, die Platine auf doppelseitiges Klebeband zu kleben, aber dann wurde beschlossen, sie auf Sekundenkleber zu kleben. Der Indikator kann angeschraubt oder geklebt werden.
Fünfter Schritt. Test:
Hinweis: Das vierte Segment zeigt immer 0 an. Dies soll sicherstellen, dass das letzte Segment nicht leer ist. Wenn sich herausstellt, dass der Messwert 270 beträgt, bedeutet dies, dass der Abstand 27 cm beträgt.
Natürlich kann das Zeugnis mit dem Lineal überprüft werden.