Skip to content

Rosovskyy/rangeFinder

Repository files navigation

rangeFinder

Запуск

Щоб запустити даний пристрій, ви повинні зробити наступні дії:

  1. Під'єднати дисплей з наступними пінами на STM32Fxxx: RST - PB10, CB - PB14, DC - PB12, Din - PB15, Clk - PB13, Vcc - 5V, Gnd - Gnd
  2. Тепер під'єднюємо наш далекомір HC-SR04: Vcc - 5V, Trig - PD14, Echo - PD15, Gnd - Gnd
  3. Запускаємо даний проект(файл main.c) і пробуємо підставити на певній відстані від далекоміра якийсь предмет/руку і на дисплеї можна побачити відстань від далекоміра до предмета.

Принцип роботи

Далекомір запускає імпульс і коли цей імпульс вдаряється об якусь перешкоду, то він повертається назад. Цей час фіксується. За 1 мс звук пролітає ~ 33см, але це сумарна відстань(туди-назад), тобто відстань до предмета буде 33/2 = 15.5см.

Нетривіальні моменти

Одніє з найважчих моментів - це робити мікросекундні затримки. Щоб вирішити цю проблему, я використав повноцінний таймер. Для цього в STM32CubeMX я сконфігурував TIM10. Налаштувавши різні конфігурації(подільник, період оновлення) можна генерувати проект. Для затримки в мікросекундах була створена функція udelay_asm(useconds), яка приймаю затримку, як аргумент. Також нетривіальним було те, що при різній температурі імпульс рухається швидше/повільніше, тому берему кімнатну температуру(тобто 340 м/c - швидкість звуку при температурі ~21 градус Цельсія). Також було нетривіальним робота з дисплеєм, бо воно завжди виводило поза екраном. Для цього я кожного разу очищаю екран(LCD5110_clear_scr()) та ставлю курсор на координату (0, 0) екрану(LCD5110_set_cursor()).

Фотографія з схемою знаходиться в даному файлі.

License and copyright

© Serhiy Rosovskyy, student of the Ukrainian Catholic University

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages