Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega8A + Czujnik HC-SR04 -

Elektronowy Mateusz 12 Sty 2018 13:03 348 3
  • #1 12 Sty 2018 13:03
    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: vbnet
    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.

    0 3
  • #2 12 Sty 2018 13:51
    chudybyk
    Poziom 27  

    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ć.

    0
  • #3 12 Sty 2018 14:09
    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.

    0
  • #4 13 Sty 2018 14:36
    chudybyk
    Poziom 27  

    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.

    0