Użyć przekaźnika z cewką DC wraz z odpowiednim układem zasilającym.
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...
A jak ten przycisk był podłączony do mikrokontrolera? Jeśli pomiędzy plus i wejście - czy miałeś w układzie rezystor ściągający wejście do masy? Rozwiązanie z tranzystorem nie likwiduje drgań - to się robi programowo.
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.
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...
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ś?
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ę...
wstaw rezystor między kondensatorem c22 a vcc (10k).
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,...
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...
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...
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)....
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....
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...
Kiedyś widziałem jak ktoś programowo niwelował drgania poprzez "puszczenie sygnału przez rejestr". Nawet to dosyć dobrze działało. Działało to w taki sposób że przy każdym kolejnym wywołaniu pętli programu, na początku rejestr (np. 8 lub 16 bitowy), przesuwany jest o jeden w prawo, a na najmłodszą pozycję wpisywany jest stan z wejścia (przycisku). Dalej...
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...
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...
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ł...
... 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 -...
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...
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...
Na temat debouncingu poczytaj [url=http://www.elektroda.pl/rtvforum/to... temat. Warto.
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.
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.
tzw drgania styków. daj kondensator 100nF między -wejściem sygnału z przycisku do scalaka- a masą.
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. -...
Brak oczekiwania na zwolnienie przycisku i eliminacji drgań styków.
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ć...
[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ę...
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
Ja proponuję dać koendensatory 100nF do przełączników opisanych jako Pł. C12 wywalić. To rozwiąże problem drgania 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...
Jak najbardziej jest poprawne, tyle że zauważ że w obydwu przypadkach nie masz zrealizowanej programowej eliminacji drgań styków
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ć.
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.
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 .
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.
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.
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 -...
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...
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.
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.
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.
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...
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.
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.
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.
Hint: timer, przerwanie timera. drgania styków, denouncing Dodano po 1 http://mikrokontrolery.blogspot.co.uk/20...
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.
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.
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
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?
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.
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) ?
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...
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
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.
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;)
Przycisk do zasilania, za przyciskiem szeregowo rezystor do CLK, równolegle kondensator między CLK a GND.
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.
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,...
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.
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...
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.
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...
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...
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.
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.
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.
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.
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.
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]
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...
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.)
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...
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 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ń...
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.
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...
ż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.
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ć...
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.
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.
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 .
Z tego, co widać w dokumentacji są to wyjścia przekaźnikowe. Zatem jak zauważył kolega sosarek np. kiedy akumulator jest rozładowany powinno pojawić się zwarcie pomiędzy zaciskami "Bat. Low". W związku z tym praktycznie nic nie jest potrzebne, by odczytywać stany tych wyjść przez np. ESP32. Wystarczyłoby zatem skonfigurować linie GPIO jako wejścia z...
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.
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ć).
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...
Zadając pytanie tak właśnie przypuszczałem, że INT jest Ci potrzebny, a drgania należy po prostu przeczekać po zatrzymaniu timera jak napisał excray. To jest właśnie jeden z nielicznych przypadków, w których należy INT wykorzystać do obsługi przycisków.
W większości urządzeń nie ma potrzeby reagować na krótkotrwałe naciśnięcia klawiszy a nawet celowo spowalnia się reakcje aby drgań styków nie interpretować jako wielokrotnych naciśnięć. Skutek jest taki że np w klawisze klawiatury PC możesz uderzać pałką i nie zostanie to wykryte jako naciśnięcie klawisza, bo trwa za krótko. Jak zachowa się twoja nokia,...
Moim zdaniem wystarczy "połówka" 7474 - jak na obrazku: http://obrazki.elektroda.net/72_12201261... Tak jest prościej, powinno działać - nie sprawdzałem :D Można poeksperymentować z wartością C1 (zwiększyć, gdyby drgania styków S1 były niedostatecznie tłumione) lub rozbudować układ gaszenia drgań. Aha! Nie zapomnij, że 74HC74 ma dopuszczalne...
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ś...
eliminacja drgań styków tłumienie drgań styków eliminacji drgań styków
hella sterownik tester delphi ds150e zasilanie delphi
montaz czujnikow montaz czujnikow
Najlepsza spawarka TIG AC/DC do profesjonalnego spawania Jak zdjąć tylną ściankę w lodówce Samsung RB34?