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

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



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

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

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


#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. Иван_Похмельев
    Цитата: Антон Мартьянов
    На самом деле они отличаются не только надписью но и точностью!

    По документации или Вам такой попался?

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


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

А затем...

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

Или...

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

Онлайн чат

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

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

Удобно: прижал электроды - нажал кнопку. Но правильно поставить таймер на время подачи напряжения и запускать его от кнопки....
Насчёт иммунитета к ГМО. Умненькие дяденьки и одна тётенька из телевизора (доктора наук, профессора, между прочим) проводили испытания на мышках (ГМО-шную сою в еду добавляли, живодёры!). Говорят...
Хорошо хоть интернет у меня через 4G-модем более-менее сносный!...
Подобное размещение микрика встречается часто, видел даже автомат защиты там где надо и последовательно с ним микрик у рабочей зоны. Хотелось бы понять причину. А насчёт предвзятости Гостя, может я и...
За работу лайк! А рыбкам нравится? Они ведь тропические, им надо 12 часов - день, 12 - ночь....
Все комментарии