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

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



Этот ультразвуковой дальномер 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] (скачиваний: 29)

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

#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] (скачиваний: 21)


#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 секунда
}


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

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

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

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

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

    По документации или Вам такой попался?
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

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


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

А затем...

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

Или...

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

Онлайн чат

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

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

Ну все же регулирует напряжение, не поспоришь ведь...
Не понятно зачем с деревом так напрягаться? Автор извращенец прям!Любая пластиковая коробочка бы подошла и с ней возьни меньше, и можно в неё и 2 и 3 юсби входа запилить избегая лишних физических...
Скотч в хозяйстве незаменимая вещь!))...
Полный трэш!! Зачем так извращаться?...
Все комментарии