Dzień dobry,
Mój program ma za zadanie wyliczanie prędkości przejeżdżającego auta na podstawie przerywania połączeń pomiędzy dwoma nadajnikami i odbiornikami IR. Jednocześnie program ma zliczać ilość przejechanych aut. Urządzenia są podpięte pod Arduino UNO. W LAbVIEW używam LINXa do połączenia z Arduino. Program wykrywa przerwania fali podczerwonej, jednak nie wiem w jaki sposób wyliczyć czas pomiędzy przerwaniem jednej fali i drugiej aby na podstawie tego wyliczyć prędkość. W załączniku znajduje się screen mojego programu. Bardzo proszę o pomoc i sugestie.
Wyliczanie prędkości z dwóch odbiorników IR
Wyliczanie prędkości z dwóch odbiorników IR
W momencie wyzwolenia (czyli gdy case jest true) wrzuć Tick Count, wartość wrzuć na rejestr przesuwny, a następne wyzwolenie również rejestruj Tick Count - by na końcu odjąć wartości od siebie - masz czas przejazdu;)
PS: dodaj sobie bloczek Wait(ms), ustaw go na np 20 ms - wtedy program nie będzie zżerał Ci całego zasobu komputera.
PS: dodaj sobie bloczek Wait(ms), ustaw go na np 20 ms - wtedy program nie będzie zżerał Ci całego zasobu komputera.

- Mayson
- Posty: 4
- Rejestracja: 13 cze 2015 20:16
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Lublin
- Kontakt:
Re: Wyliczanie prędkości z dwóch odbiorników IR
Próbowałem coś takiego wcześniej, jednak o ile w przypadku samego wyświetlania kolejno każdego "przejechanego pojazdu" zlicza go raz aż do kolejnego pojawienia się zmiany stanu na true, tak w przypadku czasu liczy go cały czas zarówno w true jak i false zamiast tylko w momencie pojawienia się przeszkody. Próbowałem zrobić samą bramkę składającą się jedynie z jednego nadajnika i odbiornika, który liczył by ilość przebytych pojazdów i wyświetlał je w tabeli, jednak czas jest wyświetlany ciągle tak samo jak w przypadku wcześniejszym. Załączam zdjęcie samej bramki.
- Mayson
- Posty: 4
- Rejestracja: 13 cze 2015 20:16
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Lublin
- Kontakt:
Re: Wyliczanie prędkości z dwóch odbiorników IR
Dziękuje za pomoc, faktycznie teraz jest wszystko w porządku. Spróbuje zaimplementować to rozwiązanie do pomiarów prędkości.

- Mayson
- Posty: 4
- Rejestracja: 13 cze 2015 20:16
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Lublin
- Kontakt:
Re: Wyliczanie prędkości z dwóch odbiorników IR
Wracając do tematu liczenia prędkości, chyba strasznie coś namieszałem, nie jestem pewny, w którym miejscu powinny znajdować się obliczenia czasu przejazdu. Problem jest jeszcze taki, że w momencie kiedy pojawi się przeszkoda w pierwszej wiązce, program odczytuje czas i nie porównuje go z wartością drugiego gdyż tam stan jest ciągle w False. Gdy przeszkoda pojawi się już w drugim odbiorniku dzieje się na odwrót, i program odejmuje zmierzony czas od zera. W jaki sposób można wymusić aby program zapamiętał otrzymaną wcześniej wartość i porównał ją z następną.
Wyliczanie prędkości z dwóch odbiorników IR
Możesz to zrobić w dokładnie ten sam sposób, co wcześniej: wrzucaj zmierzony czas w pierwszym case na rejestr przesuwny (tak jak czas i datę), a odczytanie zrób w drugiej pętli, tylko nie zapomnij usunąć tej wartości po odczytaniu.
Dostajesz zero, ponieważ nie masz zdefiniowanej wartości tego czasu w przypadku, gdy pierwsza pętla jest false - domyślna wartość wynosi zero, a nie poprzednia.
PS: Nie wrzucaj print screenów, tylko snippety.
Dostajesz zero, ponieważ nie masz zdefiniowanej wartości tego czasu w przypadku, gdy pierwsza pętla jest false - domyślna wartość wynosi zero, a nie poprzednia.
PS: Nie wrzucaj print screenów, tylko snippety.
