Использование локатора HC SR04
При использовании сонарного модуля HC SR04 рекомендуется использовать библиотеку multi-function shield library для считывания и вычисления значений расстояния, если прерывания включены. Причина этого в том, что подпрограмма обслуживания прерываний библиотеки влияет на требования к синхронизации этого модуля сонара, и поэтому библиотека компенсирует это. Библиотека также предлагает три уровня фильтрации для сглаживания показаний от модуля сонара. Триггер и эхо-штыри модуля сонара подключены к контактам 5 и 6 Arduino соответственно.
Описание выводов HC SR04
1 — Vcc Питание
2 — Trig Вход подачи строба запуска
3 — Echo Вывод для получения ответного импульса
4 — GND Земля.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //подключаем необходимые библиотеки #include <TimerOne.h> #include <Wire.h> #include <MultiFuncShield.h> const int TrigPin = 5; //Trig подключен к D5 const int EchoPin = 6; //Echo подключен к D6 void setup() { pinMode(TrigPin, OUTPUT); // триггер - выходной пин pinMode(EchoPin, INPUT); // эхо - входной Timer1.initialize(); //инициализация таймера MFS.initialize(&Timer1); // инициализация multi-function shield library // Инициализация с использованием фильтра нижних частот: SMOOTHING_NONE, SMOOTHING_MODERATE or SMOOTHING_STRONG MFS.initSonar(SMOOTHING_MODERATE); } void loop() { MFS.write((int)MFS.getSonarDataCm(TrigPin, EchoPin)); //выводим данные непосредсвенно в дисплей delay(100); //пауза 100 мс } |
Библиотеки:
MultiFuncShield.h — https://yadi.sk/d/_d1fxqtb3Qwz3B
TimerOne.h — https://github.com/PaulStoffregen/TimerOne