Użyć przekaźnika z cewką DC wraz z odpowiednim układem zasilającym.
Radykalną metodą jest eliminacja drgań przez zastosowanie bramki Schmidta z obwodem RC eliminującym drgania.Dołączenie C równolegle do styków też może rozwiązać problem,ale skuteczność bardzo zależy od oporności źródła i obciążenia. Można też stosować uniwibratory,rejestry przesuwne itd. W dołączonym pliku wartości RC są przykładowe. Przyjmuje się że...
To opisuje datasheet w części dot. charakterystyk napięciowych pinów wejściowych. http://mikrokontrolery.blogspot.com/2011...
Matryca z komparatorami jest jakimś matrycowym dzielnikiem napięcia Nie. Jest to układ stricte cyfrowy. Dla uproszczenia narysowałem tylko jeden przycisk i częśc komparatorów. W stanie spoczynkowym napięcia na wejściach są jak na rys. i na wyjściach są "1" logiczne. Po naciśnięciu przycisku na wejściach od strony przycisku ustawia się połowa zasilania,...
To podłącz kondensator 100nF równolegle do tego przycisku. A jak to nie pomoże to zastosuje bramkę ze schmittem która zapewni eliminację drgań styków jak i odpowiednią stromość zbocza.
Przerwanie od zbocza jest kompletnie niepotrzebne do niczego - wystarczy TYLKO przerwanie od timera, w którym również można zrobić wykrywanie zbocza i filtrowanie - wystarczy kilka zmiennych pomocniczych (poprzedni stan, jakieś liczniki). Jest to skrajnie proste i działa idealnie. Angażowanie dwóch przerwań do czegoś co można zrobić w jednym jest kompletnym...
Jak ma być taktowany ten układ ? Z klawisza czy też z jakiegoś innego źródła ? Uodpornić układ na przekłamania przy zwykłym (ręcznym) zwieraniu kołków jest problemem, bo takie zwieranie zwykle wygląda jak na załączonym obrazku (tj. to co nam się wydaje jednym zwarciem i rozwarciem tak naprawdę jest serią impulsów iu to nieprostokątnych bo zmienia się...
Już jestem. Przerzutniki RS z wykorzystaniem bramek NAND. Jeżeli zastosował byś takie liczniki jak podał kol. lechoo (74LS192 ,74HC192), to bramki NAND też możesz dać odpowiednio 74LS00, 74HC00. I ten dekoder i inwertery też z takiej serii. (Te z literkami HC to są CMOS-y) Licznik 74192 będzie liczył od 0 do 9 a 74193 od 0 do 15. Zapytam czy to tak...
Po pierwsze aby zwiekszyc predkosc pulsowania diodek powinienes zmniejszac z a nie zwiekszac (czyli dzielic przez dwa a nie mnozyc razy 2). Po drugie dwukrotne sprawdzanie if ((PINA&0x01)!=0x01) nie ma sensu, chyba, ze miedzy nimi wprowadzisz opoznienie. Po trzecie po odczekaniu Twoich 300ms masz tylko ultrakrótki czas na sprawdzenie if((PINA&0x01)!=0x00)....
Pomyśl jeszcze raz o Schmitt-cie. Możesz dać najpierw układ całkujacy RC, który "wytnie" śmieci. Potem stabilny poziom wysoki jest wykrywany przez Schmitta (gdy przekroczy 2/3 napięcia zasilania). Po Schmitt-cie możesz dać 555, lub inny mono, z retrygierem. Jako Schmitt dobrze pracuje CD4093. Również na pozostałych bramkach (jest ich 4) w tej kości...
rozumiem że odczytujesz stan zera po styknięciu z masą więc ja bym zrobił tak wciskasz a procedurka zaczyna działać (np; port p1.6) jnc p1.6,czekaj ljmp nie_wcisnienty czekaj: mov b,#100 ok_50_ms: mov a,#220 djnz acc,$ djnz b,ok_50_ms jnc p1.6,dalej dalej: - - nie_wcisnienty: po wciśnięciu klawisza czyli zczytaniu pierwszego zakłucenia wywołującego...
... Nie wiem natomiast czemu pchales na stos SREG, skoro w nim siedzi tylko globalne zezwolenie na przerwanie ktore nie jest automatycznie modyfikowane. A flagi T,H,S,V,N,Z,C to gips :?: ;) Wydaje mi sie tylko ze uzywalem rejestru porty wyjsciowego ( PORTD ) zamiast wejsciowego ( PIND )i dlatego tak bylo, ale nie wiem czy mam racje. Upraszczając -...
Na temat debouncingu poczytaj [url=http://www.elektroda.pl/rtvforum/to... temat. Warto.
Sama idea co najmniej dziwna, plus brak blokowania przerwania. A tak swoją drogą po co angażujesz timer T0 skoro go nie używasz? I jak ma się wywołać przerwanie od T1 skoro nigdzie go nie skonfigurowałeś?
wstaw rezystor między kondensatorem c22 a vcc (10k).
Np. to http://mikrokontrolery.blogspot.com/2011... i z 1000 innych rozwiązań. A po co te przekaźniki? W celu zwiększenia zakłóceń? Do sterowania światłami b. dobrze nadają się tranzystory MOSFET. Jeśli masz wspólny minus, to potrzebujesz par npn małej mocy + PMOSFET do załączania plusa. http://mikrokontrolery.blogspot.com/2011...
Witam! No to zamiennika "noga w nogę" raczej nie będzie, ale masz wiele możliwości zrobienia przeróbki tego układu. Wszystko zależy od parametrów Twojego przekładnika prądowego (musisz zrobić trochę wysiłku, pomierzyć co nie co przekładnik i potem poeksperymentować). Najprościej można zrobić klasyczny 2 lub 3-stopniowy wzmacniacz m.cz. w klasie A, ze...
Sygnał z transoptorów daj na jakąś bramkę z wejściem Schmitta. Myślę że w tym wypadku wystarczy. Skutecznie powinna wyeliminować zakłócenia w sygnale wejściowym, zwłaszcza że sygnały nie będą zmieniały się bardzo powoli i nie będą szczególnie zakłócone. Co do rejestru to przepraszam, mój błąd - 4015. Podwójny rejestr 4 bitowy. Połączyć dwa w szereg...
Przy wciśniętym przycisku kondensator rozładowuje się przez R2, i jeśli dzieje się to odpowiednio wolno, to efekt drgań styków jest rzeczywiście mniej odczuwalny. Ale po puszczeniu przycisku kondensator ładuje się przez oba rezystory szeregowo, co powoduje, że będzie się to działo jeszcze wolniej, niż rozładowanie. Dioda bocznikuje R2 w czasie ładowania....
Tak dla rozjaśnienia: http://mikrokontrolery.blogspot.com/2011... To co opisujesz wygląda na strasznie skomplikowane, a w rzeczywistości jest baaaardzo proste. Nie liczymy ilości drgań bo na pewno jest przypadkowa, ale czas w którym styk jest stabilny na jednym stanie. Jak długi czas? To już zależy od styków albo...
http://obrazki.elektroda.pl/5431448900_1... 74HC74 bramkuje sygnał wejściowy tak aby jego impulsy nie były krótsze niż impulsy taktowania licznika 74HC590(już samo to wyfiltrowuje część krótkich szpilek) - blokuje to możliwość wyzwalania przerwania ICR1 z nadmierną częstotliwością. W układzie jak na rysunku 74HC590 zlicza gdy sygnał...
jeśli wykryjesz, że naciśnięto przycisk (rozumię, że tyle zrobiłeś) to wstaw (najprościej): LCALL WAIT_KLAW a gdzieś poza programem dodaj procedurkę: WAIT_KLAW: DJNZ r7,$ DJNZ r6,WAIT_KLAW RET powinno działać ;-) jeśli gdzieś indziej używasz rejestrów r6/r7 to możesz oczywiście użyć innych rejestrów lub dowolną komurkę pamięci ram (zamiast r7/r6 może...
Kolego andrzej_nied, Proponuję zastosować timer do generowania przerwań co około 2.5ms. W przerwaniu testujemy wejścia portów nie zawracając sobie głowy jakimiś 'drganiami styków'. Sprawdzone, pewne, proste. Czas 2.5ms dobrany jest tak aby zwykły enkoder 20-32imp./obrót obracany energicznie ręką nie zgubił impulsu (gdy czas pomiędzy przerwaniami za...
Wydaje mi się, że na to pytanie nie ma dobrej odpowiedzi - rozłączeniu styków będą towarzyszyły drgania styków, czyli wielokrotne wtórne załączenia. Nie będzie to ciągłe zbocze. Gdyby jednak nie kwestia drgań styków, to rolę grają chyba tylko pojemności w takim elemencie i jego doprowadzeniach.
tzw drgania styków. daj kondensator 100nF między -wejściem sygnału z przycisku do scalaka- a masą.
A z jakiego powodu z drugiej strony? Bo razem z R36 stworzy filtr dolnoprzepustowy i stłumi trochę drgań styków.
Jeśli impuls zegarowy bedzie przychodził rzadziej niż co kilkadziesiąt milisekund nie ma potrzeby stosowania układu eliminacji drgań styków na D, w najgorszym przypadku jeśli trafisz na drgania styków dostaniesz poprawny stan dopiero w następnym cyklu zegara.
Drgania styków.
No teraz to już są przyzwoite drgania styków. ;)
DRGANIA STYKÓW!!
Bez znaczenia, czy będzie to przycisk NO czy NC - w obu przypadkach doświadczysz tzw. drgań styków, które Ci teraz przysporzyły problemu. Wystarczy wyeliminować wpływ drgań styków - jest o tym dużo literatury. Najprostsza metoda programowa? - po sprawdzeniu, czy przycisk jest w stanie niskim: - jeśli jest odczekaj 25 milisekund i sprawdź ponownie. -...
Wejście nie powinno wisieć w powietrzu. Opornik 1 kiloom do masy i podanie 3,3V powinny załatwić sprawę sprzętowo. Można też równolegle do opornika podłączyć kondensator 100-470 nF, który ograniczy zakłócenia i nie będzie wielokrotnych przyciśnięć. Najlepiej zrobić przerzutnik monostabilny, ale nie każdy może, nie każdy chce. Drgania styków można eliminować...
Brak oczekiwania na zwolnienie przycisku i eliminacji drgań styków.
[syntax=c]while(1) { if(naciśnięto_przycisk) { n = n + 1; if(n > 14) n = 0; //tej linijki brakuje u Ciebie i n przekracza 14 . .//wyświetlasz liczbę . _delay_ms(50); //drgania styków po wciśnięciu while(przycisk_jest_wciśnięty); //czekamy aż przycisk zostanie zwolniony _delay_ms(50); //drgania styków po zwolnieniu } }[/syntax] Oczywiście musisz trochę...
Wykonałem prosty układ przekaźnika z podtrzymaniem. Coś tu się nie zgadza. Jeśli przekaźnik jest z podtrzymaniem, to drgania styków przycisku nie mają znaczenia. Po pierwszym impulsie ma się załączyć i trzymać.
Ja proponuję dać koendensatory 100nF do przełączników opisanych jako Pł. C12 wywalić. To rozwiąże problem drgania styków.
Witam, Dziękuje za zainteresowanie tematem. Złożyłem oba układy na płytce stykowej i układ "autora projektu z wył do masy" działa tak jak się należy i w zupełności mi wystarcza. Całość ma załączać przekaźniki które będą sterować taśmami LED. Zasilanie układu będzie z zasilacza do LED 12V ; 100W Taśmy około 16 m - 4,8 W/m = 76,8 W I tu moje pytanie -...
Dodać diodę prostowniczą równolegle do cewki przekaźnika w taki sposób by katoda była do + zasilania. Możesz również doczytać o drganiach styków kontaktronu i sposobu ich eliminacji.
Witam To jest enkoder optyczny nie trzeba w nim eliminować drgań styków, a na 99% gubienie kroków jest spowodowane zbyt wolna obsługą. Pozdrawiam Romek
Warto pamiętać, że przy każdorazowym zwarciu/rozwarciu wyłącznika w tak prostym układzie na wyjściu pojawi się paczka impulsów wywołana drganiami styków...
Błędnie masz rozwiązaną sprzętową eliminację drgań styków kontraktona. Rezystor R3 powinien być dołączony nie do masy, lecz do +5V. Kontrakton powinien być dołączony między wejście mikrokontrolera i masę. Zobacz .
Jak najbardziej jest poprawne, tyle że zauważ że w obydwu przypadkach nie masz zrealizowanej programowej eliminacji drgań styków
Jest to normalne w przypadku przycisków... Drganie styków powoduje pojawienie się więcej niż jednego zbocza... Poczytaj na forum o niwelacji drgań styków...
hmmm a wiesz jak się programowo obsługuje zwykły przycisk ? jak się eliminuje skutki drgań styków ? bo przecież tam własnie stosuje się opóźnienia. Wykorzystaj to.
Wystarczy jak dasz typową wartość np10k. Jeśli ten układ ma sterować sygnałem zegarowym to musi być jeszcze układ usuwania drgań styków przycisku.
W realu dasz przekaźnik bez rezystora i będzie ok. Ale w realu może pojawi się za to inny problem związany z drganiami styków twojego przełącznika (przycisku). Tego na na wejściu przerzutnika. A przez to niepoprawne przełączanie się przerzutnika.
On ma tylko za zadanie tłumić przepięcia powstające prawdopodobnie wskutek drgań styków przekaźnika przy załączaniu. Takie kondensatory stosuje się w filtrach sieciowych zasilaczy impulsowych. Jeśli to nie pomoże, trzeba będzie pomyśleć nad "wyczyszczeniem" 5V.
Można zapamiętywać przebiegi jednorazowe, np. ładowania akumulatora, drgania styków, co się dzieje przy włączaniu urządzenia itd. Przesuwanie osi x to po prostu przesuwanie tego zapamiętanego przebiegu.
Kod nieczytelny - użyj tagów Syntax C. O eliminacji drgań styków słyszałeś? Ogólnie nie jest dobrym pomysłem włączanie przerwań przy braku procedur ich obsługi.
Hint: timer, przerwanie timera. drgania styków, denouncing Dodano po 1 http://mikrokontrolery.blogspot.co.uk/20...
Zwiększ wartość rezystorów R6 i R8 do takiej wartości aby stała czasowa wynosiła ok 20ms. Co dla C3 = C6 = 100nF oznacza R6 = R7 = 20ms/100nF ≈ 220kΩ. To powinno zmniejszyć wpływ drgań styków.
Są przekaźniki bistabilne (z dwoma cewkami), zapewni to pamięć w przypadku braku zasilania. Sam układ czasowy powinien reagować na odpowiednie zbocze. Należy pamiętać o wyeliminowaniu efektu drgania styków.
W takim przypadku ja zrezygnowałbym z INTów i przeszedł na zwykłe skanowanie klawiatury za pomocą timera i przerwania z niego - łatwo zrobisz eliminację drgań styków.
Generalnie problemem jet to co opisał Sareph - Twoja funkcja jest beznadziejnie napisana :lol: Tak arduinowo :D Po kiego grzyba sprawdzać czy przycisk jest jeszcze naciśnięty i dopiero wtedy reagować - jak wspomniano przyciski same z siebie bez naciskania nie generują sygnału, więc skoro jakiś wystąpił to wystąpił i koniec i nie trzeba sprawdzać za...
Mam książkę o programowaniu mikrokontrolerów, w której przy odczytywaniu stanu przycisków jest opóźnienie 25ms, może 10ms też wysarczy. Tak jak pisał Samuraj, wystarczają dwa takie same warunki "IF" w odstępie tych kilku milisekund. W Bascomie można również wykorzystać instrukcję Debounce, która właśnie określa opóźnienie przy odczytywaniu stanu portów...
Przycisk do zasilania, za przyciskiem szeregowo rezystor do CLK, równolegle kondensator między CLK a GND.
Przyczyną mogą być wspomniane w moim poprzednim poście drgania styków. Rozwiązanie kolega znajdzie [url=http://mirekk36.blogspot.com/2012/1... W przypadku kontaktronu mogą być znaczne - drgania te powodują zliczenie kilku impulsów zamiast jednego.
Widziałem podobne rozwiązanie kiedyś w jakimś magnetowidzie. Czyli sprawdza się nawet na skalę masową. :) Oczywiście, drgania styków też będziesz musiał filtrować - przez sprawdzanie stabilności wyniku. Ten ADC jeszcze do czegoś wykorzystujesz?
Zastąpić można np. If sw=0 then waitms 10 if sw=0 then Coś tam wyelimnuje to tzw. drgania styków, czyli zastąpienie DEBOUNCE
Uwagi: - te kondensatory nie eliminują jakichkolwiek drgań styków. - diody w wyświetlaczu nadal mają nieprawidłowo ograniczany prąd - przy 78L05 (to powinien być 7805, ten układ będzie pobierał więcej niż 100mA) nadal brakuje wymaganych kondensatorów.
Niestety takie coś nie zadziała ponieważ jest toś takiego jak drgania styków. Podczas wciskania/puszczania przycisku wygeneruje się wiele przerwań. Temat tego typu pojawia się raz w tygodniu więc rozwiązania szukaj tam. Już pomijam to, że nigdzie w pętli główenej/przerwaniu nie masz wyłączania diody;)
Odczyt stanu przycisku powinieneś realizować kilkukrotnie w przerwaniu, aby wyeliminować drgania styków. Twoim problemem jest fakt iż podczas zdarzenia wywołanego przyciśnięciem przycisku, cały czas sprawdzasz jego stan i znowu wywołujesz akcję. Skorzystanie z dobrodziejstw przerwań rozwiąże problem.
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.
Witam Najprawdopodobniej, przełączasz „up/down” jakimś mechanicznym przełącznikiem. Drgania styków tegoż przełącznika powodują oscylacje i stąd ten efekt. Wstaw na wejściu przełączania jakiś przerzutnik a powinno efekt ten wyeliminować. Pozdrawiam.
Unsigned char to jeden bajt zaś int nie może być mniejszy niż 2 bajty. Opóźnienie 100ms w warunku eliminuje drgania styków. Dla zabezpieczenia można oczywiście dodać flagę a następnie sprawdzać jej stan w momencie sprawdzania warunku.
Spróbuj dodać kondensator 100nF, problem w tym że kondensator nie eliminuje problemu całkowicie. są układy które problem eliminują ale wymagają więcej elementów i zasilania. Kondensator ma być równolegle jak w sieci wyczytałem? Do pedału mogę dobudować układ i doprowadzić zasilanie.
Witam Prawdopodobnie masz problemy z drganiami styków mikrowyłącznika. Stosuje się układy RC do eliminacji tych drgań. Myślę, że taki układ załatwi Twój problem. Jako, że poruszałem już ten temat to poniżej jest link: http://www.elektroda.pl/rtvforum/topic10... piąty post od końca. Tam zamieściłem już odpowiedni schemacik.
Jeżeli będą jakieś problemy, to będzie to oznaczać kiepski program. Należy też pamiętać o możliwych drganiach styków kontaktronów. Wstawienie takiego kondensatora spowoduje powiedzmy, że pewne wydłużenie impulsu. Jednak nie uzyska się impulsu prostokątnego z uwagi na rozładowywanie kondensatora przez rezystor. Lepszy byłby NE555 w roli przerzutnika...
Tak, do wejścia licznika 4510 (pin 15) doprowadzasz sygnał z kontaktronu. Musisz zastosować jeszcze układ gaszenia drgań styków złożony z kondensatora i rezystora. Poszukaj na forum, znajdziesz na pewno.
Rezystory podciągające ATMega ma wbudowane - trzeba tylko włączyć. Jeśli to praca inżynierska to pora zacząć od podstaw pracy z AVRami... A do eliminacji drgań styków czasem same kondki nie starczają - owszem, pomagają, ale nie niwelują problemu do 0
Po pierwsze, drgania a nie iskrzenie styków. Wątpię, żeby przy paru mA i paru V styki Ci iskrzyły, a jak tak jest, to lepiej sprawdź dokładnie układ... Po drugie co znaczy, że rezystor równolegle z kondensatorem? Możesz to objaśnić albo narysować? Po trzecie, jaki mikrokontroler? Niektóre mają sprzętowo realizowaną eliminację drgań styków. Po czwarte,...
Tu był taki temat: https://www.elektroda.pl/rtvforum/topic1... Generalnie to DC zasilane z AC może mieć drgania styków w takt zasilania i prąd cewki może być za mały bo poza rezystancja ogranicza go indukcyjność dla prądu AC Zasilanie przekaźnika AC z DC może prowadzić do większego prądu w cewce (wpływ na tylko rezystancja), przegrzania i spalenia.
Układ z pierwszego schematu nie koniecznie będzie pracował poprawnie z powodu braku układu eliminacji drgań styków (przycisku). I jeszcze może takie pytanie trochę nie na miejscu, ale czy podłączyłeś zasilanie do układu 4013 (nóżka 7 i 14) ?
A co zrobić żeby kolejne kliknięcie zmieniło x na zero? [syntax=c]if(PINC & 0x01) { if (x) x = 0; else x=1; }[/syntax] Oczywiście musisz też zrobić jakąś eliminację drgania styków.
Jeśli to jest dokładny schemat, to działa jedynie przypadkiem, a te diody tak podłączone w końcu spalą port lub same siebie. A sam problem może wynikać z drgania styków lub z tego, że się układ resetuje z braku filtrowania i ogólnie kiepskiego zasilania wynikającego z niepodłączenia wszystkich pinów.
Tam masz: [syntax=c]for (;;) { void klawisze(void); //za często co z drganiami styków //co to za wywołanie funkcji wystarczy klawisze(); }[/syntax] a raczej powinno być co kilkadziesiąt ms, czyli tak: [syntax=c]for (;;) { if(anoda==0) klawisze(); //co 32ms }[/syntax]
Mozesz mi jeszcze wytłumaczyc jak działa ta funkcja: uint8_t klawisz_wcisniety(uint8_t klawisz) { if( ! (PINC & klawisz)) //klawisz wcisniety { _delay_ms(80); //czas drgania styków if( ! (PINC & klawisz))return 1; } return 0; } PINC & klawisz - to ma wartość 1 jeśli na porcie C pin...
To zamiast wprowadzań napięcie do AVR w miejscu VCC dać GND? Tak, a R9 i R16 usuń. Dodaj także kondensatory filtrujące 100nF jak najbliżej pinów Vcc tak jak C5. Z drganiami styków poradzisz sobie programowo - więc elementy na pinie PB2(16) są zbędne: http://mikrokontrolery.blogspot.com/2011...
Na bramkach będzie strasznie zagmatwane. Na początek potrzebny jest przełącznik zależny, odporny na drgania styków. Wiem że jest na forum schemat na 4017. Dalej wystarczą same diody, którymi zaprogramować można co przy konkretnym włączniku ma świecić. Załączanie napięcia można zrobić na mosfecie P, lub N ale musi być na masie.
żeby program działał tak jak napisałeś musisz wyeliminować drgania styków przycisku (poprzez np. dodanie opóźnienia) w przeciwnym razie tak na dobrą sprawę będzie loteria (po każdym włączeniu przycisku wyjście się załączy i wyłączy kilka razy i nie wiadomo czy stanie zostanie ostatecznie włączone czy wyłączone). Co do ASM to nie jestem w tym biegły.
Problem pojawia się, kiedy próbuję w obrębie funkcji wyzwalanej przerwaniem wykonać operację dodawania i wyciągnąć wynik. napisz w przerwaniu tak: [syntax=c]stykx=stykx+1;[/syntax] albo krócej: [syntax=c]stykx++;[/syntax] Drgania styków kontaktronu będą powodować chaotyczne naliczanie. Zrób debouncing programowo albo sprzętowo.
Witam. Jeśli już to do GND . Pin6 procesora masz podciągnięty do " plusa ". Tylko weź pod uwagę że microswitch może ( na skutek drgań styków ) podawać " fałszywe impulsy. Pozdrawiam. Dodając - I jak - ruszyło? Z czego cewka zapłonowa? Przewijałem takie malutkie cewki - koniecznie musisz zalać dokładnie żywicą / lakierem. Chodzi między innymi o drgania...
Tak czy siak masz poważny błąd. [syntax=c]if (pinstate_II_to_P != digitalRead(II_to_P)) [/syntax] i [syntax=c]pinstate_II_to_P = digitalRead(II_to_P);[/syntax] Pamiętaj że drugi odczyt może być już zmieniony w trakcie wykonywania tego if-a. Moim zdaniem lepiej odczytywać stan do zmiennej i operować na zmiennej. Wtedy nawet możesz sie pokusić o eliminacji...
Zabezpieczenie przed drganiami styków jest zapewne zrobione programowo, ale coś im nie wyszło skoro oszukuje. Możesz zrobić dodatkowe zabezpieczenie dokładając rezystor z kondensatorem. Przykład jak to wygląda masz np. tutaj .
Klawiszy (poza wyjątkowymi sytuacjami typu wybudzanie uC) nie robi się na przerwaniach INT. Delaye w przerwaniu to nieporozumienie. Twoje przerwanie realizuje się tylko po wciśnięciu przycisku, więc trudno by było, aby zwróciło informację o jego zwolnieniu. Zrób przerwanie zegarowe co 25-50ms i cyklicznie sprawdzaj stan klawiatury. Opanujesz w ten sposób...
Wszystko z powodu udziwnień które stosujesz. A wystarczą definicje dla LEDów ON i OFF. Oraz sprawdzanie stanu przycisku. [syntax=c]if(PIND & KEY_UP1) LED1_ON; else LED1_OFF;[/syntax] Eliminacja drgań styków jest niepotrzebna skoro ma to być układ kombinacyjny, a do tego niczym nie sterujący a jedynie zapalający LEDy.
Enkoder to mechanicznie zwykły przycisk. Ma też wszystkie wady przycisku, czyli np. drgania styków. Wiele enkoderów na jeden "przeskok" generuje 2-4 impulsów i oczywiście czasy trwania poszczególnych faz zależą od szybkości kręcenia. Przejrzyj darmowe przykłady do książek w mojej stopce - masz tam przykłady obsługi enkoderów w oparciu o ATMega i XMEGA.
To co starasz się osiągnąć robi się eliminując drgania styku przycisku. Jak nie chcesz się w to zagłębiać to po prostu instalujesz gotową bibliotekę, jest ich od groma - bounce2, easy button, analog button, przy okazji nie będziesz musiał robić resetu całego układu tylko po to by zrobić kolejne cyknięcie zgrzewu. W zamian za ignorancję z obsługi drgań...
W celu eliminacji drgań styków należy użyć przerwania licznika, by odczytywać stan przycisku tylko raz na około 10 ms . Nie używamy funkcji Debounce i delay_ms ! Czy przycisk został naciśnięty sprawdzamy w zmiennej globalnej dostępnej w programie głównym.
Tranzystory sterujące diodami połączyłbym trochę inaczej: http://obrazki.elektroda.net/3_124643515... Rezystor na bazie tranzystora ma 4,7kΩ. Co do tych kondensatorów to ja uważam, że są zbędne, gdyż drgania styków można rozwiązać programowo (ale to tylko moje zdanie i wszystko zależy co to ma robić/jak działać).
Wygląda to na jakiś odczyt matrycowy, czy coś w tym stylu dla tego układu, na szybko analizując połączenia. To jest impulsator mechaniczny, więc jeśli chcesz go zastosować poza układem myszki, to po prostu odetnij go od całej reszty i podłącz zgodnie z zasadami podpinania impulsatorów mechanicznych (czyli eliminacja drgań styków etc.)
Tak jak zauważył kolega powyżej, kondensator C14 jest podłączony do zasilania a nie do przycisków. C1,C2,C4,C5,C14 to kondensatory odprzęgające zasilanie, niezbędne praktycznie przy każdym w miarę szybkim układzie scalonym, kiedy układ scalony pobiera krótki impuls prądu taki kondensator znajdujący się w pobliżu zapobiega spadkowi napięcia. Jeśli kondensatora...
Sygnał na dwóch wejściach enkodera jest w zależności od kierunku obrotu przesunięty w fazie. A ten kod to wykrywanie sekwencji. Na początku wpisujesz stany pinów do zmiennej i na jej podstawie (o obecnego stanu) zmieniasz stan na kolejny. Drgania styków eliminowane są poprzez przejścia wewnątrz danej sekwencji. Wystarczy wrzucić go w przerwanie co ileś...
Właściwie nie bardzo wiem o o ci chodzi.Rozumiem,że chcesz wyzwalać przeezutnik dwoma niezależnymi stykami.Problem o którym piszesz jest powodowany drganiami styków podczas przełączania .Eliminują to układy które zalaczaam.RES2=10k,CAP=2.2u.Z wyjść tych układów możesz sterować co chcesz.Tylko wybierz układ który w stanie spoczynku ma na wyjściu żądany...
Denerwuje mnie zjawisko drgania styków w mikroprzełącznikach w myszach np. firmy A4. Powoduje to oczywiście, że po pewnym czasie eksploatacji, pojedyncze klniknięcie jest już interpretowane jako podwójne, ze wszystkimi tego skutkami. Oczywiście kupno nowej myszy to grosze i żaden problem. Ale dlaczego tak się dzieje? Przecież powinny być bufory przeciwdziałające...
Proponuję tarczkę z polami czarnymi/białymi i podwójny transoptor odbiciowy - zasada wykrywania kierunku jak w enkoderze inkrementalnym. Pewne i bez drgań styków. Lub transoptor z myszy. zasada wykrywania kierunku: https://www.elektroda.pl/rtvforum/topic3... Tylko jedna modyfikacja - wystarczy pojedynczy rząd szczelin i odpowiednie ustawienie...
Witam, Czy problemem może być to, że wejścia w stanie 0 wiszą w powietrzu? podłączyć je przez 100k do masy ? Tak, układy wykonane w technologii CMOS mają ogromną impedancję wejściową, wejście "wiszące w powietrzu" może mieć nieustalony poziom logiczny. Drugim problemem może być wejście zegarowe CP. Jest ono uaktywniane narastającym zboczem, używasz...
Witam, W tym temacie jest coś właśnie w tym rodzaju. http://www.elektroda.pl/rtvforum/topic11... Jeżeli wejście zegarowe będzie wyzwalane przyciskiem to trzeba zadbać o eliminację drgań styków tego przycisku, by nie występowało przełączanie tego licznika w sposób nie przewidywalny. Wejście reset tego licznika w Twoim przypadku należy połączyć...
Pytanie jak w temacie. Jak zrobić żeby nie drgał przekaźnik ? Ale szybko reagował na zanik napięcia.
Jedynymi układami jakie znam, do regulacji napięciowej jest właśnie ten LM i TDA1524, ale oba mają 2 pasmową eq. Przerzutniki są ok ;) Tylko pojawia się problem z eliminacją drgań styków (niby nic, a dało mi nieźle popalić przy budowie licznika) Dla tego stosuję przyciski przełączane-chwilowe, a nie tylko zwierne. Pozdrawiam.
drgania styków mirek drgania styków przerzutnik drgania styków bascom
kopanie bitcoin utworzyć skrót dostawca internet wrocław
konwerter inverto warszawa irekr
Candy CDIN 1L380PB – migające diody, pisk po podgrzaniu wody, diagnostyka i naprawa Renault Grand Espace – zalecane ciśnienie w oponach, wartości dla różnych wersji