Skocz do zawartości
koksu2400

Mierzenie odległosci czujnikiem HC-SR04 w C

Pomocna odpowiedź

Witam 🙂 Robię robota sumo i jestem zielony jak narazie w programowaniu mikrokontrolerów w C. Ogólnie C znam gdyż pisałem programy komputerowe. Jak sterować takim czujnikiem HC-SR04 bo gdy wyśle sygnał u10 s na port Trig to jak sprawdzić jak długi będzie sygnał powrotny ? Na początku próbowałem znaleźć jakieś biblioteki z funkcjami ale takowych nie ma, a jeżeli jakieś już znalazłem to dla arduino a z niego nie korzystam. Dodam że robię to na atmedze8.

Udostępnij ten post


Link to post
Share on other sites

Jeśli masz kod w Arduino, to masz generalnie kod w C.

Zamień sobie tylko digitalWrite() na ustawianie bitów na odpowiednich portach, a delayMicroseconds na __delay_ms i będziesz w domu.

Udostępnij ten post


Link to post
Share on other sites

a mógłbym zaincludować bibliotekę np Ultrasonic.h z arduino np do eclipsa i zadziałała by ? ;d

Udostępnij ten post


Link to post
Share on other sites

Nie, bo:

1) Arduino to w zasadzie C++, a nie C (chociaż jeżeli biblioteka Ultrasonic korzysta tylko z C, to może przejść),
2) Biblioteka Ultrasonic.h korzysta zapewne z wysokopoziomowych funkcji Wiring (DigitalWrite itp).

Generalnie obsługa takich czujników jest prosta - najprościej zrobić to tak (pseudokod):

int dist;
trigger(); //puszczenie impulsu na pin trigger czujnika
for(dist=0;dist<TIMEOUT;dist++){ //TIMEOUT to 'czas' w mniej-więcej cyklach procesora, po jakim ma przestać czekać, dobrać doświadczalnie
if(echoPin==ODEBRANO){ //nie wiem czy 0 czy 1
break;
} 
}

I po tym kodzie w zmiennej dist powinieneś mieć liczbę odpowiadającą czasowi przelotu fali dźwiękowej. Generalnie ładniej zrobić to na timerach, wtedy procek w tle będzie jeszcze mógł sobie coś robić.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...