Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Programowalny licznik impulsów

mruz12e 11 Apr 2016 23:31 1962 18
Altium Designer Computer Controls
  • #1
    mruz12e
    Level 10  
    Witam.

    Chciałbym zbudować układ na nap. 12V, który:
    - liczyłby impulsy pochodzące np. z kontaktronu ( +/- jeden impuls na sek.),
    - po odliczeniu zadanej wcześniej liczby impulsów (około 50) podałby sygnał sterujący na przekaźnik o długości około 5 sekund,
    - po tym wszystkim licznik zresetowałby się (wyzerował) i oczekiwał na następne impulsy i tak w kółko.

    Znalazłem coś takiego Link

    Tutaj impuls sterujący byłby za krótki, ale zastosowałbym to Link

    Pozostaje jeszcze kwestia automatycznego wyzerowania licznika - myślałem, aby do wyjścia z licznika podłączyć kolejny przekaźnik, którego styki NO przylutowałbym do wejścia resetującego. Po odliczeniu zadanej liczby obrotów impuls z licznika (1sek.) zwarłby wejście resetujące i wyzerował licznik. - chyba? Bo chyba tak działa wejście resetujące tego licznika?

    Wiem, że zagmatwane, ale opis tego urządzenia na stronie jest inny aniżeli w linku odsyłającym z niby opisem jego działania.
    Może Ktoś ma inny pomysł na rozwiązanie mojego problemu?
  • Altium Designer Computer Controls
  • Helpful post
    #2
    2N3866
    Level 29  
    Pytania w celu doprecyzowania problemu i uproszczenia rozwiązania:
    - czy jest istotne wizualizowanie bieżącej wartości zliczonej przez licznik (czy wyświetlacz jest w ogóle potrzebny)?
    - czy liczba impulsów ma być programowana (w jakichś granicach - napisałeś ok. 50), czy ustawia się ją na sztywno raz na zawsze?
    - czy w czasie trwania impulsu 5 s sterującego przekaźnikiem ma być zablokowane zliczanie impulsów?
    - czy potrafisz wykonać prosty układ elektroniczny, czy wolisz tylko połączyć ze sobą gotowe klocki w jakiś "system"?
    - czy znasz się na mikrokontrolerach i potrafisz sam zaprogramować takowy, ewentualnie masz w pobliżu kogoś, do kogo możesz w tej sprawie pójść?
  • Altium Designer Computer Controls
  • Helpful post
    #3
    luke666
    Level 33  
    Ne075 jest o połowę tańszy.
    Pomysł z resetowaniem zadziała, choć ja bym inaczej rozwiązał kwestię podtrzymania przez te 5s: do zasilania przekaźnika podpiąłbym układ RC sterujący tranzystorem w roli klucza, który zasila drugi przekaźnik, którego styki NO resetują licznik. Rozwiązanie znacznie tańsze od przekaźnika czasowego z wysyłką.
    Miałem NE075 i niestety w tym rozwiązaniu problematyczna jest jego jedna cecha, mianowicie po naciśnięciu przycisku reset wyświetla nam się wcześniej wprowadzona ilość do odliczenia i za każdym rezem trzeba ją potwierdzić przyciskiem enter.
    Być może dałoby się to rozwiązać poprzez zastosowanie pierwszego przekaźnika DPST/DPDT który na jednej parze zestyków realizuje reset, a druga para zasila kolejny przekaźnik który stykami NO "wciska" enter. Nie jestem pewien, czy bezwładność przekaźników będzie odpowiednia i taki układ zadziała prawidłowo. Można to zrealizować oczywiście na kilka innych sposobów.
  • #4
    mruz12e
    Level 10  
    Dzięki za zainteresowanie.\
    2N3866 wrote:
    - czy jest istotne wizualizowanie bieżącej wartości zliczonej przez licznik (czy wyświetlacz jest w ogóle potrzebny)?

    Wizualizacja bieżącej wartości jest raczej zbędna - wyświetlacz jest potrzebny (tak mi się wydaje), aby wprowadzić wartość do której licznik ma zliczać i podawać sygnał wykonawczy.
    2N3866 wrote:
    - czy liczba impulsów ma być programowana (w jakichś granicach - napisałeś ok. 50), czy ustawia się ją na sztywno raz na zawsze?

    Tak liczba ta ma być probramowalna. Trzeba ją będzie zmieniać, ale nie zbyt często - tak powiedzmy raz w tygodniu.
    2N3866 wrote:
    - czy w czasie trwania impulsu 5 s sterującego przekaźnikiem ma być zablokowane zliczanie impulsów?

    To jest nieistotne.
    2N3866 wrote:
    - czy potrafisz wykonać prosty układ elektroniczny, czy wolisz tylko połączyć ze sobą gotowe klocki w jakiś "system"?

    Z wykonaniem układu będzie raczej trudno - zależy jak skomplikowanego. Ten licznik z linku zlutowałbym bez problemu.
    2N3866 wrote:
    - czy znasz się na mikrokontrolerach i potrafisz sam zaprogramować takowy, ewentualnie masz w pobliżu kogoś, do kogo możesz w tej sprawie pójść?

    Wiem jedynie, że coś takiego jest jak uC. Nie mam nikogo kto mógłby to za mnie zrobić.

    luke666 wrote:
    Pomysł z resetowaniem zadziała, choć ja bym inaczej rozwiązał kwestię podtrzymania przez te 5s: do zasilania przekaźnika podpiąłbym układ RC sterujący tranzystorem w roli klucza, który zasila drugi przekaźnik, którego styki NO resetują licznik. Rozwiązanie znacznie tańsze od przekaźnika czasowego z wysyłką.

    Z tym podtrzymaniem to też jeszcze wymagać będzie regulacji - być może niezbędne będzie 8 sekund.
    luke666 wrote:
    Miałem NE075 i niestety w tym rozwiązaniu problematyczna jest jego jedna cecha, mianowicie po naciśnięciu przycisku reset wyświetla nam się wcześniej wprowadzona ilość do odliczenia i za każdym rezem trzeba ją potwierdzić przyciskiem enter.
    Być może dałoby się to rozwiązać poprzez zastosowanie pierwszego przekaźnika DPST/DPDT który na jednej parze zestyków realizuje reset, a druga para zasila kolejny przekaźnik który stykami NO "wciska" enter. Nie jestem pewien, czy bezwładność przekaźników będzie odpowiednia i taki układ zadziała prawidłowo. Można to zrealizować oczywiście na kilka innych sposobów.

    Właśnie chodzi mi o to aby cały układ był bezobsługowy tzn. włączam zasilanie (ewentualnie jeszcze inicjuję pierwsze zliczanie) i dalej licznik tylko liczy do wcześniej zadanej wartości, po jej osiągnięciu podaje sygnał na przekaźnik, resetuje się i liczy kolejne obroty itd.
  • Helpful post
    #5
    jesion40
    Level 27  
    Banalnie proste rozwiązanie tego problemu uzyskasz stosując programowalny dzielnik w technologii CMOS CD4059A. Za układ zapłacisz złotówkę. Ilość impulsów zadajesz w BCD na końcówki układu. Możesz to zrobić przełącznikami DIP-switch, albo elegancko zadajnikami - wygodnie i z możliwością odczytu ustawionej wartości, ale za zadajniki zapłacisz wielokrotnie więcej niż za całą resztę.

    Na wyjściu układu dostaniesz pojedynczy impuls odpowiadający odstępowi między ostatniemu impulsowi wejściowemu "starej" paczki a pierwszemu z "nowej". Jeżeli to nie pasuje, to musisz dodać układ monostabilny np. na 555 albo na CMOS z tej samej rodziny CD4047B albo najprościej na elementach dyskretnych + ewentualnie tranzystor.

    Bez zadajników zmieścisz się w 10zł, lutowania też niewiele. Powodzenia!
  • Helpful post
    #6
    luke666
    Level 33  
    mruz12e wrote:
    Właśnie chodzi mi o to aby cały układ był bezobsługowy tzn. włączam zasilanie (ewentualnie jeszcze inicjuję pierwsze zliczanie) i dalej licznik tylko liczy do wcześniej zadanej wartości, po jej osiągnięciu podaje sygnał na przekaźnik, resetuje się i liczy kolejne obroty itd.

    To da się zrobić na NE075, choć będzie trochę dłubania, na KL202A również ale każdy układ ma swoje właściwości które nie sposób przewidzieć przed kupnem i uruchomieniem.
    Czy 5, czy 8s - po prostu w układzie RC dajesz zamiast rezystora potencjometr i masz niemal dowolną regulację.
  • #7
    mruz12e
    Level 10  
    Dzięki za odpowiedzi.
    Dzisiaj przemyślałem sprawę i jednak licznik ten MUSI mieć wyświetlacz pokazujący aktualną ilość obrotów - tak będzie o wiele wygodniej.
    W sumie prawie idealnym rozwiązaniem dla mnie byłby ten licznik z linku w moim pierwszym poście, ale w wersji, którą, o dziwo, opisuje instrukcja użytkowania. Różnica jest taka, że w instr. jest wyświetlacz 5-cyfrowy (nieistotne dla mnie) i co najistotniejsze sygnał wyjściowy ma regulowany czas od 0,1 do 10 sek.

    Może napiszę do tego sklepu czy nie mają takiej wersji - w sumie chyba różnią się wsadem do uC. Zresztą dla mnie wystarczyłaby wersja z jednym wejściem zliczającym w górę.
  • Helpful post
    #8
    jesion40
    Level 27  
    mruz12e wrote:
    Dzisiaj przemyślałem sprawę i jednak licznik ten MUSI mieć wyświetlacz pokazujący aktualną ilość obrotów - tak będzie o wiele wygodniej.
    Czy chodzi o wartość zadaną czy wskazującą ilość już zliczonych impulsów? Rozumiem, że preferujesz gotowe rozwiązanie, ale gdyby chodziło o wyświetlanie wartości zadanej, to miałbyś ją na zadajnikach.
  • Helpful post
    #9
    2N3866
    Level 29  
    jesion40 wrote:
    Banalnie proste rozwiązanie tego problemu uzyskasz stosując programowalny dzielnik w technologii CMOS CD4059A. Za układ zapłacisz złotówkę. Ilość impulsów zadajesz w BCD na końcówki układu. Możesz to zrobić przełącznikami DIP-switch, albo elegancko zadajnikami - wygodnie i z możliwością odczytu ustawionej wartości, ale za zadajniki zapłacisz wielokrotnie więcej niż za całą resztę.

    Na wyjściu układu dostaniesz pojedynczy impuls odpowiadający odstępowi między ostatniemu impulsowi wejściowemu "starej" paczki a pierwszemu z "nowej". Jeżeli to nie pasuje, to musisz dodać układ monostabilny np. na 555 albo na CMOS z tej samej rodziny CD4047B albo najprościej na elementach dyskretnych + ewentualnie tranzystor.

    Bez zadajników zmieścisz się w 10zł, lutowania też niewiele. Powodzenia!


    @mruz12e

    Dokładnie o takim rozwiązaniu myślałem, kiedy zadawałem pytania doprecyzowujące. Dzielnik 4059 (karta katalogowa) jest osiągalny, choć może nie w każdym sklepie na rogu ulicy, ale jest zamkniętym układem bez konieczności łączenia jakimiś pętlami kasującymi licznik itd. Masz możliwość zaprogramowania podziału w granicach 3-9999/15999. Czas trwania impulsu wyjściowego zależy od tempa nadchodzenia impulsów wejściowych (między kolejnymi zboczami impulsów wejściowych) - jeśli zatrzymasz napływ impulsów, to stan wyjściowy będzie trwać. Wejście LE (nóżka 2) musi być LOW.

    Pamiętaj o prawidłowym zainicjowaniu układu w momencie załączenia zasilania - Kb i Kc = LOW (master reset) - ponieważ pojemność licznika to nawet 9999/15999, a częstotliwość to ok. 1 Hz, bez wymuszenia resetu możesz zależnie od przypadkowego stanu początkowego czekać nawet ponad 4,5 godziny na rozpoczęcie prawidłowej pracy! Układ inicjujący to kondensator wpięty "dołem" do masy i opornik wpięty "górą" do zasilania. Z tabeli trybów wyjdzie ci, które wejście spośród Kb i Kc będzie wymagać tego układu, bo w wybranym przez ciebie trybie powinno być HIGH, a nie LOW.

    Pamiętaj również, że wejścia programujące (nie podłączone na sztywno do masy lub zasilania) muszą być wyposażone w rezystory pull-down (ciągnące poziom wejściowy do masy) - wtedy DIP-switch, jumper czy programator wymusza napięcie zasilania (HIGH) na wejściu, w przeciwnym wypadku rezystor (kilkadziesiąt kΩ) wymusza stan LOW. Wejścia układów CMOS nigdy nie mogą wisieć w powietrzu.

    Wyjście dzielnika (nóżka 23) dołączasz do 4047 lub 555 pracującego w trybie przerzutnika monostabilnego wyzwalanego zboczem narastającym. Elementy ustalające czas trwania impulsu (ok. 5 s) wyliczysz z wzoru w karcie katalogowej.

    Alternatywą dla 4059 jest kaskada dwóch liczników (dziesiętnych lub binarnych) w konfiguracji dzielnika częstotliwości, wtedy podział maksymalny będzie odpowiednio ÷100 lub ÷256.

    Zachęcam do zainwestowania w podstawki do układów - złotówka więcej, a pomoże w uruchamianiu i ewentualnej wymianie, gdyby zdarzył ci się jakiś wypadek.

    Nie zapomnij o diodzie równolegle do cewki przekaźnika - zabezpieczenie tranzystora sterującego!
  • Helpful post
    #10
    jesion40
    Level 27  
    2N3866 wrote:
    Alternatywą dla 4059 jest kaskada dwóch liczników (dziesiętnych lub binarnych) w konfiguracji dzielnika częstotliwości, wtedy podział maksymalny będzie odpowiednio ÷100 lub ÷256.
    Autor tematu chyba raczej preferuje gotowe rozwiązanie, ale na marginesie zauważę, że użycie liczników pozwoliło by na odczyt aktualnej wartości, choć (byłoby to zliczanie w dół) niezależnie od wartości zadanej - do odczytu z zadajników jako cyfry lub ze switchy - binarnie. Ale ten odczyt z liczników to znów dekodery, wyświetlacze.... dużo lutowania :cry:
  • Helpful post
    #11
    2N3866
    Level 29  
    jesion40 wrote:
    2N3866 wrote:
    Alternatywą dla 4059 jest kaskada dwóch liczników (dziesiętnych lub binarnych) w konfiguracji dzielnika częstotliwości, wtedy podział maksymalny będzie odpowiednio ÷100 lub ÷256.
    Autor tematu chyba raczej preferuje gotowe rozwiązanie, ale na marginesie zauważę, że użycie liczników pozwoliło by na odczyt aktualnej wartości, choć (byłoby to zliczanie w dół) niezależnie od wartości zadanej - do odczytu z zadajników jako cyfry lub ze switchy - binarnie. Ale ten odczyt z liczników to znów dekodery, wyświetlacze.... dużo lutowania :cry:


    Masz 100% racji. Miałem odpowiedź na tapecie dość długo i pisałem z doskoku, więc wątek poszedł do przodu o wasze dwa wpisy. Ale zostawiam mój wpis, może komuś się kiedyś przyda.

    Info dla kolegi mruz12e:

    4059 to dzielnik częstotliwości i sprząc z wyświetlaczem się go nie da, bo nie ma wyjść stanów licznika, tylko wyjście impulsu detekcji zera. Więc twarde wymaganie wizualizacji to zastosowanie liczników, których stany można zdekodować i wyświetlić, najprościej - dziesiętnych.

    Prosty układ (nawet z wyświetlaczem) robi się na liczniku liczącym w dół - czyli widać, ile jeszcze impulsów zostało do końca cyklu liczenia i tego oczekiwanego przez ciebie impulsu 5-sekundowego. Dlatego tak, że detektor zera wymuszający przeładowanie liczników zrobić łatwiej.

    Gdybym miał porównywać bieżącą wartość z zadanym progiem (liczenie w górę), tobym zastosował mikrokontroler, który zrobi to programowo, a do tego zdekoduje i wyśle na wyświetlacze. Zrobienie tego sprzętowo na komparatorze binarnym/dziesiętnym dla liczenia w górę mija się z celem. Ale jeśli czujesz się na siłach, możesz zastosować równolegle dodatkowy licznik dziesiętny zliczający te same impulsy w górę i wyświetlający bieżącą wartość (są takie liczniki zintegrowane w jednej kostce z dekoderem BCD->7 segmentów), który będzie zerowany w czasie impulsu końca liczenia generowanego przez licznik główny. Tylko trzeba by trochę pokombinować z impulsem zerowania tego licznika, żebyś miał szansę zobaczyć wartość maksymalną, zanim nastąpi skasowanie.

    Jak widzisz, wymagania zmieniające się w trakcie projektu potrafią niekiedy "zresetować" całą koncepcję rozwiązania...
  • #12
    mruz12e
    Level 10  
    jesion40 wrote:
    Czy chodzi o wartość zadaną czy wskazującą ilość już zliczonych impulsów? Rozumiem, że preferujesz gotowe rozwiązanie, ale gdyby chodziło o wyświetlanie wartości zadanej, to miałbyś ją na zadajnikach.

    Bardziej chodzi o aktualną ilość obrotów i jak szybko one narastają. Wartość zadaną mógłbym sobie darować.

    Odnośnie pozostałych porad to wielkie PODZIĘKOWANIA za nie - jednak nie czuję się na siłach by z nich skorzystać - musiałbym spędzić z tydzień w necie, aby na tyle opanować temat aby móc samodzielnie zabrać się za lutowanie układu według Waszych wskazówek. Swoją drogą jestem, mówiąc delikatnie, zszokowany poziomem Waszej wiedzy i proponowaniem nowych rozwiązań z taką, że tak się wyrażę, nonszalancją - jakby od niechcenia.
    Widzę, że mój problem dla Was to tak jakby ktoś pytał mnie jak np. otworzyć butelkę piwa - bo ma butelkę ale nie wie jak dostać się do środka :) a przecież jest tyle możliwości, aby to zrobić a ja konsekwentnie wybieram opcję otwarcia butelki za pomocą futryny - jak w starym kawale o milicjantach.

    Podsumowując: napiszę do tego sklepu czy są w stanie zaoferować ten licznik jak z opisu użytkowania i zobaczę co odpiszą - jeżeli odpiszą i się odezwę.
  • Helpful post
    #13
    deus.ex.machina
    Level 32  
    Licznik to może nie jest kłopot ale zrobienie logiki odpornej na drgania styków już problemem jest - dalej pomyślałbym o jakimś prostym uC i nawet narysowaniu programu choćby w logice drabinkowej - niekoniecznie trzeba być programista by rozwiązywać proste problemy.
  • #14
    jesion40
    Level 27  
    W zamierzchłych czasach, gdy nie sięgało się po µC przy każdej okazji też drgały styki. Autor tematu pisał enigmatycznie o "impulsach" więc nie odnosiłem się do tego, ale rozwiązanie jest proste - filtr RC i bramka z histerezą, druga może wówczas służyć do wygenerowania tego impulsu wyjściowego o stałej długości. Albo podwójny przerzutnik monostabilny np. 4538, oczywiście drugi i w tym przypadku przyda się do generowania tego impulsu wyjściowego.
  • Helpful post
    #15
    luke666
    Level 33  
    jesion40 wrote:
    rozwiązanie jest proste - filtr RC i bramka z histerezą

    Zgadza się. Robiłem dla kogoś licznik z bramką optyczną (diora IR + fototranzystor) do zliczania detali. Za fototranzystorem filtr RC z potencjometrem do kalibracji i bramka Schmitta - działa znakomicie.
    mruz12e, nie wiem czy sklep podejmie się zmiany softu dla jednego klienta a jeśli już, to za dopłatą ekstra. Zawsze możesz napisać ogłoszenie na forum w dziale Projektowanie Układów Elektronicznych -> Projektowanie Ogłoszenia, określić wymagania i podać cenę - może ktoś podjąłby się modyfikacji wsadu lub napisania go całkiem od nowa.
  • Helpful post
    #16
    deus.ex.machina
    Level 32  
    Filtr RC to tylko półśrodek i trzeba później histereza i poprawnie formować impulsy. W uC można zrobić debouncer i po kłopocie.
  • #17
    jesion40
    Level 27  
    deus.ex.machina wrote:
    Filtr RC to tylko półśrodek i trzeba później histereza i poprawnie formować impulsy. W uC można zrobić debouncer i po kłopocie.
    Owszem RC to półśrodek a raczej pół środka, bo cały środek to RC + bramka z histerezą (czyli 1/6 .. 1/4) prostego układu scalonego, który w pozostałej części się wykorzystuje do czego innego.

    Robiłem nie raz i tak (analogowo) i tak (µC) i nie widzę problemu ani tu, ani tu. Ręczę jednak, że początkującemu łatwiej zrobić to analogowo. A Autor tematu raczej dąży ku gotowym rozwiązaniom, więc nie widzę by miał przy tej okazji odkrywać uroki programowania w tym obsługi przerwań.

    Swoją drogą jak kupi ten gotowy licznik, to pewnie też bez RC + formowania impulsów się nie obejdzie. No, chyba że już przychodzą wyczyszczone i uformowane, bo wszak nie wiemy co ma być ich źródłem.
  • #18
    mruz12e
    Level 10  
    Z tego co napisał mi sprzedawca to ten licznik ma regulowany czas załączenia przekaźnika w zakresie 0,1 - 10sek.- czyli tak jak jest opisane w instrukcji użytkowania.
    Postanowiłem, że go zamówię.
    Dodatkowo od tego samego sprzedawcy zamówię ten czujnik indukcyjny. To dobry wybór?
    Czy muszę dodać do tego zestawu jakiś filtr?
  • #19
    jesion40
    Level 27  
    mruz12e wrote:
    To dobry wybór?
    Licznik jak licznik - wszystko zależy od programu. O czujniku praktycznie nic nie wiadomo. Filtr nie powinien być potrzebny, jeżeli program został prawidłowo napisany. Gdyby pojawił się problem zawsze można dodać filtr później.