Програма ултразвуков далекомер hc sr04. Ултразвуков далекомер HC-SR04. Задача за самостоятелно изпълнение

Ще имаш нужда

  • Ардуино;
  • ултразвуков сензор HC-SR04;
  • свързващи проводници.

1 Принцип на действиеултразвуков далекомер HC-SR04

Работата на ултразвуковия далекомер HC-SR04 се основава на принципа на ехолокацията. Той излъчва звукови импулси в пространството и приема сигнала, отразен от препятствието. Разстоянието до обекта се определя от времето на разпространение на звуковата вълна до препятствието и обратно.

Фигура 7: Режим на пресичане на кръстовища. Липсата на серво мотор затруднява завиването. Освен това се избягват завъртанията на автомобила на 180°, тъй като те не могат да се извършат наведнъж, което изисква, както в истинския живот, повече движение. Затова винаги ще правим завои само на 90°. На фигура 7 автомобил навлиза в кръстовище и се опитва да завие наляво. Ултразвуковите сигнали, генерирани от сензорите на машината, ще се разпространяват според представянето. Докато десният сензор достигне перпендикулярно на предната стена, стойностите, получени от него и предния сензор, ще открият по-големи разстояния, отколкото когато завършихме завоя.

Началото на звукова вълна започва с положителен импулс с продължителност най-малко 10 микросекунди на крак TRIGдалекомер. Веднага след като импулсът приключи, далекомерът излъчва в пространството пред себе си пакет от звукови импулси с честота 40 kHz. При това на крака ЕХОдалекомер изглежда логическа единица. Веднага щом сензорът улови отразения сигнал, на щифта ECHO се появява логическа нула. Продължителността на логическата единица на щифта ECHO („Echo Delay“ на фигурата) определя разстоянието до препятствието.

Ако работи с ниска скорост и остане неподвижен, можем да приемем, че оборотът е приключил, когато достигнем минималната стойност за всеки от двата лъча. И накрая, последното нещо, което остава, е как трябва да се държи колата, когато стигне до задънена улица. Не можем да се върнем повече, така че ще направим една снимка и ще се върнем, докато стигнем до пресечката, където бяхме.

Интерфейсът е възможно най-лесен за използване и разширяващ се. Вграденият робот може да се движи през прост лабиринт, базиран на поредица от алгоритми, за да поддържа траектория, да се обръща и да намира изход от лабиринта. Създаването на лабиринт, в който две или повече пресечки са много близо или чиито стени не са съвсем прави, може да доведе до редица проблеми, което прави невъзможно изследването на целия лабиринт или промяната на посоката на ходене, без да се удрят препятствия. Това ограничение се дължи на факта, че използваме само три ултразвукови дистанционни сензора за взаимодействие с външната среда.

Обхватът на измерване на разстоянието HC-SR04 е до 4 метра с резолюция 0,3 см. Ъгълът на наблюдение е 30°, ефективният ъгъл е 15°. Консумация на ток в режим на готовност 2 mA, по време на работа - 15 mA.

2 Електрическа схемасензор за разстояние

Ултразвуковият далекомер се захранва от +5 V. Другите два изхода са свързани към всеки цифров порт на Arduino, ние ще се свържем към 11 и 12.

Жироскопът би бил много полезен при установяването и поддържането на траектория, но би повлиял на общата цена на проекта.





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

По този начин можем лесно да изчислим разстоянието. Накрая погледнете задната част на модула. Всички чипове в модула са закалени, може би авторът иска да предотврати създаването на плагиатство. Не е трудна задача да го кракнете, но е на толкова ниска цена, дори по-евтино от вашето копие.





3 Получаване на разстоянието до обектот сензор HC-SR04

Сега нека напишем скица, която определя разстоянието до препятствието и я извежда към серийния порт. Първо задаваме номерата на пиновете TRIG и ECHO - това са щифтове 12 и 11. След това декларираме тригера като изход, а ехото като вход. Инициализираме серийния порт на 9600 бода. Във всяка итерация на цикъла цикъл ()четем разстоянието и го извеждаме към порта.

Работно напрежение: 5V Статичен ток: по-малко от 2mA. Изходен сигнал: електрически честотен сигнал, високо ниво 5V, ниско ниво 0V. Ъгъл на сензора: не повече от 15 градуса. 5V захранващ модул, изходът ще бъде 5V, докато препятствието е в обхвата, или 0V, ако не. Изходният щифт на този модул се използва като превключващ изход, когато модулът против кражба, и без крака, когато модулите за гама. Забележка: Модулът трябва да се постави във веригата, преди да се включи захранването, за да се избегнат високи нива. грешна работа, и ако не, тогава захранване отново.

Const int trigPin = 12; const int echoPin = 11; void setup()( pinMode(trigPin, ИЗХОД); // тригер - изходен щифт pinMode(echoPin, INPUT); // ехо - вход Serial.begin(9600); // инициализация последна. порт } void loop() (голямо разстояние = getDistance(); // получаваме разстоянието от сензора Serial.println(distance); // изход към серийния порт delay(100); } // Определяне на разстоянието до обекта в cm дълго getDistance() ( long distacne_cm = getEchoTiming() * 1,7 * 0,01; връщане distacne_cm; } // Дефиниране на време на забавяне дълго getEchoTiming() ( digitalWrite(trigPin, LOW); забавяне Микросекунди (2); digitalWrite(trigPin, HIGH); // генериране на задействащ импулс delayMicroseconds(10); digitalWrite(trigPin, LOW); // определяне на продължителността на нивото HIGH на щифта echoPin, ms: дълга продължителност = pulseIn(echoPin, HIGH); продължителност на връщане; }

Свързване на библиотеката iarduino_HC_SR04_int

Модулът автоматично изпраща осем 40 kHz квадратурни вълни и автоматично определя дали да ги приеме. върнат импулсен сигнал. Ако има връщащи се сигнали, извежда високо ниво и времето за високо ниво продължава. време от ултразвуково предаване до приемане.

Когато поръчате сайта, ще получите имейл за потвърждение. След като поръчката ви бъде изпратена, ще бъдете изпратени електронна пощаинформация за проследяване, за да изпратите поръчката си. Можете да изберете предпочитания от вас начин на доставка на страницата с информация за поръчката по време на процеса на плащане. Сайтът предлага четири различни международни метода за доставка.

функция getEchoTiming()генерира стартов импулс. Той просто създава този 10-микросекунден импулс, който е тригер за далекомера да започне да излъчва звуков пакет в космоса. Тогава тя си спомня времето от началото на предаването на звуковата вълна до пристигането на ехото.

функция getDistance()изчислява разстоянието до обекта. От училищния курс по физика си спомняме, че разстоянието е равно на скоростта, умножена по времето: S = V × t Скоростта на звука във въздуха е 340 m / s, знаем времето в микросекунди (променлива продължителност). За да получите време продължителностза секунди, трябва да го разделите на 1 000 000. Тъй като звукът изминава два пъти по-голямо разстояние - до обекта и обратно - също трябва да разделите резултата наполовина. Така се оказва, че разстоянието до обекта S = 34000 см/сек × продължителност / 1 000 000 сек / 2 = 1,7 см/сек / 100,които написахме в скицата.

Доставката от вашия местен склад е много по-бърза. Освен това транзитното време зависи от това къде се намирате и къде се намира вашият пакет. Ако желаете повече информация, моля, свържете се с отдела за обслужване на клиенти. Ние ще разрешим проблема ви възможно най-скоро.

Ако повредата е свързана с екрана, тази ситуация не трябва да се счита за покрита от тази гаранция. Ако желаете този продукт да бъде ремонтиран, моля, върнете го и ние ще го изпратим до нашите сервизни центрове. В този случай вие трябва да носите отговорност за плащането на таксите за обратна доставка и таксите за ремонт. Ако възникнат допълнителни разходи по време на процеса на връщане или ремонт, вие също трябва да носите отговорност за това.

Следователно микроконтролерът извършва операцията умножение по-бързо от операцията деление :100 Замених го с еквивалента ×0,01.

4 Библиотека за работас ехолот HC-SR04

Освен това са написани много библиотеки за работа с ултразвуков далекомер. Например, ето тази ултразвукова библиотека. Библиотеката се инсталира по стандартен начин: изтегляне, разархивиране в директория /библиотеки/, който се намира в папката с Arduino IDE. След това библиотеката може да се използва.

Допълнителен пример за работа

Ще ви изпратим фактура, показваща всички такси, които трябва да платим, преди да ви ги изпратим. Всички гаранционни искове ще бъдат отхвърлени след 180 дни от датата на подаване. Ако продуктът е пристигнал счупен, моля, свържете се с нас в рамките на 3 дни от деня, в който сте го получили, след което следвайте 3-дневната гаранция на продукта.

Ако не сте доволни от покупката си, можете да я върнете в рамките на 3 дни от доставката за възстановяване на сумата за покупката минус таксите за доставка или обмен. Вие ще трябва да заплатите разходите за доставка и в двете посоки, освен ако причината не се дължи на наша грешка. Моля, уверете се, че артикулът е върнат с оригиналната опаковка и в същите условия, в които сте го получили.

След като инсталираме библиотеката, нека напишем нова скица.

#включи // включва ултразвуковата библиотека ultrasonic(12, 11); // Trig - 12, Echo - 11 void setup()( Serial.begin(9600); // инициализация последна. порт } void loop() ( float dist_cm = ultrasonic.Ranging(CM); // разстояние в cm Serial.println(dist_cm); // отпечатване на разстоянието до порта delay(100); }

Резултатът от работата му е същият - разстоянието до обекта в сантиметри се показва на монитора на серийния порт.

Ако в скицата напишете float dist_cm = ultrasonic.Ranging(INC);- разстоянието ще бъде показано в инчове.

5 Заключения от работатасъс сонар HC-SR04

И така, ние се свързахме с Arduino ултразвуков далекомер HC-SR04 и получи данни от него с две различни начини: със и без специална библиотека.

Предимството на използването на библиотеката е, че количеството код е значително намалено и четивността на програмата е подобрена, не е нужно да се задълбочавате в тънкостите на устройството и можете веднага да го използвате. Но това също е недостатък: имате по-лошо разбиране за това как работи устройството и какви процеси протичат в него. Във всеки случай кой метод да използвате зависи от вас.

Ще имаш нужда

  • Ардуино;
  • ултразвуков сензор HC-SR04;
  • свързващи проводници.

1 Принцип на действиеултразвуков далекомер HC-SR04

Работата на ултразвуковия далекомер HC-SR04 се основава на принципа на ехолокацията. Той излъчва звукови импулси в пространството и приема сигнала, отразен от препятствието. Разстоянието до обекта се определя от времето на разпространение на звуковата вълна до препятствието и обратно.

Фигура 7: Режим на пресичане на кръстовища. Липсата на серво мотор затруднява завиването. Също така се избягват завъртанията на колата на 180°, тъй като не могат да се извършат наведнъж и изискват, както в реалния живот, повече движения. Затова винаги ще правим завои само на 90°. На фигура 7 автомобил навлиза в кръстовище и се опитва да завие наляво. Ултразвуковите сигнали, генерирани от сензорите на машината, ще се разпространяват според представянето. Докато десният сензор достигне перпендикулярно на предната стена, стойностите, получени от него и предния сензор, ще открият по-големи разстояния, отколкото когато завършихме завоя.

Началото на звукова вълна започва с положителен импулс с продължителност най-малко 10 микросекунди на крак TRIGдалекомер. Веднага след като импулсът приключи, далекомерът излъчва в пространството пред себе си пакет от звукови импулси с честота 40 kHz. При това на крака ЕХОдалекомер изглежда логическа единица. Веднага щом сензорът улови отразения сигнал, на щифта ECHO се появява логическа нула. Продължителността на логическата единица на щифта ECHO („Echo Delay“ на фигурата) определя разстоянието до препятствието.

Ако работи с ниска скорост и остане неподвижен, можем да приемем, че оборотът е приключил, когато достигнем минималната стойност за всеки от двата лъча. И накрая, последното нещо, което остава, е как трябва да се държи колата, когато стигне до задънена улица. Не можем да се върнем повече, така че ще направим една снимка и ще се върнем, докато стигнем до пресечката, където бяхме.

Интерфейсът е възможно най-лесен за използване и разширяващ се. Вграденият робот може да се движи през прост лабиринт, базиран на поредица от алгоритми, за да поддържа траектория, да се обръща и да намира изход от лабиринта. Създаването на лабиринт, в който две или повече пресечки са много близо или чиито стени не са съвсем прави, може да доведе до редица проблеми, което прави невъзможно изследването на целия лабиринт или промяната на посоката на ходене, без да се удрят препятствия. Това ограничение се дължи на факта, че използваме само три ултразвукови дистанционни сензора за взаимодействие с външната среда.

Обхватът на измерване на разстоянието HC-SR04 е до 4 метра с резолюция 0,3 см. Ъгълът на наблюдение е 30°, ефективният ъгъл е 15°. Консумация на ток в режим на готовност 2 mA, по време на работа - 15 mA.

2 Електрическа схемасензор за разстояние

Ултразвуковият далекомер се захранва от +5 V. Другите два изхода са свързани към всеки цифров порт на Arduino, ние ще се свържем към 11 и 12.

Жироскопът би бил много полезен при установяването и поддържането на траектория, но би повлиял на общата цена на проекта.





По този начин това е много прост интерфейс за управление на контролера. Ако намерите обекта отпред, ехото ще бъде високо и въз основа на различното разстояние ще отнеме различно времетраене на високо ниво.

По този начин можем лесно да изчислим разстоянието. Накрая погледнете задната част на модула. Всички чипове в модула са закалени, може би авторът иска да предотврати създаването на плагиатство. Не е трудна задача да го кракнете, но е на толкова ниска цена, дори по-евтино от вашето копие.





3 Получаване на разстоянието до обектот сензор HC-SR04

Сега нека напишем скица, която определя разстоянието до препятствието и я извежда към серийния порт. Първо задаваме номерата на пиновете TRIG и ECHO - това са щифтове 12 и 11. След това декларираме тригера като изход, а ехото като вход. Инициализираме серийния порт на 9600 бода. Във всяка итерация на цикъла цикъл ()четем разстоянието и го извеждаме към порта.

Работно напрежение: 5V Статичен ток: по-малко от 2mA. Изходен сигнал: електрически честотен сигнал, високо ниво 5V, ниско ниво 0V. Ъгъл на сензора: не повече от 15 градуса. 5V захранващ модул, изходът ще бъде 5V, докато препятствието е в обхвата, или 0V, ако не. Изходният щифт на този модул се използва като превключващ изход, когато модулът против кражба, и без крака, когато модулите за гама. Забележка: Модулът трябва да се постави във веригата, преди да се включи захранването, за да се избегнат високи нива. грешна работа, и ако не, тогава захранване отново.

Const int trigPin = 12; const int echoPin = 11; void setup()( pinMode(trigPin, ИЗХОД); // тригер - изходен щифт pinMode(echoPin, INPUT); // ехо - вход Serial.begin(9600); // инициализация последна. порт } void loop() (голямо разстояние = getDistance(); // получаваме разстоянието от сензора Serial.println(distance); // изход към серийния порт delay(100); } // Определяне на разстоянието до обекта в cm дълго getDistance() ( long distacne_cm = getEchoTiming() * 1,7 * 0,01; връщане distacne_cm; } // Дефиниране на време на забавяне дълго getEchoTiming() ( digitalWrite(trigPin, LOW); забавяне Микросекунди (2); digitalWrite(trigPin, HIGH); // генериране на задействащ импулс delayMicroseconds(10); digitalWrite(trigPin, LOW); // определяне на продължителността на нивото HIGH на щифта echoPin, ms: дълга продължителност = pulseIn(echoPin, HIGH); продължителност на връщане; }

Свързване на библиотеката iarduino_HC_SR04_int

Модулът автоматично изпраща осем 40 kHz квадратурни вълни и автоматично определя дали да ги приеме. върнат импулсен сигнал. Ако има връщащи се сигнали, извежда високо ниво и времето за високо ниво продължава. време от ултразвуково предаване до приемане.

Когато поръчате сайта, ще получите имейл за потвърждение. След като поръчката ви бъде изпратена, информацията за проследяване ще ви бъде изпратена по имейл, за да изпратите поръчката си. Можете да изберете предпочитания от вас начин на доставка на страницата с информация за поръчката по време на процеса на плащане. Сайтът предлага четири различни международни метода за доставка.

функция getEchoTiming()генерира стартов импулс. Той просто създава този 10-микросекунден импулс, който е тригер за далекомера да започне да излъчва звуков пакет в космоса. Тогава тя си спомня времето от началото на предаването на звуковата вълна до пристигането на ехото.

функция getDistance()изчислява разстоянието до обекта. От училищния курс по физика си спомняме, че разстоянието е равно на скоростта, умножена по времето: S = V × t Скоростта на звука във въздуха е 340 m / s, знаем времето в микросекунди (променлива продължителност). За да получите време продължителностза секунди, трябва да го разделите на 1 000 000. Тъй като звукът изминава два пъти по-голямо разстояние - до обекта и обратно - също трябва да разделите резултата наполовина. Така се оказва, че разстоянието до обекта S = 34000 см/сек × продължителност / 1 000 000 сек / 2 = 1,7 см/сек / 100,които написахме в скицата.

Доставката от вашия местен склад е много по-бърза. Освен това транзитното време зависи от това къде се намирате и къде се намира вашият пакет. Ако желаете повече информация, моля, свържете се с отдела за обслужване на клиенти. Ние ще разрешим проблема ви възможно най-скоро.

Ако повредата е свързана с екрана, тази ситуация не трябва да се счита за покрита от тази гаранция. Ако желаете този продукт да бъде ремонтиран, моля, върнете го и ние ще го изпратим до нашите сервизни центрове. В този случай вие трябва да носите отговорност за плащането на таксите за обратна доставка и таксите за ремонт. Ако възникнат допълнителни разходи по време на процеса на връщане или ремонт, вие също трябва да носите отговорност за това.

Следователно микроконтролерът извършва операцията умножение по-бързо от операцията деление :100 Замених го с еквивалента ×0,01.

4 Библиотека за работас ехолот HC-SR04

Освен това са написани много библиотеки за работа с ултразвуков далекомер. Например, ето тази ултразвукова библиотека. Библиотеката се инсталира по стандартен начин: изтегляне, разархивиране в директория /библиотеки/, който се намира в папката Arduino IDE. След това библиотеката може да се използва.

Допълнителен пример за работа

Ще ви изпратим фактура, показваща всички такси, които трябва да платим, преди да ви ги изпратим. Всички гаранционни искове ще бъдат отхвърлени след 180 дни от датата на подаване. Ако продуктът е пристигнал счупен, моля, свържете се с нас в рамките на 3 дни от деня, в който сте го получили, след което следвайте 3-дневната гаранция на продукта.

Ако не сте доволни от покупката си, можете да я върнете в рамките на 3 дни от доставката за възстановяване на сумата за покупката минус таксите за доставка или обмен. Вие ще трябва да заплатите разходите за доставка и в двете посоки, освен ако причината не се дължи на наша грешка. Моля, уверете се, че артикулът е върнат с оригиналната опаковка и в същите условия, в които сте го получили.

След като инсталираме библиотеката, нека напишем нова скица.

#включи // включва ултразвуковата библиотека ultrasonic(12, 11); // Trig - 12, Echo - 11 void setup()( Serial.begin(9600); // инициализация последна. порт } void loop() ( float dist_cm = ultrasonic.Ranging(CM); // разстояние в cm Serial.println(dist_cm); // отпечатване на разстоянието до порта delay(100); }

Резултатът от работата му е същият - разстоянието до обекта в сантиметри се показва на монитора на серийния порт.

Ако в скицата напишете float dist_cm = ultrasonic.Ranging(INC);- разстоянието ще бъде показано в инчове.

5 Заключения от работатасъс сонар HC-SR04

И така, свързахме ултразвуков далекомер HC-SR04 към Arduino и получихме данни от него по два различни начина: използвайки специална библиотека и без.

Предимството на използването на библиотеката е, че количеството код е значително намалено и четивността на програмата е подобрена, не е нужно да се задълбочавате в тънкостите на устройството и можете веднага да го използвате. Но това също е недостатък: имате по-лошо разбиране за това как работи устройството и какви процеси протичат в него. Във всеки случай кой метод да използвате зависи от вас.