Ултразвуков Разстояние мерител HC-sr04 - skhemopediya

По повод Купих си ултразвуков далекомер HC-SR04. Устройството се състои от модул с два pezoizluchatelyami, един от които служи като емитер, а втората - на ултразвукови вълни приемника; Плюс електроника за управление на контрола на предавателя и приемника. За свързване на модула има 4-пинов конектор, два от които (не се изисква 5 волта) мощност, и още два за комуникация с микроконтролера.

Ултразвуков Разстояние мерител HC-sr04 - skhemopediya

Комуникационният интерфейс е организиран тук е много проста: входът е къси umpuls продължителност 10-15 микросекунди и напред изходните импулси. След като приемника идва на отразената вълна, самия модул на разстояние изчислява и показва крака Echo високо равнище, продължителността на импулса от 25 милисекунди. Дължина на импулсен изход е пропорционална на разстоянието до препятствието, от която отразява ултразвукови вълни. Ние просто ще трябва да хване този импулс, изчисли дължината и превежда тази стойност в далечината.

  • Захранващо напрежение: 5V
  • Неподвижните момента: <2 мА
  • Ефективен зрителен ъгъл: <15 °
  • Разстояние диапазон: 2 см - 500 см
  • Разделителна способност: 0,3 см

Особености potyrili с документация за модула. Освен производител води формула, чрез която да се изчисли разстоянието в зависимост от продължителността на импулса.

S = F / 58; където S - разстоянието в сантиметри, F - дължина на импулса в микросекунди

Както се вижда, дори и да се знае, не се изисква от скоростта на звука.

За изпитванията, събрали тук тази схема:

Ултразвуков Разстояние мерител HC-sr04 - skhemopediya

Модулът е свързан към микроконтролера директно. скоби, поставени резистори не е нужно да те вече имат по модула.

И така, ние трябва да се хване само един импулс, а след това се изчисли дължината. Отначало исках да линия за този случай един от най-външно прекъсване на микроконтролера, прекъсването е трябвало да възникне както при нарастващ фронт (преход от ниско до високо състояние) и падащ фронт (от висока към ниска). Т.е. трябва в движение да променят конфигурацията на това прекъсване. В допълнение към това, което трябва да използвате един от таймерите, които трябва да се измери дължината на импулса. Твърде сложно за една малка стъпка определи сигнала. В Bascom-AVR в този случай има специален екип Pulsein. Ето един пример за това как да приемат сигнал с тази команда:

Pulsein А. Pind. 5. 1

Тук променливата А е писано в стойността на пулса дължина в десетки микросекунди. Pind.5 прострелян с краката си. Устройството в края на отбора заяви, че необходимостта да се хване сигнал на високо равнище. Ако промяната на 0, тогава контролерът ще хване нискочестотния сигнал ниво.

Тази команда се използва за прекъсване и таймера на хардуер, но е в състояние да определи появата на продължителността на импулса и го фиксирайте с разделителна способност от 10 микросекунди. Командата използва дължина на импулса за съхраняване променлива тип 2 байта, така че максималната дължина на приетия сигнал може да бъде 655.35 MS. Това е достатъчно за изпълнение на задачата, но можете да редактирате библиотека файл, mcs.lib и промяна на максимума, определен от пулса.

Пълният списък на програмата е показано по-долу

"Конфигурация на портове за свързване на дисплея MK

ConfigLcd = 16 * 2

Конфигуриране Portd.4 = изход "изход за свързване на крака Trigger

Trigger Alias ​​Portd.4

Config Portd.5 = Input "вход да пулсира Echo

Конфигуриране Portd.7 = изход "конфигурация за свързване на LED

Led Alias ​​Portd.7

Дим А AsWord "дължина сигнал тук копирани стойност

Дим променлива S AsSingle "за съхранение на разстоянието

Строителство К = 0,1725 "фактор за превръщане дължина разстояние импулс

Lcd "Sonar HC-SR04"