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) ?
Czy w S7 nie ma możliwości włączenia dla danego wejścia sprzętowego filtrowania np. na poziomie 100ms ? W innych sterownikach PLC jest takie rozwiązanie i nie ma potrzeby dla tak trywialnego zadania stosowac dodatkowych programowych zabiegów.
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ć...
Brak oczekiwania na zwolnienie przycisku i eliminacji drgań styków.
Zrobiłem już dwa schematy to przedstawię obydwa. http://obrazki.elektroda.net/29_12310208... Tranzystory MOSFET, to tak żeby się nie rozwodzić to w praktyce są bardziej korzystne przy większych mocach (prądach). A Ty stosując żarówki 15W będziesz miał prąd 2,5A. Stosując tranzystory bipolarne trzeba by było dawać po dwa tranzystory w układzie...
Najpierw krótkie odpowiedzi na część pytań: 3. Generalnie jest OK z wyjątkiem: - pomyłki podłączenia tranzystorów pod kropkę a nie katody wyświetlaczy, - nie podłączyłeś pozostałych trzech wyświetlaczy, ale rozumiem, że jest to związane z Twoim pytaniem nr 4, - drobiazgi (aczkolwiek istotne) to zasilanie, ale nie pokazałeś go więc nie ma co analizować....
W sumie najbardziej mnie interesuje czy do eliminacji drgań styków przycisku większa pojemność nie zaszkodzi... Z tego co czytam, nic się nie stanie :)
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.
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.
Jeżeli w realu wykonałeś to tak jak na tym schemacie, to głównymi błędami jest brak układu eliminacji drgań styków przycisku, oraz pozostawienie nigdzie niepodłączonych wejść R i S.
https://www.youtube.com/watch?v=v8KXa5uR... w tym filmie jest wyjaśnione jak budować taką funkcję ze switch case na przykładzie przycisku i eliminacji drgań styków. Do przycisków akurat jest też mnóstwo gotowych bilbliotek, polecam np. OneButton - obsługuje wciśnięcie, podwójne, przytrzymanie i jego czas.
Spójrz tutaj : https://www.arduino.cc/en/tutorial/switc... Część z millis() - time > debounce odpowiedzialna jest, jak sama nazwa wskazuje za eliminację drgań styków przycisku. Jeśli w swoim kodzie masz już zaimplementowane, możesz pominąć.
To że się włącza i wyłącza prawdopodobnie związane jest z tzw. drganiami styków. W twoim programie brak jest eliminacji drgań styków przycisku. Tematów z tym związanych jest na elce dużo. Ponadto stosowanie delay w pętli głównej nie należy do dobrego stylu programowania. Zamiast tego należy użyć timerów i tzw. maszyny stanów. Zdaję sobie sprawę, że...
witam sugeruje zwrócić uwagę na eliminacje drgań styków przycisku czyli wykrycie nacisniecia przycisku mozna zrealizowac tak: Albo zamiast modyfikować program podlutuj równolegle do przełącznika kondensator o pojemności kilkuset nF - pomaga jak ręką odjął.
Z tym NE555 to całkiem inna historia. Tu jest temat gdzie między innymi wykorzystywano ten układ 4017 w podobny sposób jak Ty tutaj. Przejrzyj go sobie bo jest tu jeszcze kwestia eliminacji drgań styków przycisku, oraz resetowanie układu po załączeniu zasilania. W tamtym temacie uwzględnione są właśnie te sprawy. http://www.elektroda.pl/rtvforum/topic17...
Z tego co widzę, to brakuje Ci sygnału zegarowego - narzędzia do syntezy raczej sobie nie radzą z tego typu układami (same latche, bramki i sprzężenie zwrotne). Poza tym brakuje Ci eliminacji drgań styków przycisków (debouncing). A na dodatek narzędzie Ci mówi, że niczego nie przypisujesz do sygnału aktualna - z tego bierze się reszta problemów. Implementacja...
Masz trzy przyciski, które nie wiadomo jak podłączyłeś. Przyciski mogą działać nieprawidłowo, wewnętrzne rezystor podciągające nie są włączone i brak eliminacja drgań styków przycisku. Po konfiguracji PORTC jako wejście, dopisz do programu: [syntax=basic4gl]Set Portc.0 Set Portc.1 Set Portc.2[/syntax] Eliminacja drgań styków (jedna z możliwości): [syntax=basic4gl]...
Mowa była o eliminacji drgań styków. Przycisk, przekaźnik, mikroswitch, kontaktron - bez różnicy. Każdy ma pesymistyczny czas drgań nie mniejszy niż 5 ms, do każdego stosują się te same zasady, można tylko regulować czas. Do żadnego nie nadają się przerwania*. * - od każdej reguły są wyjątki, możemy pokazać, że w pewnych sytuacjach należy użyć przerwań....
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.
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.
lepiej sprawdzi się rejestr przesuwający Oczywiście można i tak ale to niestety nie jest rozwiązanie wprost. Trzeba jeszcze zadbać o eliminacje drgań styków przycisków a do tego będą potrzebna kolejne części. Rozwiązanie na mikrokontrolerze w najprostszej formie wymaga tylko dostarczenia odpowiedniego napięcia zasilania (powiedzmy stabilizator 7805...
Ok , a tak bez analizy mógłbyś mi powiedzieć jaki wpływ na działanie Atmegi8 mają delaye :( programy są napisane w taki sposób że ich działanie przynajmniej w symulatorze jest poprawne, w wersji rzeczywistej program uruchamia sie po wciśniciu jak napisałem i przelatuje przez wszystkie podprogramy wszystko świeci jak ma świecić tylko nie działa to w...
Pierwszy film pokazuje (na przykładzie układu eliminacji drgań styków przycisku) zjawisko indukcyjności kondensatora, przycisku, styków płytki i rezystora, i jest filmem tworzonym na potrzeby artykułu: http://mikrokontrolery.blogspot.com/2011... gdzie jest to wytłumaczone na przykładzie dokumentacji Atmela opisującego...
W pliku jest generator z regulacją frq + position led + obsługa przycisków ****************************************... posiadam jeszcze projekt płytki w eagle jak potrzeba to mogę podesłać pozdrawiam
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.
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.
Problem faktycznie leży w płytce , zrobiłem na stykowej tylko, że jeden pcf, ale dodałem elektrolit i ceramikę na zasilanie, plus na przycisku dodałem sprzętową eliminację drgań styków , i nie wiem co pomogło ale to mi się nie zawiesza. Natomiast na płytce dodałem elektrolity i ceramikę od spodu i było bez efektu, więc pewnie najlepszy efekt daje ,...
1) Czas masz źle policzony, rzeczywiście wychodzi 2 sekundy :) Policz jeszcze raz, np: #define F_CPU 14745000ul #define TIMER_PRESCALE 1024 #define SECONDS(s) ((s)*(F_CPU)/(TI... 2) podpięcie przycisku pod przerwanie to pomyłka - poczytaj o eliminacji drgań styków 3) po wyłączeniu diody musisz zatrzymać...
Nie znam sie na twoim VHDLu, ale jesli tyle kodu jest tylko do obsługi klawiszy to jużgo nie lubie. Ja wyznaje taką zasade, że co określony czas sprawdzam stan klawiszy, i jesli odczyta że naciśniety to sprawdzam jego poprzeni stan, jesli poprzednio nie był naciśniety to uznaje dany klawisz został naciśniety, zapamiętuje aktualny stan (do następnego...
Bez sensu, po co pierwsze zmieniasz rejestr port, po ro by go odczytać? Pozatym gdzie eliminacja drgań styków?
podczas odczytywania napięcia wejściowego z pinów analogowych (GPI: 34,35,36,39) Te GPIO nie mają wbudowanych wewnętrznych rezystorów pull-up czy pull-down, więc mogą pracować tylko w trybie INPUT. Jeżeli chcesz podłączać do tych wejść przyciski, to muszą być one wstępnie spolaryzowane przez użycie zewnętrznych rezystorów pull-up do 3V3 lub pull-down...
Aby to zlikwidować skorzystaj i innej metody eliminacji drgań styków a najlepiej umieść obsługę przycisków w przerwaniu... ...timera, tu jest przystępnie wytłumaczone jak obchodzić się z timerami http://diycenter.acid19.linuxpl.com/read... Timery działają asynchronicznie w stosunku do głównej pętli programu, więc timer licząc czas...
Witam Hmm, jednak eliminacja drgań styków, a oczekiwanie programu na puszczenie przycisku to dwie różne rzeczy... Pozdrawiam Piotrek
Twoja funkcja do odczytu stanu przycisków powinna wyglądać mniej więcej tak: lcd_goto to pokaż jak ona wygląda. Ogólnie makro: menu_set_xy powinno ustawić kursor w odpowiedniej pozycji gdzie x jest z zakresu to 0 ...15 a y 0 ...1.
Co do eliminacji drgania styków to jeden rezystor i kondensator do wejścia przycisku załatwiają sprawę tak ale wtedy wychodzi mniej elementów niż u Ciebie nie będzie już prawdą.
Niedawno zbudowałem timerek w którym stan przycisków sprawdzam tak : callsprawdz ;sprawdzaj stan przyciskow -------------- ------------- ------------- sprawdzcallspr_s1 callspr_s2 return ;---------------------- spr_s1btfscPORTB,4 ; wcisniety ? return ; nie btfscPORTB,4 ; puszczony goto$-1 ; nie -------------- ; tak, puszczony ------------- -------------...
Płytki Arduino mają tę zaletę, że są tanie i działają po wyjęciu z pudełka, zaprogramować można je z Arduino IDE, Eclipse (programem napisanym w C lub z pluginem Arduino) i to samo z Atmel Studio (tu już programator minimum MKII lub plugin Arduino do używania portu COM). Chińskie klony Arduino to jednak nie to co chińskie najtańsze wiertło, które można...
W układzie ze schematu w poście #6 brakuje kondensatora. Kondensator o pojemności kilkunastu-kilkudziesięciu nF powinien być włączony równolegle z mikroprzełącznikiem celem eliminacji drgań jego styków. Bez tego kondensatora, układ może kilkakrotnie załączać i rozłączać przekaźnik, co będzie po prostu denerwujące w użytkowaniu, a ponadto może doprowadzić...
>dondu Autor tematu w pierwszym poście nic nie pisał o przesyłaniu komend assemblera a jedynie w następnym poście potwierdził sugestię Piotrus_999 która w tym przypadku jest błędna a autor wątku przyjął to za dobra monetę. Piotrus_999 nie wie jak jest skonfigurowany moduł Easy8051 więc pianie o rozkazie MOV P1,P2 nie ma żadnych podstaw merytorycznych....
Czy to blokowanie przerwań w odpowiedniej procedurze obsługi to w celu eliminacji drgań styków? Jeżeli tak, to dla przycisku 2 nie jest to poprawnie - zarówno naciśnięcie jak i puszczenie ma prawo wygenerować zbocze narastające, a nawet kilka.
W takim razie nie trzeba żadnych rezystorów. Jeden koniec przycisku podłączasz do wybranego portu mikrokontrolera, a drugi do masy. W programie musisz dać "0" zamiast "1", ale to chyba wiesz sam. Przykładowo przycisk dołączony do PB1 ma zrobić podniesienie wartości I o jeden: $REGFILE="m8def.dat" $CRYSTAL=8000000 Config Pinb.4 = Output Config...
Kondensator masz podłączony do zasilania a nie do przycisków. Nie jest więc zwierany. Plan był chyba inny?
Najpierw kwestia załączania: Mosfet powinien być z kanałem typu N o jak najmniejszym współczynniku R DS . Następnie jego bramka przez rezystor powiedzmy 10k podciągnięty do masy, zaś z + łączyć powinien go np. miniaturowy mosfet z kanałem typu P (np. BSS84). Bramka mosfeta z kanałem P przez rezystor np. 100? połączona z wyjściem mikrokontrolera oraz...
kolego poczytaj o metodach eliminacji drgań styków. [url=http://mikrokontrolery.blogspot.com... LINK
Jeszcze przydała by się jakaś funkcja eliminująca drgania styków. Przy takim algorytmie jak autor chce mieć oraz zastosowanych delay-ach, a także zaproponowanym przez Ciebie sposobie wykrywania naciśnięcia przycisku, nie będzie potrzeby eliminacji drgań styków.
Za to tym, co na pewno należy zrobić w przerwaniu timera, jest badanie stanu i eliminacja drgań przycisków. Eliminacja drgań styków w przerwaniu timera i na dodatek na pewno. Kiepska idea. Albert
Witam. Przypuszczam że autor tematu po prostu w swym zapytaniu pomylił się, zresztą wspomniał o zastosowaniu przerzutnika. Także jednak przedstawię dwa rozwiązania przerzutnika działającego tak jak kolega chyba by sobie życzył. Chyba że jednak chodzi o coś innego. http://obrazki.elektroda.net/75_12181374... Wykorzystałem tu akurat przerzutnik typu...
Witam! Mam problem który już powoduje że siwieję... http://obrazki.elektroda.pl/4133245700_1... Tak wygląda mój sposób eliminacji drgań styków. Idea działania przycisków jest dość prosta, każdy przycisk wywołuje przerwanie na INT0 w którym jest sprawdzany czy na którymś z pinów także nie pojawił się stan niski, jeśli tak to ten przycisk...
1. jaki język programowania? 2. ja bym to zrobił tak: a) Timer ustawiasz, żeby łatwo zliczał impulsy do odmierzenia czasu 2s. b) pierwsze naciśnięcie przycisku (po eliminacji drgań styków) wubudza timer c) każde kolejne naciśnięcie przycisku przed upływem 2s zwiększa zmienną, jeśli dojdzie do 2 to wtedy ją zerujesz, zatrzymujesz timer i włączasz tą...
a jak podłączyłeś ten filtr ? to podłącza się ( równolegle R z C) do masy w celu eliminacji drgań styków.
wyrzuciłbym całą lewą stronę - z 1C2a, a wejście CLK układu 1C1a "podciągnął" rezystorem 10k do + a switchem zwierał do masy - dla eliminacji drgania styków równolegle do przycisku kondensator 100nF Dodano po 5 http://obrazki.elektroda.net/17_12882542... Dodano po 1 jeśli chcesz zamienić stan przekaźnika po włączeniu zasilania to zamień rezystor...
Lepiej chyba będzie, jak narysujesz układ, w którym ma być realizowane to "filtrowanie szumów" (z czym współpracuje przełącznik). A może chodzi po prostu o eliminację efektu drgań styków przełącznika :?:
Jak zwykle można to rozwiązać na tysiąc sposobów. Skoro to LED CUBE, to zapewne uC działa z możliwie największym taktowaniem. Mam rację? Dodatkowo zapewne używasz jakiegoś timera który generuje przerwania o ściśle określonych cyklach. Trafiłem ponownie? Jeśli tak, to sprawdzanie przycisku i eliminacja drgań styków nie będzie żadnym obciążeniem dla mikrokontrolera....
Nie no, chciałem tylko wybadać poziom umiejętności. Więc tak, potrzebujesz sterownik silnika krokowego - myślę że parka układów L297 + L298 wystarczy. Do tego układ logiczny, który podtrzyma ENABLE po wciśnięciu przycisku i zwolni na podstawie sygnałów z pedałów hamulca i gazu. Do tego układy RC na wejściach w celu eliminacji drgań styków, oczywiście...
Tak. Teraz dalej - układ eliminacji drgań styków i autoreset, po włączeniu zasilania.
Zdecyduj się, co ma być podłączone do wejść. Jeśli logika, to użyj mojego programu i wywal delay_us(). Jeśli przyciski, to najpierw musisz przeprowadzić eliminację wpływu drgań styków, sprzętowo lub programowo. Programowo odczytujesz stany przycisków co kilka ms i sprawdzasz - jeśli najstarszy wynik jest różny od wszystkich późniejszych, to wykryłeś...
Zapoznaj się z drganiami styków i przykładami eliminacji programowej: http://mikrokontrolery.blogspot.com/2011... Na tej podstawie zrobisz sobie funkcjonalność którą potrzebujesz, wprowadzając dodatkowo jakąś zmienną mówiącą o stanie urządzenia (On - off).
Zasadniczo przycisk ma wybudzać z powerdown a potem normalnie ma służyć jako przycisk funkcyjny z programową eliminacją drgań styków to znaczy czeka on 20ms.
Dzień dobry, chciałbym zaprezentować projekt, który nie jest ani nowoczesny, ani nie jest jakoś super pioniersko wykonany. Stanowi on jednak całkiem zgrabne rozwiązanie pewnego dosyć uciążliwego problemu. Geneza, czyli do czego to służy? Od roku mniej więcej dwutysięcznego, jestem posiadaczem lampowego radioodbiornika Diora Sonata. Mniej więcej w tym...
Co do sposobu podłączenia Twojego mikrokontrolera, zacznij od przestudiowania tego artykułu i popraw swój schemat: http://mikrokontrolery.blogspot.com/2011... Zaglądnij do datasheet MC145026, bo na Twoim schemacie nie ma filtrowania jego zasilania (rys 18): http://www.freescale.com/files/rf_if/doc...
...do przycisków klawiatury dodałbym filtry dla eliminacji drgań styków. A konkretnie co i w jaki sposób podłączone?
Kup przełącznik bistabilny latarkowy. Tanio, prosto, pewnie. Bez rzeźbienia. [url=https://sklep.avt.pl/pl/products/pr... Dawno temu robiłem takie przerzutniki jak potrzebujesz i ja bym wykorzystał przerzutnik D w konfiguracji dwójki liczącej. Spokojnie znajdziesz o tym informacje,...
Zewnętrzne rezystory pull-up do przycisków możesz śmiało wywalić i włączyć wewnętrzne rezystory pull-up. Mają one typowo 25kΩ. Tę wartość podstaw do wzoru Rudolfak i oblicz jaką wartość kondensatora wiedząc, że drgania styków trwają max 25ms. Natomiast rezystory 100-300Ω, oczywiście zastosuj. Nie odpowiedziałeś na pytanie dot programowej eliminacji...
O drganiach styków wiesz?: http://mikrokontrolery.blogspot.com/2011... Wykorzystaj Time do ich eliminacji.
Encoder tak samo jak przycisk wymaga albo eliminacji drgań styków albo obsługi w przerwaniach, w sumie też z eliminacją drgań. Jak piszesz kod z delay to nic nie musi działać jak chcesz. Naucz się zarządzać czasem w programie przy pomocy millis/micros, zainstaluj bibliotekę do encodera, silnika krokowego (np. AccelStepper obsługuje ten driver krokowca)....
Prosze bardzo: 'Program regulujący prędkość obrotową silnika DC 12 V 'Do sterowania wykorzystano sygnał PWM 'Częstotliwość przebiegu PWM ok. 254 Hz - 8 MHz/510/64 'Przycisk S1 zwiększa prędkość obrotową silnika 'Przycisk S2 zmniejsza prędkość obrotową silnika $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal...
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...
Mam jeszcze pytanie odnośnie sprzętowej eliminacji drgania styków. Zrobiłem sobie do tego przycisku, który podłączony jest do INT1 i ma wywoływać przerwanie na zbocze narastające filtr RC. Podłączyłem go w ten sposób: http://obrazki.elektroda.pl/1636135200_1... i dobrałem wartości rezystora i kondensatora tak jak na schemacie. W dużej...
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....
kiedy wciskam przycisk, liczenie czasu nie rozpoczyna się. czy mógłbyś zaproponować inaczej napisany kod? Wstępna ocena dostępnych informacji Analiza podanych przez użytkownika danych: - Problem zgłoszony przez użytkownika: - Po wciśnięciu przycisku, liczenie czasu nie rozpoczyna się . - Użytkownik prosi o propozycję innego kodu, który rozwiąże ten...
Program jest w 100 procentach prawidłowych, A ja Ci mowie że nie jest :D DEBOUNCE . Jest to gotowe rozwiązanie eliminujące drgania styków przycisku a co za tym idzie eliminacje zakłóceń pojawiających się na linii przycisku. Ogólna zasada jest taka że przycisk obsługuje się w następujący sposób: 1. jeżeli stan niski na przycisku czekaj ok 50ms 2. sprawdź...
Źle ci się wydaję sprawdzanie portów co 50ms daje dobre rezultaty a eliminacja drgań styków jest samoistna wystarczy ze 2 kolejne stany będą identyczne.
Jaki najprostrzy układzik zapobiega powstaniu kilku impulsów podczas naciskania i puszczania przycisku microswitch?
Witam, No jeśli nie możesz nic znaleźć, to będziesz musiał zaprojektować :) Większość układów, które widziałem, wskazuje tylko wygrywającego (pierwszego) zawodnika. Implementacja na mikrokontrolerze jest dość prosta. W pętli odczytujesz stan wejść przycisków, maskujesz te wejścia, które już "widziałeś", jeśli jest sygnał z innego przycisku to dodajesz...
[syntax=c]If ((!(PIND &0x03)) | (!(PIND & 0x06)) | ((!(PIND & 0x05))) { PORTA = 0x00;}[/syntax] to jest złe. a przerwanie? troszkę później się ty zajmij. przy przyciskach występują drgania styków. A to sprawi ci klopot
Testuj stan przycisku programowo i przypadkiem nie wpadnij na pomysł zgłaszania przerwania przyciskiem. Na początek radzę zapoznać się z hasłem "eliminacja drgań styków", które wraca tutaj co tydzień.
Będzie zliczał źle, jak nie są zastosowane żadne rozwiązania eliminacji drgań styków w przyciskach.
A co zrobić żeby kolejne kliknięcie zmieniło x na zero? To nie zadziała zbyt dobrze, bo przytrzymanie przycisku będzie ciągle zmieniać stan x na przeciwny. Zresztą taką zmianę szybciej można zrealizować za pomocą x^=1; Stąd też najlepiej PINC przypisać do jakiejść zmiennej tymczasowej i sprawdzać czy od ostatniego sprawdzenia stan przycisku uległ zmianie....
Z tym waitms chodzi o to żeby wyeliminować przypadkowe przyciśnięcie a raczej muśnięcie przycisku. Zawsze myślałem, że chodzi o eliminację drgań styków ;)
Drgania styków i ich eliminacja - poszukaj, poczytaj. Domniemam że impulsy nie pochodzą z innego układu cyfrowego ale z przycisku;-)
Witam, jestem początkującym programistom mikrokontrolerów AVR. Mam bardzo ambitny projekt w głowie. Nie przejmuj się, to z czasem przechodzi ;) Chcę podłączyć kilka przycisków do mikrokontrolera i zaprogramować je tak aby przypisać mu klawisze z klawiatury numerycznej. To musisz się zdecydować czy chcesz programować uC czy klawisze. Jeszcze nie słyszałem...
A co jest nie tak? Bo w tym kodzie nie ma w ogóle eliminacji drgań styków, ani oczekiwana po wykonaniu akcji nawet. Dlatego możliwe że jedno wciśnięcie przycisku będzie powodowało wywołanie "losowej" funkcji. *losowej - z punktu organizmu tak wolnego jak człowiek.
Bootloader jeśli jest prosty, potrafi też zajmować o wiele mniej. U mnie w jednym z projektów procesor podrzędny jest przeprogramowywany przez procesor główny, protokół jest więc bardzo prosty (zakładam, że błędy transmisji nie występują), sam bootloader zajmuje 358 bajtów (załącznik: źródła, 5 plików, m8). Co do pierwszego postu: ad 1/ Przy linkowaniu...
minuty nie przyjmą nigdy wartości -1, gdyż są typu byte, sprawdzaj czy minuty nie są równe 255 poza tym: 1. tylko zwiększanie wartości, nienajfajniej 2. brak eliminacji drgań styków 3. dziwny warunek przejścia do zapisu - daj ten 3-ci przycisk
Nie zrozumiałeś algorytmu. Bez kodu to mi się w ogóle ciężko rozumie algorytmy, także możliwe. A drgania styków są jak najbardziej istotne, sprawdzałem na oscyloskopie...zresztą to nie jest przecie wiedza tajemna... R Nie zrozumiałeś co napisałem. Ja wiem, że one istnieją, ale jak nie używasz przerwań a timerów, to nie mają znaczenia. Bo po prostu...
Witam, Przerwania zewnętrzne można wykorzystać, ale problem będzie z drganiem styków - po zwarciu/rozwarciu styki przycisku drgają kilka-kilkadziesiąt milisekund, więc są duże szanse, że zarejestrujesz dużo więcej zmian stanu niż było w rzeczywistości :) Najprościej zrobić programową eliminację drgania styków używając rejestru przesuwnego. Co jakiś...
Witam Dzieje się tak dlatego, ze masz przycisk wnoszący duże drgania styków. Jak temu zapobiec, skorzystaj z wyszukiwarki, temat "eliminacja drgań styków", gdyż temat był już ze 100 razy powtarzany. Pozdrawiam.
Poczatkowo pamiec eeprom jest zapelniona wartosciami 0xFF czyli twoja zmienna X przyjmie wartosc 255 i takie bedzie wlasnie poczatkowe opoznienie - rowne 255ms. A obsluge przycisku zrob lepiej tak: If S1 = 0 Then 'jeśli przyciśnięty S1, to Waitms 25 'opóźnienie dla eliminacji 'drgań styków If S1 = 0 Then 'sprawdzenie ponownie, czy 'przycisk S1 dalej...
Sądząc po mieszance komentarzy po polsku i po angielsku, to posklejałeś program ze znalezionych w sieci kawałków ;-) Osobiście dodałbym tam "debouncing" czyli eliminacje drgań styków. Działa to mniej więcej tak: - sprawdzasz wciśnięcie - jeśli wciśnięty to: - czekasz np 25ms - jeśli nadal wciśnięty to: - zmieniasz flagę przycisku.
Nie ma to jak odpowiadac samemu sobie ;) Ale być może ktoś z tego skorzysta, więc podam przykałd: config portd = &B00000000 'wszystkie piny jako wejście na porcie D portd = &B11111111 'wymuszamy stan wysoki na wszytskich wejściach (podciagamy - port ma wudowane rezystory podciagajace) config debounce = 30 'zwiększamy opóźnienie eliminacji drgań styków...
Jeśli chodzi o PWM to dorzucam Ci 2 programy sterowania PWM za pośrednictwem 2 przycisków w języku BASCOM. 'Program regulujący prędkość obrotową silnika DC 12 V 'Do sterowania wykorzystano sygnał PWM 'Częstotliwość przebiegu PWM ok. 254 Hz - 8 MHz/510/64 'Przycisk SI zwiększa prędkość obrotową silnika 'Przycisk S2 zmniejsza prędkość obrotową silnika...
Poczytaj to http://mikrokontrolery.blogspot.com/2011... a (int, uint, int8_t, uint8_t, char) to typy zmiennych. Więcej dowiesz się na kursie: https://forbot.pl/blog/kursy i przerób go od początku bo mylisz deklarację zmiennych z funkcjami. "volatile int SEQUENCE = 0;" możesz zamieni się w "volatile uint8_t SEQUENCE...
Pomyśl sobie, a jakbyś chciał obsługiwać nie jeden klawisz w ten sposób ale 3,4,5 albo 10 - to skąd byś wziął tyle tych przerwań ? po jednym dla obsługi każdego itp ? Do obsługi przycisków i eliminacji drgań styków w ogóle można sobie darować z powodzeniem wszelkiego typu przerwania zewnętrzne, aż skoda ich marnować ;) przydadzą się do czego innego....
Jak zrobiłeś eliminację drgań styków? Nie pokazujesz zawartości funkcji klawisz_wcisniety() oraz klawisz_wcisnie(): [syntax=c]if(klawisz_wcisniety(key_pin3)... Jeżeli nie zrobiłeś eliminacji drgań, to zerknij tutaj: http://mikrokontrolery.blogspot.com/2011...
Witam. Przedstawiam schemat ze zmiana krańcówek na NC, i uzupełniony o wartości elementów. http://obrazki.elektroda.net/26_12131184... opis elementów; Przekaźnik K1, K2, K3 -zabezpieczenie układu przed zakłóceniami na drodze do przycisku i krańcówek, IC2A i IC2B - eliminacja drgań styków przekaźnika K1, (przełączanie licznika przyciskiem),...
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...
Płytka zostala złożona. Zrobiłem to według poniższego schematu: http://obrazki.elektroda.pl/6267164900_1... jednak układ nie pracuje tak jak powinien. Po podaniu zasilania 12V oraz masy przekaźnik się załącza samoczynnie. Powinien jednak reagować dopiero na wciskanie przycisków W1, W2 i W3. Gdzie może znajdować się błąd? Wychodzi na...
gaskoin- a eliminacja drgań styków sprzętowa to jak niby wydłuża czas życia przycisków? Bo ciekawy jestem. kaczor90- w ustawianiu rejestrów w ARM to Ci nie pomogę- strasznie to wszystko porąbane. Może kiedyś. Ale zwróć uwagę na to co napisał gaskoin. Sprawdzanie stanu przycisków za pomocą przerwania zewnętrznego jest takie sobie. Lepiej robić to za...
To znaczy że powinienem dodać jeszcze jedną obsługę przerwania? A troszkę z innej beczki, dioda nie świeciła, bo wyswietlacz namieszał z przerwaniami? Przyjmij na razie jako aksjomat: nie wyświetlaj w przerwaniach, a bardziej generalnie - programuj je tak, aby ich osługa była jak nakrótsza (co np implikuje brak jakichkolwiek opóźnień). Z czasem jak...
Musi on zwiększać wartość PWM w uC, Zamiast S1 i S2. If S1 = 0 Then 'jeśli przyciśnięty S1, to Waitms 10 'opóźnienie dla eliminacji drgań 'styków If S1 = 0 Then 'sprawdzenie ponownie, czy 'przycisk S1 dalej naciśnięty, 'jeśli tak, to Incr I 'zwiększenie o jeden wartości I If I = 0 Then 'jeśli wartość I = 0, to I = 255 'wpisanie do I wartości 255 End...
eliminacja drgań styków eliminacja drgań styków sprzętowa eliminacja drgań
regulator alternatora hitachi programy kalkulator schemat elektryczny regulatora obrotów
pompa termet ecocondens silver schemat instalacji transit
Jaki MOSFET do wkrętarki 18V? Wybór i parametry Carrier 1550 zablokowany - jak odblokować bez komputera?