Самодельный измеритель роста на Arduino — точно и просто
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino Nano R3 | 1 |
| Ультразвуковой датчик HC-SR04 | 1 |
| Алфавитно-цифровой LCD 16×2 | 1 |
| Подстроечный резистор 10 кОм | 1 |
Инструменты
- Паяльник
Программное обеспечение
- Arduino IDE
О проекте
Идея пришла, когда автор заметил, что дети измеряют свой рост каждый день. Устройство позволяет узнать рост: достаточно встать под ним — звуковой сигнал подтвердит измерение.
Сборка очень проста, компонентов минимум:
- Arduino Nano
- HC-SR04
- LCD-дисплей
- Пьезо-зуммер
- Батарея
Принцип работы
- Устройство устанавливается на заранее известной высоте H (двухсторонним скотчем). Высота задана в коде.
- Когда человек встаёт под прибор, датчик измеряет расстояние D до головы.
- Код вычисляет H − D — это и есть рост человека H1. Значение выводится на LCD.
- Библиотека
LcdBarGraphрисует горизонтальную шкалу, длина полосы пропорциональна росту. - Если никого нет под прибором, H = D, разность = 0.
Устройство помещено в корпус: LCD спереди, ультразвуковой датчик снизу. Библиотеки, код и схема приведены ниже.
Код (Arduino)
#include <LiquidCrystal.h>
#include <LcdBarGraph.h>
#define max_distance 200
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LcdBarGraph lbg(&lcd, 16, 0, 1);
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;
int distance1;
int speakerPin = 8;
void setup() {
lcd.begin(16, 2);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
distance1 = 180 - distance; // H = 180 см (высота установки)
if (distance1 > 100) {
tone(speakerPin, 1000);
} else {
noTone(speakerPin);
}
lcd.setCursor(0, 0);
lcd.print("HEIGHT: ");
lcd.print(distance1);
lcd.print(" cm ");
lcd.setCursor(0, 1);
lbg.drawValue(distance1, max_distance);
delay(500);
}
Библиотеки
LiquidCrystal.h(стандартная)LcdBarGraph.h(скачивается отдельно)
Схема
Производственный процесс
- Сборка домашней машины для написания домашних заданий (плоттер-писатель)
- Умный вольтметр на Arduino и смартфоне — простое DIY-проект
- Сборка DIY VR-скейтборда на Arduino, Google Cardboard и Bluetooth
- Сборка точного измерительного колеса на Arduino Nano и вращательном энкодере
- DIY Arduino Radionics EMR Treatment Device — радионическое устройство
- Измерение солнечной радиации на Arduino UNO с Ethernet Shield
- Построение полнофункционального станка с ЧПУ на базе Arduino Nano R3
- DIY 2D гоночный симулятор движения на Arduino Nano и сервоприводах SG90
- Построение универсального станка с ЧПУ — полное руководство DIY
- Создание портативного RFID-замка на Arduino — пошаговое руководство