Skocz do zawartości

Uruchomienie czujnika odległości URM37 V4.0


Pomocna odpowiedź

Napisano

Witam mój ultradźwiękowy czujnik odległości jest nieco inny i musiałem go też nieco inaczej zaprogramować aby działał.

#define URECHO  3
#define URTRIG  5

unsigned int DistanceMeasured = 0;

void setup() {
  Serial.begin(9600);
  
  pinMode(URTRIG, OUTPUT);
  digitalWrite(URTRIG, HIGH);

  pinMode(URECHO, INPUT);

  delay(500);
}

void loop() {
  bool stan = false;
  
  if (odleglosc() >= 400){
    stan = false;
  }
  else {
    stan = true;
  }
   if(odleglosc() <= 400 && stan == true) {
    Serial.println(odleglosc());
  }
  delay(100);
  
}

int odleglosc() {
    digitalWrite(URTRIG, LOW);
    digitalWrite(URTRIG, HIGH);
    unsigned long LowLevelTime = pulseIn(URECHO, LOW);

    return LowLevelTime / 50;
  }
    

Dałem tutaj fragment który jak mi się wydaje powinien chronić przed tymi nagłymi i znacznymi skokami wartości, dałem limit na 4 metry, jednak po prostu nie działa, nie wiem czy to wina kodu czy czujnika. Będę wdzięczny za pomoc 🙂

W związku z tym, że problem dotyczy sprzętu, który nie jest częścią zestawów do naszych kursów to pytanie wydzieliłem do osobnego tematu, aby nie wprowadzać innych w błąd. Posty zostały wydzielone z: https://forbot.pl/forum/topic/8940-kurs-arduino-10-wykresy-liczby-losowe-warunki-cd/

@solowkidamian niestety w elektronice tak to bywa, że jeden czujnik innemu nie równy i nie możesz ich po prostu podmieniać w ciemno licząc, że wszystko będzie działało tak samo. Zerknij na stronę producenta Twojego czujnika. Znajdziesz tam wyjątkowo obszerny opis wykorzystania Twojej wersji dalmierza: https://wiki.dfrobot.com/URM37_V5.0_Ultrasonic_Sensor_SKU_SEN0001_

W tym miejscu znajdziesz też osobną bibliotekę dedykowaną do komunikacji z tym czujnikiem: https://github.com/milesburton/URM37

 

  • Lubię! 1

@Treker wiem sprawdzałem już opis czujnika wiem że można nim mierzyć dystans na różne sposoby ja wybrałem pierwszy opisany. Nie wiem do czego maja być te biblioteki w tym pierwszym sposobie nie ma żadnych bibliotek więc sobie to daruje. Ja chciałem się tylko zapytać czy to co napisałem powinno chronić przed takimi skokami które powodują że wykres jest nieczytelny.

2 godziny temu, solowkidamian napisał:

@Treker Ja chciałem się tylko zapytać czy to co napisałem powinno chronić przed takimi skokami które powodują że wykres jest nieczytelny.

Nie...tzn. wyswietlasz tylko wtedy jeżeli dystans mniejszy niż 400cm...ale jako tako filtra tutaj nie ma i jeżeli będziesz miał "szpilki" w zakresie 0-400cm to będą one widocznie...najlepiej zrobić kilka (np 10) pomiarów, sumować i podzielić przez 10 i wynik poeinien być stabilniejszy... można też pokusić się o "pseudo filtr"...tzn robisz pomiar powiedzmy co 5ms..robisz ich 10 i każdy kolejny porownujesz z poprzednim, jeśli różnią się o zbyt duża wartość to znaczy że właśnie miałeś "szpilkę" i ten pomiar jest bezuzyteczny/zakłamany i go nie bierzesz pod uwagę...😉

  • Pomogłeś! 1

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