В тази статия ще свържем сонара за ултразвуков далекомер HC-SR04 към Arduino.
Необходимо
- - Arduino;
- - ултразвуков сензор HC-SR04;
- - свързващи проводници.
Инструкции
Етап 1
Действието на ултразвуковия далекомер HC-SR04 се основава на принципа на ехолокация. Той излъчва звукови импулси в пространството и получава сигнал, отражен от препятствие. Разстоянието до обекта се определя от времето на разпространение на звуковата вълна до препятствието и обратно.
Звуковата вълна се задейства чрез прилагане на положителен импулс от поне 10 микросекунди към TRIG крака на далекомера. Веднага след като импулсът свърши, далекомерът излъчва поредица от звукови импулси с честота 40 kHz в пространството пред него. В същото време се стартира алгоритъмът за определяне на времето на закъснение на отразения сигнал и на крака на ECHO на далекомера се появява логическа единица. Веднага щом сензорът открие отразения сигнал, на щифта ECHO се появява логическа нула. Продължителността на този сигнал („Ехо забавяне“на фигурата) определя разстоянието до обекта.
Диапазон на измерване на разстояние на далекомер HC-SR04 - до 4 метра с резолюция 0,3 см. Ъгъл на наблюдение - 30 градуса, ефективен ъгъл - 15 градуса. Консумацията на ток в режим на готовност е 2 mA, по време на работа - 15 mA.
Стъпка 2
Захранването на ултразвуковия далекомер се извършва с напрежение +5 V. Останалите два щифта са свързани към всякакви цифрови портове на Arduino, ние ще се свържем към 11 и 12.
Стъпка 3
Сега нека напишем скица, която определя разстоянието до препятствието и го извежда към серийния порт. Първо, задаваме номерата на щифтовете TRIG и ECHO - това са щифтове 12 и 11. След това декларираме спусъка като изход, а ехото като вход. Инициализираме серийния порт при 9600 бода. При всяко повторение на цикъла () четем разстоянието и го извеждаме към порта.
Функцията getEchoTiming () генерира пусков импулс. Той просто създава ток от 10 микросекунди импулс, който е спусък за започване на излъчване от далекомера на звуков пакет в космоса. Тогава тя си спомня времето от началото на предаването на звуковата вълна до пристигането на ехото.
Функцията getDistance () изчислява разстоянието до обекта. От училищния курс по физика помним, че разстоянието е равно на скорост, умножена по време: S = V * t. Скоростта на звука във въздуха е 340 m / s, времето в микросекунди, което познаваме, е "duratuion". За да получите времето в секунди, разделете на 1 000 000. Тъй като звукът изминава два пъти разстоянието - до обекта и обратно - трябва да разделите разстоянието наполовина. Така се оказва, че разстоянието до обекта S = 34000 cm / sec * продължителност / 1.000.000 sec / 2 = 1.7 cm / sec / 100, което написахме в скицата. Микроконтролерът извършва умножение по-бързо от деление, затова замених "/ 100" с еквивалента "* 0, 01".
Стъпка 4
Също така са написани много библиотеки за работа с ултразвуков далекомер. Например този: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Библиотеката се инсталира по стандартен начин: изтеглете, разархивирайте в директорията на библиотеките, която се намира в папката с IDE на Arduino. След това библиотеката може да се използва.
След като инсталирахме библиотеката, нека напишем нова скица. Резултатът от работата му е същият - мониторът на серийния порт показва разстоянието до обекта в сантиметри. Ако напишете float dist_cm = ultrasonic. Ranging (INC); в скицата, разстоянието ще се покаже в инчове.
Стъпка 5
И така, свързахме ултразвуковия далекомер HC-SR04 към Arduino и получихме данни от него по два различни начина: с помощта на специална библиотека и без.
Предимството на използването на библиотеката е, че количеството код е значително намалено и четливостта на програмата е подобрена, не е нужно да задълбавате в тънкостите на устройството и можете веднага да го използвате. Но това е и недостатъкът: вие разбирате по-добре как работи устройството и какви процеси протичат в него. Във всеки случай кой метод да използвате зависи от вас.