Skocz do zawartości

Problem przy odczycie odległości za pomocą HC-SR04.


Pomocna odpowiedź

Napisano

Witam zakupiłem czujnik odległości jak w temacie. Przy podłączeniu go i próbie odczytu odległości w monitorze zaczęło wyskakiwać coś takiego:

0 cm

0 cm

0 cm

139 cm

139 cm

0 cm

0 cm

0 cm

193 cm

0 cm

0 cm

Dodam że czujnik był cały czas w tej samej odległości od ściany. Po resecie zaczął pokazywać:

-2147483648 cm

-2147483648 cm

-2147483648 cm

-2147483648 cm

-2147483648 cm

-2147483648 cm

-2147483648 cm

2147483648 cm

-2147483648 cm

-2147483648 cm

-2147483648 cm

Kod :

int trigPin = 13;

int echoPin = 12;

void setup() {

Serial.begin (9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

}

void odleglosc() {

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

Serial.print(distance);

Serial.println(" cm");

delay(20);

}

[ Dodano: 16-11-2016, 18:17 ]

Wgrałem jeszcze raz program ale bez podłączone czujnika :

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm…á0 cm

0 cm

0 cm

0ţcm

°ţ0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 ě0 cm

0 cm

0 cm

0 cm

0 cm†á0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

10010101111000110000100 cm

�ţcm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

0 ±Ű0 cm

0 cm

0 cm

0 cm

0 cm

0 cm

10100101 cm

__________

Komentarz dodany przez: Treker

Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum.

Program pisany z wykorzystaniem Arduino składa się z dwóch głównych funkcji: setup i loop. Tej drugiej nie widzę w Twoim programie. Może wstawisz faktyczną wersję programu który kompilujesz?

Witam.

U mnie na Arduino Uno program działa poprawnie (oczywiście po zmianie odleglosc() na loop()). Śmieci w monitorze szeregowym mogą wskazywać na jakieś problmy w komunikacji. Jaką masz płytkę i ustawienia prędkości transmisji w monitorze szeregowym? nie pomyliłeś trig i echo? Napięcia są OK? Coś jeszcze podłączasz poza odległościomierzem?

Pozdrawiam

  • 9 miesiące później...

Witam.

Ja również mam problem ze swoim czujnikiem odległości.

składnia programu jest mniej więcej taka sama jak u kolegi wyżej, jednak czujnik będąc zamontowany w poziomie (generator i odbiornik sygnału są skierowane do ziemi - działa jako czujnik wysokości) pokazuje liczby z zakresu 3299-3200, a czujnik wisi jakoś 130-150cm nad ziemią.

Może to być spowodowane uszkodzeniem samego czujnika?

Sajmonn, witam na forum 🙂 A czy coś się dzieje, gdy zmieniasz dystans, czy cały czas pojawiają się odczyty z tego zakresu?

Już po problemie.

Czujnik ma działać jako miernik odległości sterujący podwoziem i oświetleniem lądowania w szybowcu, więc był testowany w poziomie. Okazało się, że wszelkie grube materiały, jak np. dywany i obicia mebli nad którymi był zawieszony model, bardzo rozpraszają sygnał przez co czujnik wariował.

Po ustawieniu modelu w pionie (czujnik prostopadle do betonowej ściany) wszystko działa idealnie.

Sajmonn, a racja, racja, warto o tym pamiętać - szczególnie wszystkie "puchate" materiały dobrze tłumią ultradźwięki 🙂

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...