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.

[ATmega32][BASCOM][HC-SR04] - Pomiar odległości sonar HC-SR04

dumel111 20 Sie 2013 22:25 2793 4
  • #1 20 Sie 2013 22:25
    dumel111
    Poziom 17  

    Witam

    Od dłuższego czasu męczę się z napisaniem prostego programu obsługującego sonar HC-SR04. Napisałem taki prosty program:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Nie wiedzieć czemu, na lcd cały czas wyświetla się 0. Zamieszczam datasheet tego modułu:

    http://www.micropik.com/PDF/HCSR04.pdf

    Pozdrawiam

    0 4
  • Pomocny post
    #2 21 Sie 2013 06:26
    emarcus
    Poziom 35  

    dumel111 napisał:
    Witam

    Od dłuższego czasu męczę się z napisaniem prostego programu obsługującego sonar HC-SR04.

    Nie wiedzieć czemu, na lcd cały czas wyświetla się 0.



    Wyeliminuj:
    Bitwait Echo_ , Set
    ....a także nie ma potrzeby podciągania portu wejściowego PC.0. Jest on stale podłączony do SR04 (Echo Pulse), gdzie zawsze jest określony stan lolgiczny.

    Również zamiast trigger możesz zastosowac 'pulseout;

    e marcus

    0
  • #3 21 Sie 2013 10:41
    dumel111
    Poziom 17  

    Rzeczywiście, z zaremowaną funkcją bitwait zmienna W przybiera wartości. Nie mam pojęcia dlaczego.

    0
  • Pomocny post
    #4 21 Sie 2013 14:28
    emarcus
    Poziom 35  

    dumel111 napisał:
    Rzeczywiście, z zaremowaną funkcją bitwait zmienna W przybiera wartości. Nie mam pojęcia dlaczego.


    Musisz tu zrozumiec mechanizm pomiaru długości trwania impulsu w instrukcji "PULSEIN": patrz 'Bascom help'

    Pulsein W , Pinc , 0 , 1
    W tym konktetnym przypadku pomiar czasu dokonywany jest pomiędzy zboczami, z których pierwsze jest rosnące a drugie opadające.
    Aby 'wyłapac' zbocze rosnące stan portu musi byc niski (0).
    Zasosowanie Bitwait w tym przypadku miałoby sens dla upewnienia się że faktycznie PORTC.0 przed pomiarem jest w stanie niskikm; a zatem byłoby:
    Bitwait Pinc.0 , Reset
    co w zasadzie nie jest potrzebne bo inne stany tam na tym pinie (Echo) nie wystąpią.

    e marcus

    0
  • #5 21 Sie 2013 18:31
    dumel111
    Poziom 17  

    Bardzo dziękuję za pomoc ! Pozdrawiam

    0