logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Drganie styków w impulsatorze - jak wyeliminować?

Maryush 23 Cze 2010 17:33 3376 18
REKLAMA
  • #1 8223094
    Maryush
    Poziom 22  
    Posty: 884
    Pomógł: 2
    Ocena: 90
    Witam.
    Szukam skutecznego sposobu na pozbycie się błędów wprowadzanych do systemu mikroprocesorowego wywoływanych przez drganie styków w impulsatorze. Programowo nie mogę sobie z tym poradzić, być może sprzętowo będzie można jeszcze w jakiś sposób rozwiązać ten problem?
    Obsługa impulsatora wywoływana jest w przerwaniu.
  • REKLAMA
  • #2 8223213
    vonar
    Poziom 28  
    Posty: 690
    Pomógł: 151
    Ocena: 30
    Możesz spróbować użyć filtrów RC.
    Ale programowo pewnie też da radę. Poszukaj tematów o eliminacji drgania styków przycisków, było wiele razy.
  • #3 8223227
    Karol966
    Poziom 31  
    Posty: 2041
    Pomógł: 83
    Ocena: 650
    Jak robiłeś to programowo ? Pokaż swoją obsługę. Nie miałem nawet potrzeby eliminacji drgań styków - od razu wszystko dobrze działało. Obsługa z wykorzystaniem przerwań.
  • REKLAMA
  • #4 8223253
    adamusx
    Poziom 27  
    Posty: 977
    Pomógł: 94
    Ocena: 28
    Nie ma takiej opcji, by nie dało się wyeliminować tych drgań droga programową..a jeśli chcesz dokładać dodatkowe elementy-
    dodaj prosty filtr RC (rezystor w szereg za wyjściem z impulsatora,a za nim kondensator równolegle do masy).
  • #5 8224104
    Maryush
    Poziom 22  
    Posty: 884
    Pomógł: 2
    Ocena: 90
    To dopiero przymiarka programu, ale już na tym etapie występują drgania styków, zmienna "A" nie jest powiększana o jeden, tak jak by to miało być, a o 2 bądź 3. Po zastosowaniu filtru RC z rezystorem 100R i kondensatorem 68n już jest lepiej, ale zdarzy się, że zmienna zostanie zwiększona o 2.

    Config Lcd = 16 * 2
    Cls
    Dim A As Byte
    Set Portd.3
    Config Pind.4 = Input
    Config Pind.3 = Input
    Enable Interrupts
    Config Int1 = Falling
    Enable Int1
    On Int1 Prz
    Set Portd.4
    Do
    Locate 1 , 1
    Lcd A
    
    
    Loop
    
    
    Prz:
    Waitms 5
    
    Incr A
    
    
    Return
  • #6 8224137
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 51
    W przerwaniu nie należy stosować Waitms.
    Zresztą prawie nigdzie- może tylko w prologu programu.
  • REKLAMA
  • #7 8224297
    Konto nie istnieje
    Poziom 1  
  • #8 13246479
    pawel1730
    Poziom 15  
    Posty: 212
    Ocena: 3
    Czy mógłby ktoś napisać w prostych krokach jak dobrać wartości filtra RC aby wyeliminować drgania styków w impulsatorze ? Czy ma to być filtr dolnoprzepustowy, jaka ma być częstotliwość graniczna ?
  • #9 13246699
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Podstawowa zasada: Styki drgają indywidualnie, a charakterystyka drgań zmienia się w czasie ich użytkowania.

    W dokumentacji czasami można znaleźć parametr dot. drgań (boucing) określony czasem drgań np. 20ms w przycisku:

    Drganie styków w impulsatorze - jak wyeliminować?

    Poszukaj w dokumentacji impulsatora.

    Stałą czasowa filtru T=RC powinna być większa niż maksymalny czas drgań, ale jednocześnie nie za duża, bo przy szybkim kręceniu impulsatorem kolejne impulsy nie będą rozpoznawane.

    Albo więc szukaj danych i oblicz, albo dobierz eksperymentalnie.
  • #10 13246714
    Konto nie istnieje
    Poziom 1  
  • #11 13246735
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    żaden filtr nie zastąpi prawidłowego algorytmu testowania stanu styków, a dobry algorytm eliminuje całkowicie potrzebę używania filtra.
    Po prostu testuj stan w przerwaniu zgłaszanym ze stałą częstotliwością (np. 50..100 Hz), pamiętaj stan poprzedni i porównuj z obecnym - dla Twojego przypadku to w zupełności wystarczy.
    http://mikrokontrolery.blogspot.com/2011/02/o-drganiach-stykow-bez-bajek-przykad.html
  • REKLAMA
  • #12 13247674
    pawel1730
    Poziom 15  
    Posty: 212
    Ocena: 3
    emarcus napisał:
    Dobrej jakości impulsator nie powinen drgać (styki) dłużej niż 4-5 msec.
    Sa też takie, że styki drgają już przy dotyku , nawet nie kręcąc ośką...

    Co to znaczy dobrej jakości? Czy taki impulsator za 3 zł to jest dobry czy zły?
  • #13 13248761
    SylwekK
    Poziom 32  
    Posty: 2764
    Pomógł: 82
    Ocena: 2763
    A ten temat już oglądałeś ?
    Wykorzystałem kiedyś ten kod jak zaczynałem programować i działał rewelacyjnie przez co nie robiłem już swojej wersji, bo potrzeby takiej nie miałem ;)

    (ogólnie polecam cały temat przejrzeć)
  • #14 13249057
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    pawel1730 napisał:
    Co to znaczy dobrej jakości? Czy taki impulsator za 3 zł to jest dobry czy zły?

    To raczej tani impulsator, ale to nie znaczy, że jest zły. Wszystko zależy od:
    - z jaką max prędkością będzie kręcony,
    - jak często będzie używany,
    - czy będzie pracował w trudnym środowisku (drgania, zmiany temperatury, wilgoć),
    - itp.
  • #15 13249231
    pawel1730
    Poziom 15  
    Posty: 212
    Ocena: 3
    A jak wyglądają ceny takich dobrych? Znajdzie się coś poniżej 10zł?
  • #16 13249277
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Pytanie postawić należy inaczej:
    - do czego będzie służyć?
    - i pozostałe wymienione przeze mnie w poprzednim poście.

    Bo może się okazać, że ten za 3zł spełnia Twoje oczekiwania, ale my mamy za mało informacji, by Tobie doradzić.
  • #17 13249618
    pawel1730
    Poziom 15  
    Posty: 212
    Ocena: 3
    Myślę, że coś pomiędzy 1 a 2 obroty na sekundę. Wystarczy 20 impulsów na obrót. Mogą być lekkie drgania. W warunkach pokojowych ;)
  • #19 13330018
    pawel1730
    Poziom 15  
    Posty: 212
    Ocena: 3
    Przy jakich napięciach zmienia się stan z 0->1 i 1->0 na pinach Xmegi lub w którym miejscu tego szukać i jak ją zwiększyć histerezę ?

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono problem drgań styków w impulsatorze, które wprowadzają błędy do systemu mikroprocesorowego. Użytkownik poszukiwał skutecznych metod eliminacji tych drgań, zarówno programowych, jak i sprzętowych. Uczestnicy sugerowali zastosowanie filtrów RC, w tym rezystora w szereg i kondensatora równolegle do masy, oraz podkreślali znaczenie algorytmu testowania stanu styków w przerwaniach. Wskazano, że czasowa stała filtru powinna być większa niż maksymalny czas drgań, ale nie za duża, aby nie zablokować szybkich impulsów. Pojawiły się również pytania dotyczące jakości impulsatorów oraz ich cen, co sugeruje, że wybór komponentu może wpływać na występowanie drgań.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA