Licznik przyciśnięć przycisku ale typu push button
-
- Posty: 103
- Rejestracja: 17 gru 2011 21:33
- Wersja środowiska: LabVIEW 2011
Licznik przyciśnięć przycisku ale typu push button
Witam,
mam pytanie do Was- jak zrobić licznik kliknięć przycisku? Wiem jak to zrobić za pomocą przycisku chwilowego tzw. "OK Button". Ale sprawa mi się komplikuje jak chcę użyć przycisku "działania długotrwałego" czyli push button. Metoda zliczania kliknięć jest mi potrzebna do zliczania impulsów z enkodera. Podpiąłem enkoder do karty Arduino- potrafię odczytać stany enkodera obrotowego. Zmieniają się one co skok jako 0,1,0,1,0,1 itd. Jak ustawię jedynkę to enkoder może być w takim ustawieniu np. 3 sekundy po czym następuje zmiana na zero itd. I tu mam problem jak zliczyć ilość takich jedynek jeśli pozycja pokrętła enkodera będzie zmieniana co jakiś czas np. 3 lub 5 sekund. Dlatego pytam o metodę zliczania przełączeń przycisku bo da się ją zastosować do licznika enkodera- "albo tak mi się wydaje"- muszę poznać metodę budowy takiego licznika i przetestować.
mam pytanie do Was- jak zrobić licznik kliknięć przycisku? Wiem jak to zrobić za pomocą przycisku chwilowego tzw. "OK Button". Ale sprawa mi się komplikuje jak chcę użyć przycisku "działania długotrwałego" czyli push button. Metoda zliczania kliknięć jest mi potrzebna do zliczania impulsów z enkodera. Podpiąłem enkoder do karty Arduino- potrafię odczytać stany enkodera obrotowego. Zmieniają się one co skok jako 0,1,0,1,0,1 itd. Jak ustawię jedynkę to enkoder może być w takim ustawieniu np. 3 sekundy po czym następuje zmiana na zero itd. I tu mam problem jak zliczyć ilość takich jedynek jeśli pozycja pokrętła enkodera będzie zmieniana co jakiś czas np. 3 lub 5 sekund. Dlatego pytam o metodę zliczania przełączeń przycisku bo da się ją zastosować do licznika enkodera- "albo tak mi się wydaje"- muszę poznać metodę budowy takiego licznika i przetestować.
Re: Licznik przyciśnięć przycisku ale typu push button
Sprawdż strukturę event wewnatrz pętli while
Zdarzenie które powinno byc obsługiwane przez strukturę eventto na poczatek "Value change".
Zdarzenie które powinno byc obsługiwane przez strukturę eventto na poczatek "Value change".
-
- Posty: 103
- Rejestracja: 17 gru 2011 21:33
- Wersja środowiska: LabVIEW 2011
Re: Licznik przyciśnięć przycisku ale typu push button
Zmusiłeś mnie Mikrobi do zrozumienia struktury Event- a tak się zawsze dobrze przed tym broniłem:] Jak możesz to rzuć okiem czy tak to powinno być zrobione- W sumie działa- ale czy jest jeszcze inna metoda wykorzystania Eventu do tego typu obliczeń? Teraz spróbuję to przerobić na licznik obrotów enkodera.
- Załączniki
-
- licznik przycisku.vi
- (9.57 KiB) Pobrany 660 razy
Licznik przyciśnięć przycisku ale typu push button
Event ma węzły w których podaje starą i nową wartość.
Kod obslugiwany przez zdarzenie tez powinien byc wewnatrz struktury.
Popatrz na to:
Kod obslugiwany przez zdarzenie tez powinien byc wewnatrz struktury.
Popatrz na to:
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Licznik przyciśnięć przycisku ale typu push button
Moment, chcesz wykorzystać zliczanie przełączeń przycisku na GUI do liczenia impulsów z enkodera, który jest fizycznie podłączony do Arduino? Albo robisz symulację, albo coś mi tu nie gra i niucham brzydkie zastosowanie zmiennych lokalnychdzojstik22 pisze:Witam,
mam pytanie do Was- jak zrobić licznik kliknięć przycisku? Wiem jak to zrobić za pomocą przycisku chwilowego tzw. "OK Button". Ale sprawa mi się komplikuje jak chcę użyć przycisku "działania długotrwałego" czyli push button. Metoda zliczania kliknięć jest mi potrzebna do zliczania impulsów z enkodera. Podpiąłem enkoder do karty Arduino- potrafię odczytać stany enkodera obrotowego. Zmieniają się one co skok jako 0,1,0,1,0,1 itd. Jak ustawię jedynkę to enkoder może być w takim ustawieniu np. 3 sekundy po czym następuje zmiana na zero itd. I tu mam problem jak zliczyć ilość takich jedynek jeśli pozycja pokrętła enkodera będzie zmieniana co jakiś czas np. 3 lub 5 sekund. Dlatego pytam o metodę zliczania przełączeń przycisku bo da się ją zastosować do licznika enkodera- "albo tak mi się wydaje"- muszę poznać metodę budowy takiego licznika i przetestować.
Re: Licznik przyciśnięć przycisku ale typu push button
Na początek proponuję zapoznanie się z podstawami obsługi przycisków
Re: Licznik przyciśnięć przycisku ale typu push button
Witam,
Jak rozumiem dzojstik22 nie chces walczyć z samymi przyciskami a z ideą rozwiązania problemu liczenia zboczy - a tym samym chcesz zbudować zwykły counter - czy tak?
Skoro tak to rozwiązanie jest poniżej - snippet copy and paste do LabVIEW - albo zapisz na pulpicie i przeciągnij do diagramu (labview 2012).
Uwagi:
Dwa sposoby resetowania - hardware'owy działający na stan niski i software'owy działający na stan wysoki. Wejście encodera to ... chyba widać. Hardware Reset i Encoder Input mozesz zamienic na wejścia hardware'u.
Counter liczy zbocza malejące - jak chcesz rosnące zamień jedną funkcję (zgadnij jaką)
Testując możesz wrzucić opóźnienie do pętli (żeby komputer pozwolił ci wcisnąć przycisk) i zamienić infinite loop constant na przycisk stopu. Nie ustawialem akcji przycisku - uznałem to za nieistotne.
Pozdrawiam i powodzenia w kodowaniu.
Jak rozumiem dzojstik22 nie chces walczyć z samymi przyciskami a z ideą rozwiązania problemu liczenia zboczy - a tym samym chcesz zbudować zwykły counter - czy tak?
Skoro tak to rozwiązanie jest poniżej - snippet copy and paste do LabVIEW - albo zapisz na pulpicie i przeciągnij do diagramu (labview 2012).
Uwagi:
Dwa sposoby resetowania - hardware'owy działający na stan niski i software'owy działający na stan wysoki. Wejście encodera to ... chyba widać. Hardware Reset i Encoder Input mozesz zamienic na wejścia hardware'u.
Counter liczy zbocza malejące - jak chcesz rosnące zamień jedną funkcję (zgadnij jaką)
Testując możesz wrzucić opóźnienie do pętli (żeby komputer pozwolił ci wcisnąć przycisk) i zamienić infinite loop constant na przycisk stopu. Nie ustawialem akcji przycisku - uznałem to za nieistotne.
Pozdrawiam i powodzenia w kodowaniu.
-
- Posty: 103
- Rejestracja: 17 gru 2011 21:33
- Wersja środowiska: LabVIEW 2011
Re: Licznik przyciśnięć przycisku ale typu push button
Mimo, że ta metoda zliczania kliknięć przycisku zadziałała to z enkoderem dobrze nie współpracuje- w takim razie walczę dalej i odpowiadam na Wasze pytania:
Zacznijmy od schematu połączeń- nie znalazłem odpowiednika dla labview więc zacząłem szukać schematów dla języka Arduino- znalazłem schemat i kod jako IDE Arduino.
Podłączenie zrobiłem takie samo a kod pisany z palca przeniosłem na labview. Załączam zdjęcia do wglądu oraz VI. Przełącznik obrotowy impulsowy który zastosowałem ma 5 nóżek- w necie widziałem schematy że jest to zliczane przy wykorzystaniu 3 nóżek, dwie nóżki podobno służą do wysłania sygnału dla wciśniętego pokrętła enkodera-ja tych dwóch nóżek nie wykorzystuję.
Mój enkoder jest 30 impulsowy czyli muszę go przestawić 30 razy o jeden skok aby uzyskać jeden pełny obrót. VI który zbudowałem potrafi odczytywać "impulsy" i zachowuje się tak, że jak przestawię go z "ząbka" na "ząbek" to mam na zmianę 0 a póżniej 1. Czyli w jednym obrocie mam piętnaście zer i piętnaście jedynek. Jak będę umiał zliczyć ilość jedynek to taką liczbę będę mógł zawsze podzielić przez piętnaście i będę miał obliczoną liczbę obrotów. Np. 45 jedynek dzielę przez 15 i wiem, że enkoder zrobił trzy obroty. To jest taka moja koncepcja opierająca się na kodach programów dla enkoderów znalezionych w necie- dlatego nie wiem czy mam dobry tok rozumowania.
Zacznijmy od schematu połączeń- nie znalazłem odpowiednika dla labview więc zacząłem szukać schematów dla języka Arduino- znalazłem schemat i kod jako IDE Arduino.
Podłączenie zrobiłem takie samo a kod pisany z palca przeniosłem na labview. Załączam zdjęcia do wglądu oraz VI. Przełącznik obrotowy impulsowy który zastosowałem ma 5 nóżek- w necie widziałem schematy że jest to zliczane przy wykorzystaniu 3 nóżek, dwie nóżki podobno służą do wysłania sygnału dla wciśniętego pokrętła enkodera-ja tych dwóch nóżek nie wykorzystuję.
Mój enkoder jest 30 impulsowy czyli muszę go przestawić 30 razy o jeden skok aby uzyskać jeden pełny obrót. VI który zbudowałem potrafi odczytywać "impulsy" i zachowuje się tak, że jak przestawię go z "ząbka" na "ząbek" to mam na zmianę 0 a póżniej 1. Czyli w jednym obrocie mam piętnaście zer i piętnaście jedynek. Jak będę umiał zliczyć ilość jedynek to taką liczbę będę mógł zawsze podzielić przez piętnaście i będę miał obliczoną liczbę obrotów. Np. 45 jedynek dzielę przez 15 i wiem, że enkoder zrobił trzy obroty. To jest taka moja koncepcja opierająca się na kodach programów dla enkoderów znalezionych w necie- dlatego nie wiem czy mam dobry tok rozumowania.
- Załączniki
-
- encoder.vi
- (256.9 KiB) Pobrany 433 razy
-
- 01.jpg (166.66 KiB) Przejrzano 16429 razy
Re: Licznik przyciśnięć przycisku ale typu push button
dzojstik22 napisales odpowiedź na posta po godzinie - ja pisalem go dłużej. Myślę, że testowales program po prostu za krotko. Spędź dzień nad problemem i zaadoptuj pokazaną metode do swojego problemu. Implementacja countera jest poprawna - mozesz ja oczywiscie zmodyfikować dowoli. Jak nie bedzie dzialac, to pokaż swoja próbę implementacji i pokaż gdzie nie działa - od razu otrzymasz odpowiedź. Na podstawie twojego ostatniego posta wydaje mi się, że counter powinien zadziałać.
Pozdrawiam
Pozdrawiam
-
- Posty: 103
- Rejestracja: 17 gru 2011 21:33
- Wersja środowiska: LabVIEW 2011
Re: Licznik przyciśnięć przycisku ale typu push button
Trooper- tego Twojego pomysłu wczoraj nawet nie zacząłem testować- dzisiaj na spokojnie do tego siądę.
Co do prób i testów to już trzeci dzień testuję:)
Zamontowałem ten licznik i impulsy są zliczane- czyli niby jest ok. Ale mam kolejny- nieoczekiwany problem- startuje program obracam pokrętłem i impulsy są zliczane ale tylko do liczby 255. Jak licznik osiągnie taki stan to przełącza się sam na zero i liczy od nowa. Tak powinno być? Skąd się ta liczba pojawiła i dlaczego blokuje(zeruje) mi stan licznika?
Co do prób i testów to już trzeci dzień testuję:)
Zamontowałem ten licznik i impulsy są zliczane- czyli niby jest ok. Ale mam kolejny- nieoczekiwany problem- startuje program obracam pokrętłem i impulsy są zliczane ale tylko do liczby 255. Jak licznik osiągnie taki stan to przełącza się sam na zero i liczy od nowa. Tak powinno być? Skąd się ta liczba pojawiła i dlaczego blokuje(zeruje) mi stan licznika?
Re: Licznik przyciśnięć przycisku ale typu push button
W Twoim przypadku tak powinno być, gdyż ten wskaźnik (jak i inne) masz formatu U8 (Unsigned Byte Integer), czyli od 0 do 255.
Zmień sobie reprezentację na inną ;)
Zmień sobie reprezentację na inną ;)
-
- Posty: 103
- Rejestracja: 17 gru 2011 21:33
- Wersja środowiska: LabVIEW 2011
Re: Licznik przyciśnięć przycisku ale typu push button
Liczba 255 złamana Dziękuję wszystkim za pomoc.