Skocz do zawartości
Ważne ogłoszenie » Kliknij i sprawdź informacje o nowym forum! Czytaj dalej... ×
dejmieno

STM32F1 czujnik odległości hc sr04. Wyjaśnienie obliczeń.

Recommended Posts

Witam,

Chciałem sprawdzić jak działa czujnik odległości na STM32F1. Wzorowałem się na przykładzie z tej strony https://github.com/avislab/STM32F103/blob/master/Example_Sonar/main.c

Wszystko działa ok jednak nie rozumiem jednego. Chodzi o funkcję sonar_get() o numerze linijki 163.

unsigned int sonar_get() {
unsigned long Sonar;
// 354000 - Sound speed (mm/sec)
// 72000000 - F_CPU
// 16 - Timer Prescaler
// Result = mm
Sonar = (354/2) * (unsigned long)SonarValue / (72000 / 72);
if (Sonar > 4000) Sonar = 4000;
if (Sonar < 20) Sonar = 20;

return (unsigned int)Sonar;
}

Nie rozumiem dlaczego facet dzieli prędkość dźwięku przez 2? Resztę rozumiem wartość SonarValue dzieli przez 1000 dzięki czemu zamienia mikrosekundy na milisekundy. Ale po co to 354/2?

Udostępnij ten post


Link to post
Share on other sites

Bo dźwięk musi dotrzeć do przeszkody i wrócić.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Ehhhh faktycznie :). Kompletnie o tym zapomniałem :). Dzięki wielkie za pomoc :).

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

×