Wpis z mikrobloga

#programowanie #problem #pytaniedoeksperta #elektronika

Zrobiłem sobie prosty układzik z mikroprocesorem i czujnikiem odległości i chcę żeby zwiększał mi zmienną, gdy coś zobaczy. Ale gdy widzi coś przez np. 5 sekund to zwiększy mi tą zmienną ileś tam razy zamiast zwiększyć tylko raz. Nie mam pomysłu jak to zrobić, by traktował to jako jedna przeszkoda.
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@karololo: Zrób zmienną która będzie przyjowała jakąś wartość w chwili pojawienia się przedmiotu i będziesz ją zerować jak przy sprawdzaniu nic nie znajdzie.
  • Odpowiedz
@karololo: Zapisuj wartość czujnika do innej zmiennej i porównuj z kolejnymi odczytami. Jeśli wartość czujnika się powtarza, to jest to ten sam przedmiot i nie musisz zwiększać swojej zmiennej.

Chyba, że ruszasz tym układem, to wtedy byś musiał jeszcze informować o tym, że się poruszasz i odpowiednio tę swoją wartość modyfikować (dając jakieś 10-20% błędu przy sprawdzaniu).
  • Odpowiedz
@karololo: A. W ten sposób. No to i tak podobnie. Dodatkowa zmienna, w której zapisujesz poprzedni stan czujnika. Jeśli widział wcześniej i teraz też widzi, to nie zwiększasz swojej zmiennej. Jeżeli przy poprzednim sprawdzeniu nie widział, a teraz coś widzi, to zwiększasz swoją zmienną.
  • Odpowiedz
@karololo: zrób sobie flage, która będzie ustawiana, gdy czujnik cośtam wychwyci, a zerowana wtedy, gdy przestanie wychwytywać. I wraz ze zmianą flagi inkrementuj swoją zmienną. Czyli: czujnik coś wychwyca - sprawdzasz stan flagi - jest 0 , czyli inkrementujesz zmienna i ustawiasz flage na 1. Czujnik w kolejnym sprawdzeniu wykrywa dalej, ale flaga jest ustawiona na 1 - nie inkrementujesz zmiennej. Dopiero, gdy czujnik przestanie cokolwiek wykrywać, to zerujesz flagę
  • Odpowiedz