logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega8A + Czujnik HC-SR04 - Błędne wyniki pomiarów odległości, jak to naprawić?

Elektronowy Mateusz 12 Sty 2018 13:03 609 3
REKLAMA
  • #1 16954672
    Elektronowy Mateusz
    Poziom 2  
    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:

    Kod: VB.net
    Zaloguj się, aby zobaczyć 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.
  • REKLAMA
  • #2 16954769
    chudybyk
    Poziom 31  
    Elektronowy Mateusz napisał:
    1. Podzielić szerokość impulsu w us przez 58
    2. Obliczyć: Czas trwania stanu wysokiego*prędkość dźwięku/2

    punkt 1 Tak.
    punkt 2 Nie.
    Karta katalogowa mówi, że dzieląc impuls w mikrosekundach przez 58 mamy gotowy wynik w centymetrach. Nic więcej nie trzeba liczyć.
  • REKLAMA
  • #3 16954802
    Elektronowy Mateusz
    Poziom 2  
    No to jeśli nawet pomijając punkt 2 i licząc wg punktu 1, wciąż nie działa. Jeśli dzielę przez 2,44 (albo mnożę przez ok. 0,41) to jest wszystko dobrze. Stosując prawidłowe przeliczenie dla impuls us/58 w żaden sposób nie dostaję dobrego wyniku.
  • #4 16957147
    chudybyk
    Poziom 31  
    Pozostaje sprawdzić oscyloskopem lub analizatorem logicznym jaki jest rzeczywisty czas impulsu.
    Osobiście stawiałbym na to, że czujnik jest ok. Problem może być z częstotliwością pracy uP, albo działaniem funkcji Pulsein. Nie mam doświadczenia z Bascomem, ale i tak nie mam zaufania do wbudowanych funkcji bibliotecznych takich środowisk.
REKLAMA