» » » Очень точный ультразвуковой дальномер

Очень точный ультразвуковой дальномер



Этот ультразвуковой дальномер HC-SR04 был усовершенствован с помощью датчика температуры LM35.

Ещё со школы можно вспомнить что скорость звука зависит от плотности воздуха, а плотность воздуха зависит от температуры.
Рассчитывать температуру мы будем по этой формуле
temp2 = ( temp/1023.0 )*5.0*1000/10;

Где temp2 это готовое значение температуры после формулы,
А где temp это сырое значение с датчика.

Что нам понадобится:
  • Ультразвуковой дальномер HC-SR04
  • Arduino
  • Макетная плата
  • Перемычки
  • Термистор LM35 (Датчик температуры)


Имейте в виду что HC-SR04 бывает двух видов-
Вот у меня хороший и он стабильно измеряет расстояние.
Они оба измеряют от 4 см до 400 см.
Питаются от 3.3 до 5 v


Начнём с того что смакетируем всё это на макетной плате.

Ультразвуковой датчик:
  • GND - gnd
  • Echo - 3 контакт
  • Trig - 2 контакт
  • Vcc - 5v

Термистор LM35:
  • 1 - 5v
  • 2 - A0
  • 3 - GND

Очень точный ультразвуковой дальномер

Должно получится так:

Далее мы заливаем скетч.
Скачать библиотеку для датчика HC-SR04 -
iarduino_hc-sr04.zip [299.69 Kb] (скачиваний: 102)

Скачать скетч -
sketch_mar23f.zip [338 b] (скачиваний: 85)

#include <iarduino_HC_SR04.h> // подключаем библиотеку для работы с ультразвукового датчика HC-SR04
iarduino_HC_SR04 hcsr(2,3); //  обозначаем контакты Trig и Echo
int temp = 0;  // сырое значение температуры
float temp2 = 0; // готовое значение температуры

void setup() { // запускаем 1 раз
  Serial.begin(9600);  // запускаем монитор порта
  pinMode( A0, INPUT );  // обозначаем контакт А0 как вход
}

void loop() {  // повторяется бесконечное количество раз
  temp = analogRead(A0);  // читаем значение контакта А0 и назначаем ему переменную temp
  temp2 = ( temp/1023.0 )*5.0*1000/10;  // вычисляем сырое значение по формуле чтобы получить готовое значение температуры
  Serial.println(hcsr.distance(temp2));  // пишем готовую дальность в мониторе порта
  delay(1000); // задержка 1 секунда
}

А вот скетч для lcd дисплея-
Скачать скетч -
sketch_mar23f-1.zip [861 b] (скачиваний: 71)


#include <iarduino_HC_SR04.h> // подключаем библиотеку для работы с ультразвукового датчика HC-SR04
#include <LiquidCrystal_I2C.h> //подключаем библиотеку для работы с дисплеем по шине I2C

LiquidCrystal_I2C lcd(0x27, 16, 2); // обозначаем (адрес, столбцы, сторки)
iarduino_HC_SR04 hcsr(2,3); //  обозначаем контакты Trig и Echo

int temp = 0;  // сырое значение температуры
float temp2 = 0; // готовое значение температуры

void setup() { // запускаем 1 раз
  lcd.init(); // инициализируем дисплей
  lcd.backlight(); // включаем подсветку дисплея
  pinMode( A0, INPUT );  // обозначаем контакт А0 как вход
}

void loop() {  // повторяется бесконечное количество раз
  temp = analogRead(A0);  // читаем значение контакта А0 и назначаем ему переменную temp
  temp2 = ( temp/1023.0 )*5.0*1000/10;  // вычисляем сырое значение по формуле чтобы получить готовое значение температуры
  lcd.setCursor(2, 0);  // ставим курсор на 2 столбец и 0 строку
  lcd.print(temp2);  // пишем расстояние
  lcd.setCursor(5,0);// ставим курсор на 5 столбец и 0 строку
  lcd.print("cm");  // пишем см
  delay(1000); // задержка 1 секунда
}


Пишите комментарии и вопросы я на всё отвечу!
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Оцените самоделку по критериям

10
Идея
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
10
Описание
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
10
Исполнение
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Итоговая оценка: 10 из 10 (голосов: 1)
Чтобы написать комментарий необходимо войти на сайт через соц. сети (или зарегистрироваться):
Обычная регистрация
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
12 комментариев
  1. Валерий
    Скажу по собственному опыту, ультразвуковой дальномер, как "бесконтактная рулетка" - баловство!!!
    Валяется один такой за ненадобностью...
    И не по причине недостаточной точности, а потому, что измерять им можно только расстояние до достаточно большой стены из твёрдого материала... А вот до задней стенки ниши в этой стене - ну никак!!! И тоже не получится, если эта стена завалена мебелью и прочим, и есть только небольшое свободное от захламления "окно"... (В таком случае проще не освобождать стену от всего этого, а просто воспользоваться обычной рулеткой).
    Опять же, попробуйте измерить ею расстояние до вбитого в землю колышка!!!

    А до теплицы?)))
    А до стены, завешенной тканью?)))
    А до фасада, уже обклееного плитами минваты, но ещё без конечного покрытия?))))
    А до каждого из десяти расположенных в ряд стропил?
    А от стены до торца уже прибитой к потолку доски, чтобы отрезать необходимую длину и закрыть эту "дырку"???

    Ничего из вышеперечисленного у вас не получится!!!

    А что-же тогда ею измерять при ремонте, или на стройке, к примеру??? Только размеры и площадь помещений, пока свободных от мебели???

    Короче, закинул на полку пару лет назад, и, вспомнив пословицу про "скупого, который дважды платит", решил таки, что покупать нужно лазерную....
    Але нови ностра алис!
  2. Иван_Похмельев
    Очень точный
    И какова точность? Что использовали в качестве эталона? Какова температурная погрешность?
    Имейте в виду что HC-SR04 бывает двух видов-
    Вот у меня хороший
    А какой, по-Вашему, плохой?
    1. Антон Мартьянов Автор
      Плохой это у которого надпись HC-SR04 ниже на 0.5 см
      1. Иван_Похмельев
        А чем он ещё плохой, кроме высоты нанесения маркировки?
        1. Валерий
          А этого разве мало??? boss Мне, например, тоже не нравится, когда маркировку пишут ниже на полсанитиметра!!! smiles dontknow
          Але нови ностра алис!
        2. Антон Мартьянов Автор
          На самом деле они отличаются не только надписью но и точностью!
  3. Иван_Похмельев
    Цитата: Антон Мартьянов
    На самом деле они отличаются не только надписью но и точностью!

    По документации или Вам такой попался?
  4. Алексей Жижин
    Рассматриваю эту самоделку как "детскую", но в статье не показано и не разжёвано как подключать дисплей . Начинающим самоделкиным непонятно, а опытным это не нужно. Разжуй и покажи всю самоделку.
  5. Алексей Жижин
    Полагаю, что самоделка не была реализована, нет фото готового прибора и его работы.
  6. Korolev
    Цитата: "Особенности ультразвукового дальномера HC-SR04
    Диапазон измерения: от 2 см до 400 см.
    Точность измерения: ± 1 см (при максимальной дальности ± 3 см).

    Вопрос: Насколько "весома" температурная корректировка в общей погрешности?
    1. Валерий
      Я так понял (судя по приведённым параметрам), что инструкция к нему выглядит примерно так:
      1. Возьмите в левую руку HC-SR04, а вправую - аторучку, или маркер.
      2. Прикиньте на глазок расстояние и запишите его.
      3. Положите HC-SR04 обратно в коробку.
      ok
      Але нови ностра алис!
      1. Korolev
        Я бы ещё добавил пункт 4. Не использовать для измерений, только для устройств автоматики!

Добрый день, Гость!


Зарегистрируйтесь

Или войдите на сайт, если уже зарегистрированы...

Войти

А затем...

Добавьте самоделку

Или...

Добавьте тему

Онлайн чат

Опрос
Сколько по времени, чаще всего, Вы делаете самоделку?

Последние комментарии

А почему все, молчат про Жидкое стекло?...
Насколько я понял, насос подаёт воду наверх, а уж сверху она льётся самотёком? Тогда это не фонтан, а водопад!...
Точно, приспособить то, что есть - талант истинного самодельщика! А то, подавай ЧПУ, 3D - принтер......
чтоб я так жил )) А-то хотел прицеп сделать, всё приготовил, а потом как подумал, сколько гайцам придётся отстёгивать если не зарегистрировать или чтобы оформить и... купил готовый....
Странный какой-то энкодер. Обычно на один оборот приходится гораздо больше щелчков. И вопрос: чтобы поменять пароль или добавить новый, надо перепрошивать приблуду?...
Все комментарии