Название: Искусство овладеть лазерным детектором местоположения DIY
Как домовладелец, вы всегда ищете способы сэкономить деньги и улучшить навыки DIY. Один из проектов, который может помочь вам сделать это одновременно, - это создать собственный лазерный детектор уровня жидкости. С простыми материалами и некоторой креативностью вы можете создать полностью функциональный и недорогой инструмент, который облегчит ваш следующий проект строительства или отделки. В этой статье мы будем постепенно направлять вас по всему процессу и покажем вам, как создать свой собственный лазерный детектор уровня жидкости.
Необходимые материалы:
1. Лазерные индикаторы
Платформа Arduino Uno
Датчик LDR (фоторезистор)
4. Хлебные доски
5. Прыжок
6. Источники питания (например, батареи)
Шаг 1: Подключите датчик LDR к панели Arduino
Датчик LDR является ядром лазерного детектора уровня жидкости. Он работает, измеряя изменения во времени контакта с объектом (например, поверхностью пола или стены). Чтобы подключить датчик LDR к панели Arduino, выполните следующие действия:
* Вставьте левый штырь хлебной плиты на одну сторону датчика LDR и закрепите его на месте с помощью трамплина.
* Вставьте правый штырь хлебной плиты на другую сторону датчика LDR и закрепите его на месте с помощью другого кросс - провода.
:: Сварка тонкой нити от штыря 9 на панели & lt; & lt; Ардуино & gt; & gt; к промежуточному штырю хлебной плиты (соответствует заземлению).
:: Сварить другую тонкую нитку от штыря 10 на панели Arduino к левому штырю хлебной плиты (соответствующее напряжению).
:: Сварка другой тонкой нити от штыря A0 на панели Arduino к правому штырю хлебной плиты (соответствует аналоговому входу).
Шаг 2: Составление кода для платы Arduino
Теперь, когда вы соединили все компоненты вместе, пришло время написать код для управления лазерным индикатором и показать результаты измерений на LCD - экране или светодиодной лампе. Вот пример кода, который вы можете использовать в качестве отправной точки:
" С
# Включая
/ / Определить вывод LCD - соединения (DB4, DB5, DB6, DB7)
ЖК - дисплеи (4, 5, 6, 7);
/ / Переменные, используемые для хранения местоположения лазерного индикатора и результатов измерений
int x = 0;
i = 0;
Плавающее расстояние = 0,0;
Неверные настройки () {
Установите количество столбцов и строк на экране LCD и инициализируйте его адресный режим
Начало LCD (16, 2);
}
Неверный цикл () {
/ / Прочитайте измерения расстояния датчика LDR и обновите глобальную переменную « Расстояние»
Расстояние = аналоговое чтение (A0); / Используйте функцию analogRead () для получения исходного значения из вывода A0 (аналогового ввода)
Плавающее напряжение = отображение (расстояние, 01023, 0,5); / Используйте функцию map () для масштабирования диапазона напряжений [0 - 1023] до [0 - 5V]
Расстояние = (напряжение * Vcc) / R COUNTS; / / Преобразование напряжения в реальное расстояние с использованием коэффициента масштабирования VCC и константы сопротивления R COUNTS
Коэффициент плавучести = расстояние / максимальное расстояние; / Используйте константу maxDistance, которая будет определена позже в коде, чтобы нормализовать расстояние, чтобы соответствовать диапазону [0]
/ / Обновление LCD - экрана в зависимости от настроек пользователя с использованием текущего местоположения лазерного индикатора и результатов измерений в дюймах или сантиметрах
if (use millimes) {/ / Если используется метр в качестве единицы, используйте коэффициент преобразования cmPerMeter = 100cm / m = (100 * 100) / (maxDistance * maxDistance) = (10 ^ 6) / (max distance * max distance) = (1 / max distance) ^ 6 для преобразования расстояния в сантиметр, где maxDistance определяется позже в коде.
x = (int) (отношение * ширина); / Использование коэффициента для вычисления нового X - положения лазерного индикатора на LCD - экране
y = высота + (целое число) ((1 - отношение) * высота); / / Используйте соотношение для вычисления нового y - положения лазерного индикатора на LCD - экране
lcd.setCursor (x, y); / Обновить расположение курсора на экране LCD
lcd.print ("Расстояние:"); / Печать измерения расстояния на LCD - экране
Печать LCD (расстояние);
lcd печать ("cm"); / Печатать символ единицы на экране LCD ("cm")
lcd.print ("= \");
lcd.print ("Х: \");
Печать LCD (x);
lcd.print ("= \");
lcd печать ("Y: \");
Печать LCD (y);
В противном случае if (use centimeters) {/ / если используется сантиметр в качестве единицы, используйте коэффициент преобразования inch для преобразования расстояния в дюйм PerCentimeter = 1 / 2.54 = (1 / 25,4) * 100 см / м = (1 / 254) * 100 / maxDistance, который maxDistance определяет позже в коде
x = (int) (отношение * ширина); / Использование коэффициента для вычисления нового X - положения лазерного индикатора на LCD - экране
y = высота + (целое число) ((1 - отношение) * высота); / / Используйте соотношение для вычисления нового y - положения лазерного индикатора на LCD - экране
lcd.setCursor (x, y); / Обновить расположение курсора на экране LCD
lcd.print ("Расстояние:"); / Печать измерения расстояния на LCD - экране
Печать LCD (расстояние);
lcd.print ("дюйм"); / Печать символа единицы на экране LCD (« дюйм»)
lcd.print ("= \");
lcd.print ("Х:");
Печать LCD (x);
lcd.print ("= \");
lcd печать ("Y: \");
Печать LCD (y);
}
}
```