цифровая электроника
вычислительная техника
встраиваемые системы

 

Измеритель роста на Arduino своими руками

Автор: Mike(admin) от 15-05-2020, 03:35

Устройство для бесконтактного измерения роста человека на основе Arduino


Если у вас есть дети, которые любят измерять свой рост каждый день, и вам неохота заниматься этим вручную, прикладывая линейку к стенке на уровне головы, то вам может помочь приведенное в данном проекте устройство на основе Arduino, которое позволит автоматизировать измерение роста.


Измеритель роста на Arduino своими руками

Это устройство очень просто в сборке и состоит только из нескольких компонентов:


  • Arduino Nano
  • Ультразвуковой датчик HC SR04
  • ЖК дисплей
  • Зуммер
  • Аккумулятор или батарейки

Теперь давайте объясним, как оно работает. После сборки и программирования необходимо установить устройство с помощью двухстороннего клея на определенной высоте, которая предварительно определена в коде и обозначена буквой H на картинке.


Измеритель роста на Arduino своими руками

Когда кто-то встает под устройством, датчик измеряет расстояние D. Затем код вычисляет расстояние H-D, которое фактически представляет собой рост человека под устройством H1, и отображает это значение на ЖК-дисплее. Библиотека «LcdBarGraph» помогает нарисовать горизонтальную гистограмму, где длина полосы пропорциональна предоставленным значениям. Когда под устройством никого нет, рассчитанное значение равно нулю, потому что в этом случае H = D, и H-D равно нулю. Устройство монтируется в подходящую коробку с ЖК-дисплеем спереди и ультразвуковым датчиком внизу.


Схема подключения электронных компонентов измерителя роста следующая.


Измеритель роста на Arduino своими руками

Код программы измерителя роста на 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); // Создает объект LCD Bargraph

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() 
{
  // Записать импульс на вывод триггера HC-SR04
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Измерить ответ от эхо-контакта HC-SR04
  duration = pulseIn(echoPin, HIGH);
  
  // Определить расстояние в зависимости от продолжительности
  // Используем скорость звука 343 метра в секунду
  distance= duration*0.034/2;
  distance1= 180 - distance ;
  // Вывести «Расстояние: <значение>» в первой строке ЖК-дисплея

  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);
}



© digitrode.ru


Теги: Arduino




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий