Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Очень точный ультразвуковой дальномер

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



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

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

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

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


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

    Цветовая палитра с функцией рандом на Arduino

    Часы метеостанция на Arduino

    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 (голосов: 4 / История оценок)

    Товары к самоделкам

    Реклама ООО "АЛИБАБА.КОМ (РУ)" ИНН 7703380158

    Добавить комментарий

    13 комментариев
    Гость Александр #27335
    Откуда берется эта формула:
    temp2 = ( temp/1023.0 )*5.0*1000/10
    Можно поподробней, откуда взяты эти значения?
    Korolev #18385
    Я бы ещё добавил пункт 4. Не использовать для измерений, только для устройств автоматики!
    Валерий #18383
    Я так понял (судя по приведённым параметрам), что инструкция к нему выглядит примерно так:
    1. Возьмите в левую руку HC-SR04, а вправую - аторучку, или маркер.
    2. Прикиньте на глазок расстояние и запишите его.
    3. Положите HC-SR04 обратно в коробку.
    ok
    Але нови ностра алис!
    Korolev #18378
    Цитата: "Особенности ультразвукового дальномера HC-SR04
    Диапазон измерения: от 2 см до 400 см.
    Точность измерения: ± 1 см (при максимальной дальности ± 3 см).

    Вопрос: Насколько "весома" температурная корректировка в общей погрешности?
    Алексей Жижин #18371
    Полагаю, что самоделка не была реализована, нет фото готового прибора и его работы.
    Алексей Жижин #18370
    Рассматриваю эту самоделку как "детскую", но в статье не показано и не разжёвано как подключать дисплей . Начинающим самоделкиным непонятно, а опытным это не нужно. Разжуй и покажи всю самоделку.
    Иван_Похмельев #17056
    Цитата: Антон Мартьянов
    На самом деле они отличаются не только надписью но и точностью!

    По документации или Вам такой попался?
    Антон Мартьянов #17044 Автор
    На самом деле они отличаются не только надписью но и точностью!
    Валерий #17014
    А этого разве мало??? boss Мне, например, тоже не нравится, когда маркировку пишут ниже на полсанитиметра!!! smiles dontknow
    Але нови ностра алис!
    Иван_Похмельев #17006
    А чем он ещё плохой, кроме высоты нанесения маркировки?
    Антон Мартьянов #17004 Автор
    Плохой это у которого надпись HC-SR04 ниже на 0.5 см
    Иван_Похмельев #17000
    Очень точный
    И какова точность? Что использовали в качестве эталона? Какова температурная погрешность?
    Имейте в виду что HC-SR04 бывает двух видов-
    Вот у меня хороший
    А какой, по-Вашему, плохой?
    Валерий #16998
    Скажу по собственному опыту, ультразвуковой дальномер, как "бесконтактная рулетка" - баловство!!!
    Валяется один такой за ненадобностью...
    И не по причине недостаточной точности, а потому, что измерять им можно только расстояние до достаточно большой стены из твёрдого материала... А вот до задней стенки ниши в этой стене - ну никак!!! И тоже не получится, если эта стена завалена мебелью и прочим, и есть только небольшое свободное от захламления "окно"... (В таком случае проще не освобождать стену от всего этого, а просто воспользоваться обычной рулеткой).
    Опять же, попробуйте измерить ею расстояние до вбитого в землю колышка!!!

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

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

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

    Короче, закинул на полку пару лет назад, и, вспомнив пословицу про "скупого, который дважды платит", решил таки, что покупать нужно лазерную....
    Але нови ностра алис!

    Привет, Гость!


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

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

    Войти

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

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

    Онлайн чат

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

    Все комментарии