На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

Свежие комментарии

  • Traveller
    Где купить? Только ухозаткнутые уже напрочь отключены от жизни и их наркозависимость уже неизлечима.Создан «скучный т...
  • Алексей Демин
    ПриветВ России запустят...
  • Максим Гусев
    горшок для лука лучше бы сделал из видикаВторая жизнь виде...

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



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

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

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

 #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 секунда }
Ссылка на первоисточник

Картина дня

наверх