Miłośnicy miłego popołudnia domowej roboty! Dzisiaj zmontujemy prosty dalmierz Arduino Pro Mini. Urządzenie jest w stanie zmierzyć odległość od 2 do 400 cm. Błąd tego urządzenia wynosi zaledwie +/- 1-5 cm, w zależności od zmierzonej odległości.
Narzędzia i materiały
-Arduino Pro mini
Czujnik HC-04
- Wskaźnik na TM1637
-Wire (mam - MGTF 0.12)
-Programator
-Plastikowa obudowa
-Li-on battery
-Mały przełącznik
- Płyta ładująca w TP4056
Superglue
-Lutownica
- Sprzedający
Kalafonia
Wiertarka, wiertarka itp.
Krok 1. Schemat:
Zgodnie ze schematem wszystko jest proste, bez dodatków.
Krok 2. Przygotowanie przypadku:
Najpierw przymierzamy czujnik i wiercimy dwa otwory na 15 mm.
Następnie wykonaj otwór na złącze micro-usb wiertłem 3-3,5 mm.
Wybieramy wiertło dla średnicy przełącznika i wiertła.
Na pokrywie wykonujemy „okno” dla wskaźnika siedmiosegmentowego (na zdjęciu bez przetwarzania), a wszystkie nieprawidłowości kończymy plikiem.
Krok trzeci. Oprogramowanie układowe:
W szkicu zmienne, które można dostosować dla siebie, są podświetlone. Cały kod jest skomentowany.
#include // biblioteki do pracy
#include
// ------------- Aby skonfigurować --------------------------------- --------------------------------
bool Long = 0; // 0 - zmierz długość od czujnika
// 1 - zmierz długość od ściany obudowy, która jest przeciwna do czujnika
unsigned int corpus = 10; // odległość od czujnika do przeciwległej ściany obudowy (w centymetrach)
# zdefiniować piny CLK 2 // do połączenia
# zdefiniować DIO 3
# zdefiniować TRIG 4
# zdefiniować ECHO 5
// ------------------------------------------------ ----------------------------------------------
unsigned int impulse = 0; // zmienne do obliczeń
unsigned int sm = 0;
GyverTM1637 disp (CLK, DIO);
void setup () {
pinMode (TRIG, OUTPUT); // ustawiony jako wynik
pinMode (ECHO, WEJŚCIE); // ustaw jako dane wejściowe
rozjaśnienie jasności (7); // jasność 0–7
disp.point (0); // wyłącz dwukropek
disp.clear (); // wyczyść wskaźnik
}
void loop () {
digitalWrite (TRIG, HIGH); // dostarczyć 5 woltów
delayMicroseconds (10); // opóźnienie 10 mikrosekund
digitalWrite (TRIG, LOW); // podaj 0
impuls = pulsIn (ECHO, WYSOKI); // zmierzyć długość impulsu
sm = impuls / 58; // przelicz na centymetry
if (Long == 1) {// sprawdź ustawienia
sm = sm + korpus;
}
if (sm <= 2) {// zero fałszywych wartości
sm = 1;
}
jeśli (sm> = 405) {
sm = 1;
}
liczba całkowita = sm / 10;
int dziesiętny = sm% 10;
dziesiętny = dziesiętny * 10;
disp.displayClock (liczba całkowita, dziesiętna); // wyjście do wskaźnika
opóźnienie (300); // opóźnienie 0,3 s między wartością wyjściową
}
Następnie podłącz programator i flashuj MK.
Krok czwarty Montaż:
Ponieważ urządzenie działa na zasilaniu bateryjnym, nie potrzebujemy dodatkowej opłaty. Dlatego na płycie Arduino lutujemy diody LED i przycisk resetowania (aby zmniejszyć rozmiar).
Przyklej akumulator do ciała za pomocą superglue. Przyklejamy płytę ładującą do akumulatora, instalujemy przełącznik i lutujemy wszystko zgodnie ze schematem.
Przyklejamy czujnik do skrzynki i lutujemy wszystko zgodnie ze schematem. Najpierw wpadł pomysł, aby przykleić płytkę do dwustronnej taśmy, ale potem zdecydowano, aby przykleić ją do super kleju. Wskaźnik można przykręcić lub przykleić.
Krok piąty Test:
Uwaga: czwarty segment zawsze będzie wyświetlał 0. Ma to na celu upewnienie się, że ostatni segment nie jest pusty. Okazuje się, że jeśli odczyt wynosi 270, oznacza to, że odległość wynosi 27 cm.
Dla pewności zeznanie można zweryfikować za pomocą linijki.