Witam
Mam prosty układ z Atmega8A i czujnikiem HC-SR04. uC taktowany fabrycznie 1MHZ. Wszystko niby działa poprawnie - dostaję poprawne pomiary od 2cm do 4m. Problem w tym że nie wiem do końca dlaczego. Z tego co rozumiem żeby otrzymać zmierzoną odległość, należy:
1. Podzielić szerokość impulsu w us przez 58
2. Obliczyć: Czas trwania stanu wysokiego*prędkość dźwięku/2
Jednak licząc w ten sposób dostaję błędne wyniki. Dopiero mnożąc ECHO przez około 0,47 dostaję dobre wyniki i nie mam za bardzo pojęcia dlaczego tak. Poniżej kod:
Próbowałem innych portów, sprawdzałem i zmieniałem kod i połączenia ale dalej stoję w miejscu. Jestem naprawdę początkujący w temacie, więc byłym wdzięczny jeśli ktoś byłby w stanie wskazać jak dojść do tego dlaczego działa to w ten sposób.
Mam prosty układ z Atmega8A i czujnikiem HC-SR04. uC taktowany fabrycznie 1MHZ. Wszystko niby działa poprawnie - dostaję poprawne pomiary od 2cm do 4m. Problem w tym że nie wiem do końca dlaczego. Z tego co rozumiem żeby otrzymać zmierzoną odległość, należy:
1. Podzielić szerokość impulsu w us przez 58
2. Obliczyć: Czas trwania stanu wysokiego*prędkość dźwięku/2
Jednak licząc w ten sposób dostaję błędne wyniki. Dopiero mnożąc ECHO przez około 0,47 dostaję dobre wyniki i nie mam za bardzo pojęcia dlaczego tak. Poniżej kod:
Kod: VB.net
Próbowałem innych portów, sprawdzałem i zmieniałem kod i połączenia ale dalej stoję w miejscu. Jestem naprawdę początkujący w temacie, więc byłym wdzięczny jeśli ktoś byłby w stanie wskazać jak dojść do tego dlaczego działa to w ten sposób.