Добър ден любители Направи си сам! Днес ще сглобим обикновен далекомер Arduino Pro Mini. Устройството може да измерва разстояние от 2 до 400 см. Грешката на това устройство достига само +/- 1-5 см, в зависимост от измереното разстояние.
Инструменти и материали
-Arduino Pro mini
Сензор HC-04
- Индикатор за tm1637
-Wire (имам - MGTF 0,12)
-Programmator
-Пластичен корпус
-Li-on батерия
-Малък превключвател
- Табло за зареждане на TP4056
-Superkley
-Пояло желязо
-Pripoy
-Kanifol
Пробиване, тренировка и др.
Първа стъпка: Схема:
Според схемата всичко е просто, без допълнения.
Стъпка втора. Подготовка на случая:
Първо опитваме сензора и пробиваме два отвора за 15 мм.
След това направете дупка за микро-usb конектор с тренировка 3-3,5 мм.
Избираме тренировка за диаметъра на превключвателя и тренировка.
На капака правим „прозорец“ за седемсегментния индикатор (на снимката без обработка) и завършваме всички нередности с файл.
Стъпка трета. Фърмуер:
В скицата се открояват променливи, които можете да коригирате за себе си. Целият код се коментира.
#include // библиотеки за работа
#include
// ------------- За да конфигурирате --------------------------------- --------------------------------
bool Long = 0; // 0 - измерва дължината от сензора
// 1 - измерва дължината от стената на корпуса, която е противоположна на сензора
неподписан вътрешен корпус = 10; // разстояние от сензора до противоположната стена на корпуса (в сантиметри)
#define CLK 2 // щифтове за свързване
#define DIO 3
#define TRIG 4
#define ECHO 5
// ------------------------------------------------ ----------------------------------------------
неподписан int импулс = 0; // променливи за изчисление
неподписан int sm = 0;
GyverTM1637 disp (CLK, DIO);
настройка за невалидност () {
pinMode (TRIG, OUTPUT); // зададен като изход
pinMode (ECHO, INPUT); // зададен като вход
яркост (7); // яркост 0-7
точка на топене (0); // изключете дебелото черво
disp.clear (); // изчисти индикатора
}
void loop () {
digitalWrite (TRIG, HIGH); // захранване 5 волта
забавянеМикросекунди (10); // забавяне 10 микросекунди
digitalWrite (TRIG, LOW); // служи 0
импулс = импулсIn (ECHO, HIGH); // измерва дължината на пулса
sm = импулс / 58; // конвертира в сантиметри
ако (Long == 1) {// проверете настройките
sm = sm + корпус;
}
ако (sm <= 2) {// нула фалшиви стойности
sm = 1;
}
ако (sm> = 405) {
sm = 1;
}
int цяло число = sm / 10;
int decimal = sm% 10;
десетичен = десетичен * 10;
disp.displayClock (цяло число, десетичен); // изход към индикатор
забавяне (300); // забавяне 0,3 сек. между стойността на изхода
}
След това свържете програмиста и флаш MK.
Стъпка четвърта. Монтаж:
Тъй като устройството работи с батерия, нямаме нужда от допълнително зареждане. Затова на дъската Arduino спояваме светодиодите и бутона за нулиране (за да намалим размера).
Залепете батерията към тялото върху суперзалепващо. Залепваме дъската за зареждане на батерията, инсталираме превключвателя и спояваме всичко според схемата.
Залепваме сензора към кутията и спояваме всичко според схемата.Първоначално имаше идея да залепите дъската върху двустранна лента, но след това беше решено да я залепите върху суперзалепване.Индикаторът може да се завинтва или залепва.
Стъпка пета. Тест:
Забележка: четвъртият сегмент винаги ще показва 0. Това е, за да се гарантира, че последният сегмент не е празен. Оказва се, ако показанието е 270, тогава това означава, че разстоянието е 27 cm.
За да сте сигурни, показанията могат да бъдат проверени с владетеля.