Приклад роботи з avr та ультразвуковим датчиком HC-SR04, MainLoop

роботи

Характеристики ультразвукового далекоміра HC-SR04

  • Вимірюваний діапазон: 2 см - 500 см
  • Точність: 0,3 см
  • Кут огляду: Модуль датчика відстані HC-SR04 має 4 висновки:

  • VCC: живлення 5 вольт
  • Trig: вхід тригера, що запускає вимірювання
  • Echo: вихід, на якому генерується імпульс, тривалість якого пропорційна відстані
  • GND: земля

У документації на модуль датчика відстані HC-SR04 зазначено, що для запуску вимірювань на вхід Trig треба подати імпульс тривалістю 10-15 мікросекунд. Після цього на виході Echo з'явиться імпульс тривалістю 150мкс - 25мс. Тривалість цього імпульсу пропорційна відстані до об'єкта, від якого відбився ультразвуковий сигнал. Для того щоб з тривалості сигналу в мікросекундах отримати відстань в сантиметрах використовується формула:

де: T — тривалість сигналу в мікросекундах D — відстань у сантиметрах

Якщо ж відбитий сигнал не дійшов до приймача, то на виході Echo буде імпульс тривалістю 38 мілісекунд папуг,

Приклад використання ультразвукового далекоміра HC-SR04 з мікроконтролером AVR atmega

Опис програми для avr atmega: програма запускає вимірювання, генеруючи імпульс 10 мкс. на виході PD3, з'єднаного із входом Trig. Вихід Echo підключено до PD2, який використовується як зовнішнє переривання. По передньому фронту на PD2 скидаємо в нуль таймер лічильник timer1. За заднім фронтом на PD2 запам'ятовується значення таймера лічильника timer1. Далі отримана довжина імпульсу переводиться в сантиметри і виводиться в uart. Через 1 секунду цикл вимірів повторюється. Так як timer1 налаштований так, що тривалістьтика дорівнює 8.68 мкс (1/(7372800/64)), то використовується перерахований коефіцієнт для переведення в сантиметри 58/8.68 = 6.68, округляємо до 7;

Далі наведено вихідний текст лише основних функцій для avr atmega, повністю вихідники проекту avr-gcc (WinAvr) можна завантажити тут.