Metoda jest taka ze w momencie nadejscia przerwania od przycisku odpalasz timer, ktory odmierza kilka milisekund, po czym sprawdza czy przycisk nadal jest wcisniety. Jesli tak, to znaczy ze impuls pochodzi od faktycznego nacisniecia a nie od drgania po nacisnieciu. Dla pewnosci mozna zamiast 2 dokonywac 3 sprawdzen. Czas timera musisz dobrac doswiadczalnie.
Może to zły kierunek podpowiedzi: Tak napisany program powoduje przerwanie na każde drganie przycisku podczas jego naciśnięcia. Może w tym jest przyczyna? Aby to sprawdzić albo zmień program albo dodaj kondensator do przycisku + zmień wywołanie INT1 na wywołanie poziomem nie zboczem.
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...
Kondensator mozesz tak dac, chociaz pewnie ciekawszym rozwiazaniem jest zrobienie takiego filtra programowo. Symulator drgan przycisku ci nie zasymuluje, stad klopod z takim programem. Co do rejestrow R0-R15 to mozesz je zerowac, ustawiac (255), ale nie mozesz bezposrednio wpisywac innych wartosci. Zeby to zrobic potrzebujesz ciagu instrukcji, np: LDI...
Uporządkuj program, wiem ze to 1 próba i testowa ale kiepsko się czyta takie rozjechane linie. Wciskasz przycisk - drganie zwalniasz przycisk - drganie sprawdzasz stan portu czekasz i znów sprawdzasz. i dopiero tą 2 wartością się zainteresuj.
1. Nie wykluczyles drgan na przycisku s1 2. Zebys wykonac to co chcesz zrobic bedzie ci potrzebne przerwanie. 3. Dziwie sie, ze sprawnie dziala ci ten kod (chyba, ze specjalnie robisz sprawdzanie przycisku w petli, zeby nie bylo przerwania i wykonal kod do konca, a pozniej sprawdzil czy przycisk jest wcisniety. W tym przypadku przepraszam)
Jeżeli chodzi o drganie przycisków to mam opożnienie _delay_ms(200) i załatwia sprawę 100%. Odłączyłem na test przyciski i problem ustąpił, Atmega z 20*C ,LM7805 ok 30*C, Czyli ustawić porty na wejścia, zrobić pullup rezystorem 4K7 do napiecia i czekac na rozwarcie, które mikrokontroler bez problemu łyknie jako GND?
no to skoro tak ci sie wydaje, to czemu nie przeczytasz datasheeta zeby sie upewnic? pozatym popelniles standardowy blad malo wprawionego programisty [; pierwszy jest poprawny, ale bezsensowny, drugi jest poprawny i sensowny: while (porta.f2 = 0) while (porta.f2 == 0) rozumiesz w czym problem? pozatym troche dziwny ten kod - czekasz na przycisk w while...
Myślę że lepiej zamontować oryginalne łopatki zmiany biegów. Będą wygodne w użyciu i bezpieczniejsze od dołożonych przycisków. Układ zmiany biegów jest również elementem bezpieczeństwa i na przykład drganie styków dołożonych przycisków może spowodować niezgodną z oczekiwaniami kierowcy reakcję.
Witam, oto przykład dla jednego przycisku i jednej funkcji: [syntax=c]#include ... int main(void) { [ ... ]; // inicjalizacja unsigned char del; while(1) { del=100; _delay_ms(3); // drganie styków while ( PIND & 0x80) ; _delay_ms(3); // drganie styków del=250; while( (!( PIND & 0x80)) && ( --del ) ) _delay_ms(4); if ( del ) { // puszczenie przycisku...
(at)laeleigh Proponuję do zrobienia dwie rzeczy na początek. Odnoszę się do kodu z pierwszego postu . Zmiana trybu wejścia obsługującego przycisk: https://obrazki.elektroda.pl/4585378900_...
Problemem w Twoim przypadku są prawdopodobnie drganie styków przy wciskaniu przycisków. Najprostsze rozwiązanie to: [syntax=c] while (button()) { _dely_ms(80); while (button()) {} led_on; } [/syntax]
http://www.google.pl/ wpisujesz "drganie styków" i naciskasz przycisk "Szczęśliwy traf" ... zgadnij co się wyświetli? Odpowiedź na Twój problem...
Musisz zrobić to przez przerzutnik T (na przykład) Dla przykładu takie coś: entity T_flipflop is port( ck : in std_logic; Q : buffer std_logic); end T_flipflop; architecture T of T_flipflop is begin process(ck, reset) begin if(ck='1' and ck'event) then Q <= not Q; end if; end process; end T; na ck podajesz sygnał z przycisku. Na wyjsciu będziesz...
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.
NE555 i kilka elementów. schemat w dokumentacji układu NE555. Układ jest wygodny w zastosowaniu, bo trzyma napięcia z logiki 5 V. Sam go używałem do generowania sygnału zegarowego dla układów TTL. W przerzutniku monostabilnym oprócz układu scalonego jest: 1. kondensator do stałej czasowej 2. opornik do stałej czasowej 3. kondensator i opornik na wejściu...
Co do mojego problemu z tym wysyłaniem danych. Okazuje się, że problem powoduje zbyt długie przytrzymanie przycisku oraz drganie styków. Przed chwilą dodałem po przycisku kon. 10nF i rezystor 10kOhm do masy. Problem niby zniknął tylko jak przytrzymam przycisk to wysyła znowu nie wiadomo co. Jak to kurde rozwiązać. Czy uC ma w jakiś sposób tworzy kolejkę...
Powinieneś użyć funkcji isPressed() oraz isReleased() w pętli loop() - badanie stanu pinu przez digitalRead() nie ma sensu, jeżeli chcesz uodpornić układ na drganie styków przełącznika.
witam sugeruje zwrócić uwagę na eliminacje drgań styków przycisku czyli wykrycie nacisniecia przycisku mozna zrealizowac tak: -poprzez dwukrotne sprawdzenie stanu przycisku (sprawdzenie przycisku jesli jest nacisniety to odczekanie i ponowne sprawdzenie), jesli obydwa stany beda sie zgadzac to znaczy ze przycisk nacisniety (a nie drganie styków) - po...
Na przyklad tak: while(1) { if (PORTE.0) { delay_ms(50); //czekanie na koniec drgan stykow przy zalaczaniu przycisku action(); //tutaj wpisz co ma sie wykonac while(PORTE.0); //jesli wciaz wcisniety przycisk to czekaj na zwolnienie delay_ms(50); //czekanie na koniec drgan stykow przy zwalnianiu...
Witam, zostan przy uniwersalnej, potrzebujesz tylko pare elementow i bez problemu zastosujesz wszystko w obudowach DIL. Tak naprawde potrzebujesz: przykladowa opcja 1) PIC z ADC np 12F683, potencjometr powiedzmy 10k +10u, 10k/100n na tlumienie drgan stykow + przycisk, oraz 220ohm do wyjscia MIDI, gniazdo DIN5, 10u/100n na zasilaniu i ewentualnie 7805...
Witam, dołączę się do tematu aby nie zaśmiecać forum. Moim problemem jest drganie styków przycisku aby wywołać przerwanie int2. Przyciskiem włączam i wyłączam optotriak MOC3041 który z kolei załącza sterownik lampy sodowej 70W przez triak. Problem jest taki: mimo, że zrobiłem programową obsługę drgań styków to działa ono jedynie bez obciążenia - czyli...
To jest pisane pod os`em? W kazdym razie, przerwanie sie wywoluje bo autor pisal to, nawet dobrze dziala dla przycisku wiec mysle ze sprawa samej deklaracji przerwania jest jasna ;) Jesli nie masz oscyloskopu to zastosuj uklad do eliminowania drgan stykow.
Bardzo dziękuję, to bardzo cenne uwagi jak dla mnie ;) Obecnie walczę z próbą pozbycia się przycisków menu i exit i pozostanie przy samym enkoderze. Jeśli mam włączone drganie styków (debounce) to w jaki sposób mogę sprawdzić jak długo jest wciśnięty przycisk?
Witajcie potrzebuję zrobić obsługę kliknięcia na raz dwóch przycisków, jednak nie chce mi sprawdzać już pierwszego wewnętrznego warunku, czy przycisk jest faktycznie przyciśnięty, czy to tylko drganie. Gdy dam dwa różne przyciski, to także jest reakcja tylko na pierwszy. Proszę o odpowiedź, ponieważ nie mam już pomysłów na możliwość rozwiązania. if(GPIO_ReadInputDataBit(SW_Port...
pixel7 ale bzdura. Jak chcesz zareagować natychmiast to właśnie w przerwaniu a tam ustawiasz czy zbocze wyzwalające ma być narastające czy opadające. No i jak to ma być przycisk to trzeba koniecznie odfiltrować drganie styków.
Dople , oczywiście Masz rację, lecz w tym przypadku musi być licznik zwiększający naciśnięcie przycisku, a do tego drganie styków. Co do drgań styków, niezbędny jest Timer, lub pętla, który\a odliczał\a będzie potrzebny czas.
przycisk który Ty naciskasz "raz" może wygeneruje tylko jedno zbocze, a może 10000 (drganie styków). W jaki sposób w takim razie "sensownie" obsłużyć przyciski? Polling i softwareowy debouncing - to wiem, a jak to zrobić sensownie/porządnie?
Tak, to tylko fragment mostka, nie chciałem na schemacie dublowac tego samego. Skoro układ jest poprawny, to pewnie problem tkwi gdzie indziej. Dzięki będe szukał Narazie sterowanie jest włącz - wyłącz, ale myśle o sterowaniu PWM i regulacji obrotów - stąd pytanie o przyśpieszenie wyłączanie, bo narazie to koszmarnie długo się wyłącza (wporównaniu do...
Programy do symulacji nie uwzgledniaja drgan stykow. Daj na wejscie 4017 tzn za dioda uklad odklucajacy. Opis problemu i przykladowe rozwiazania np tutaj http://mikrokontrolery.blogspot.com/2011... Druga sprawa - diode do tlumienia przepiec z przekaznika podlacza sie rownolegle do cewki katoda diody do plusa.
Kolego mirku, w zadnych ukladach elektronicznych nie zaleca sie, zeby piny wejsciowe nie byly do niczego podpiete. W najlepszym razie zwieksza to pobor pradu, w najgorszym wplywa na prace ukladu. Uwaga Kuniarza jest jak najbardziej na miejscu. Druga rzecz - pokaz gdzie Atmel zaleca robienie takiego udziwnionego resetu. Bo podales linka do jakiegos pdfa,...
Panowie, dlaczego nie zrobić sterowania diodami porządnie, tylko bawicie się w jakieś opóźnienia..? Macie w mikrokontrolerze timer z trybem porównania. 1. Robimy przerwanie od przepełnienia timera co czas wysłania na szyne danych diod pojedynczego bitu (ok 1,2 ms) 2. Ustawiamy wartość rejestru porównania na wartość "większą" lub "mniejszą" (trzeba policzyć...
No odebralem wrazenie, ze tu nie chodzi o problem ustawiania czasu, ale o sama obsluge przyciskow.. Najlepiej uzyc programowej filtracji nacisniecia przycisku. Z nimi zawsze jest problem. Co pewien okres sprawdzaj stan przycisku i wpisuj na kolejnych bitach stany do np. zmiennej typu WORD (16 bitowej). Jesli wszystkie 16 bitow sa danego stanu to taki...
W podlinkowanym kursie uczysz się używać przycisków bez delay, eliminując drganie styków, może być biblioteka, np. bounce2. Poszczególne efekty led wpisujesz w np. 10 różnych funkcji. Po wykryciu wciśnięcia przycisku zmieniasz wybraną zmienną po kolei od 0-9 i znowu od 0. W loop wywołujesz tę funkcję, która odpowiada numerkowi, może być np. konstrukcja...
W przerwaniu zewnętrznym chcę użyć przycisku (mikroswitcha), jednak by tego dokonać muszę wyeliminować drganie styków. Jak to zrobić w przerwaniu? Z góry dzięki za pomoc.
Ano tak się dzieje, jak się korzysta z opóźnień typu waitms. Ten program nigdy nie będzie działać wg zamierzeń autora, dopóki on nie zastosuje timerów zamiast opóźnień typu waitms. Niby jakim cudem miałby trafić z przyciskiem na czas wykonywania pierwszego warunku ? Proponuję "wczuć" się przez chwilę w taki procesor, który wykonuje te porównania kilkaset...
Zrób maszynę stanów (state machine) która będzie zmieniała stan po naciśnięciu przycisku. I pamiętaj aby filtrować drgające styki przycisku.
Przerwania przycisków w celu poruszania się po menu. No to będzie fajna jazda, bo każde drganie styku (wiesz w czym rzecz?) będzie generować przerwanie 2 razy. Czy to jest jakieś urządzenie bateryjne i będziesz usypiał mikrokontroler?
Oczywiście, że pomieszałeś, bo pod PD3 jednocześnie masz podłączone sterowanie anodą wyświetlacza i przycisk - jak wciśniesz przycisk, to odpowiednia cyfra wyświetlacza będzie zawsze aktywna... Użyj Timer1 w trybie CTC do odmierzania 0.01s - przy F_CPU = 1MHz chcesz mieć przerwanie z f=100Hz czyli odliczasz do 10000-1. To będzie za mała częstotliwość...
Jest coś takiego jak drgania zestyków. Przy każdym wciśnięciu przycisku (im tańszy tym gorzej :)) następuje drganie blaszek styku, które procesor rozpoznaje jako wielokrotne naciskanie switch'a. W zależności od przycisku może to trwać nawet kilka - kilkadziesiąt milisekund. Jeśli to jest Twój pierwszy program to najprościej zaraz po wykryciu wciśnięcia...
Troszkę już się programowało ale zazwyczaj zwykłe aplikacje a teraz doszedł jeszcze sprzęt , trzeba w oku mieć jakby oscyloskop, hehh . , Ps. Sprawdziłem opcję z moją poprawką hula i buczy ... zamiast 7 wpisujemy "F" no i oczywiście ze zmianą dla kolumn jak w poprzednim poście. Pozdrawiam Dodano po 14 Poniżej poprawiony kod przykładu dla klawiatury...
A w obsłudze przycisku w timerze nie uświadczę drgań styków? To fizyczne zjawisko. Jak obsłużyć przycisk w timerze? Podobnie jak z przykładu poniżej? Obsługę przerwania robiłem w ten sposób: [syntax=cpp]SIGNAL(SIG_INTERRUPT1) { przycisk++; _delay_ms(20); } [/syntax] Delay załatwił drganie styków. W while-u sprawdzałem ile było wciśnięć i zapalałem diodki....
Witam, podam ci ogolne podejscie do problemu (dawno juz sie nie bawilem 8051 i nie wiele pamietam szczegolow): - ten ktory jest master programujesz aby wykryl stan przycisku i po jego wykryciu wysyla dowolna ale z gory ustalona komende przez RS232 i to wszystko. Wypadalo by dodac programowa funcje likwidujaca drganie stykow jezeli nie ma tego w postaci...
Przepraszam, wydawało mnie się, że jest czytelne. Więc najpierw kod i objaśnienia: if(!PrzyciskON1){MIGANIE=1;... //włączam przycisk ON1 if(MIGANIE){PortLED=0;Delay... if(!PrzyciskOFF1){MIGANIE=0... OFF1 wyłączenia ON1 if(!PrzyciskON2){ZAPALENIE=...
Przeglądnij ten tutorial http://www.patron.net.pl/AVRintropl.htm Jest w nim sporo dla początkującego... Wiem bo sam od niego zaczełem... Też korzystam z tej strony, jednak tamten przykład na obsługę klawiszy nie chce mi działać. Proszę, jeśli możesz, napisz mi przykład kodu w C, który po zwarciu np. PB1 do masy poda +5 na PB2. ... DDRB &= ~0x01; //...
wszystko działa prawidłowo, po prostu aż za dobrze czyli brak zabezpieczenia przycisku, wciskając tak naprawdę możesz generować kilka impulsów (drganie styków), poszukaj na forum jak zabezpieczyć się przed tym zjawiskiem
Pierwotna wersja pięknie liczy bo założyłeś "kaganiec" na zliczanie(Twoja "korekta odbicia styków"). Drganie styków filtruje się w przypadku urządzeń mechanicznych(przycisk, styk). Oczywiście można to tutaj też zastosować ale lepiej wyjaśnić skąd się bierze tak dużo impulsów i dopiero zastosować jakieś lekarstwo. Tylko do tego potrzebny jest schemat.
Witam, Zmagam się z problemem przerwania w Atmega 8. Bez zagłębiania się w szczegóły mojego projektu, dajcie mi prosze znac czy to normalne zachowanie: 1. Przycisk S1 oraz Impulsator z przyciskiem S2. Impulsatorem "chodzę" sobie po menu i klikam przycisk impulsatora S2, który akurat w tej pętli nic nie robi, przerwania sa wyłączone cli(); ale uruchomione...
Nie opłaca się robić, na bazarach ze starą elektronika (np Wolumen w Warszawie) dość często trafić można gotowe małe liczniki panelowe Polskie (produkcja lata 70-80) wykonane na TTL o pojemności licznika 1999 na LED, cena 20-30zł często za nowe, wystarczy dorobić układ wejściowy eliminujący drganie styków zliczających obroty, dodać przycisk zerowania...
Ale z drganiami prawdopodobnie poradze sobie odpowiednim zaprogramowaniem (chce cyklicznie sprawdzac przyciski i zaleznie od tego jaka okres sprawdzania uzyskam, to doprogramuje cos co bedzie sprawdzac czy stan jest staly... wyjdzie w praniu). A moze warto kondensatorek do masy przy przyciskach? Ceramiczny? Czestotliwosc drgan pewnie zalezy od konkretnego...
Nie jesteś zbyt dokładny, w tym temacie opisałeś to inaczej: http://www.elektroda.pl/rtvforum/topic18... Sprawdź kartę grafiki, albo podłącz monitor do innego kompa. Wrażenie "wyswietlania co drugiej linii" może powodować uszkodzony elektrolit /400V w przetwornicy, lub brak impulsów zwrotnych z trafopowielacza do przetwornicy. Te usterki jednak...
Witam czy mozna w atmega16 PC0(SCL), PC1(SDA), PC2(TCK) uzyc jako wejscia? Bo zostaly mi tylko te 3 wolne miejsca aby podlaczyc przyciski. I wlasnie na PC0 dziala ladnie a pozostale dwa nie. Przyciski zwieraja do masy a to kawalek kodu: while (1) { if(bit_is_clear(PINC,PC0)) /* wcisnieto przycisk */ { _delay_ms(300); /* przez ten czas powinno ustac...
Jak masz jakieś pojęcie o programowaniu to nie powinno być problemu. Najlepiej zrobić to na timerze i przerwaniach. Sam program byłby dosyć prosty w działaniu. Ja zrobiłbym tak. Przerwanie z timera przychodzi jakieś 100 000 razy na sekundę. Robisz 1 zmienną na liczenie przerwań i porównujesz z 2 zmienną która określa jasność świecenia. Przez wszystkie...
Dokladnie o tym samym mialem napisac :) Kondensator jest potrzebny do odklocenia drgan stykow.
Chce stworzyc uklad do wlaczania/wylaczania ukladu mikroprocesorowego jednym przyciskiem. Przycisk (przez uklad eliminujacy drganie stykow) chce podlaczyc do wejscia CLK przerzutnika D (CMOS4013) a D, R i S do masy. kakazde wcisniecie przycisku spowoduje zmiane stanu na wyjsciu Q (dzielnik czestotliwosci CLK przez 2), ktore bedzie podpiete do tranzystora...
Witam, ponownie. Temat został rozwiązany - Roller Shuttery się dodały bezproblemowo. Bajer polegał na tym, że trzeba "szybko" nacisnąć przycisk B i właściwie to tyle. Pytanie tylko co to znaczy szybko wg "Fibaro" odpowiadam więc, że trzeba dłoń wprowadzić w drganie tak, żeby się zmieścić z trzema naciśnięciami w czasie 0,5 sekundy. Niestety nie da się...
Pin 15 U9 masz źle podłączony. Ma iść na anodę D2 a idzie na jej katodę i prosto na pin 4 (od cyfry 2 na dziesiątkach godzin). Dlatego stan 20:00 bezwarunkowo zeruje U9 (zamiast 24:00). Rzeczywiście. Poprawiłem i jest ok, dzięki. Zwracam się z kolejnymi problemami. Do tej pory sygnał podawałem z generatora na wejście "NA", a dzisiaj pierwszy raz uruchomiłem...
Aaaale... Czy generowanie tego przebiegu ma być jedynym zadaniem twojego mikrokontrolera? Jeśli w pętli głównej będziesz chociażby odczytywać czujnik 1wire lub mocno utylizujesz przerwania, błąd nie będzie rzędu 10% (220Hz zamiast 200Hz), tylko rzędu 50%, a może i nawet 100%. Tego nie wie nikt, i nie ma takiej mocy żeby to policzyć... Co tu dużo tłumaczyć?...
Napisz co dokładnie chcesz uzyskać. Ile trwać ma impuls i ile czasu może minąć od puszczenia przycisku by można było ponownie wcisnąć i wygenerować impuls.
Z tego co wyczytałem mniej więcej czy to ma wyglądać tak: #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include <avr/interrupt.h> #include <util/delay.h> #define F_CPU 8000000UL // zegar w Hz #define RS_BAUD...
Witam, Mógłbym poprosić dokładniej gdzie tkwił problem? Posiadam chyba ten są samą przyczynę i nie wiem jak to rozwiązać, po włączeniu z przycisku suba nie załącza sie tak jak by ten stycznik zaznaczony na zdjęciu
Witam mam problem z myszką. A mianowicie chodzi o to, że już chyba jewst troche zużyta, jej lewy przycisk. I czasem gdy kilkam szybko 2 razy to tak jak bym kliknoł 3 razy albo coś w tym stylu. (drganie zestyków czy coś takiego??). Słyszałem, że pomaga dodanie kondensatora do styków przełacznika. Poradźcie coś. Najwyżej przelutuje prawy przycisk z lewym....
Witam. Posiadam taki problem z moim kodem. Funkcja my_delay odpowiadająca za wpisanie do delaya wartości ze zmiennej po uruchomieniu nie pozwala działać innym warunkom( program nie reaguje dopóki odliczanie w my_delay się nie zakończy). Teraz nie wiem czy jest to wina kodu klawiatury, która nie pozwala działać niczemu, chyba że naciśniemy przycisk lub...
... Poza tym chyba należy pamiętać, ze rozdzielczość układu to 256 poziomów, więc 30-3V=27 --> 27/256=0,105 więc czy jest mozliwość zmiany napięcia o 50mV? chyba nie? Tak w ogóle to czy wartość wyjściowa napięcia bedzie przyjmowało wartości równe 0,105V*n gdzie n=0-256 ??? Trochę przesadziłem z tą rozdzielczością ale nie ma problemu by wszystkiego...
Mała poprawka... ten kod : do portb.0=1 'zalaczasz diode waitms 500 'czekasz portb.0=0 'gasisz diode loop spowoduje że ... dioda będzie świeciła się ciągle ;-) poprawnie będzie tak: do portb.0=1 'zalaczasz diode waitms 500 'czekasz portb.0=0 'gasisz diode waitms 500 loop Acha, do sprawdzania stanu przycisków polecam komendę "debounce" - programowo niweluje...
Dobrze myślisz, zapomniałeś tylko o tym że twój przełącznik nie jest idealny i na czas przełączania między jednym a drugim pinem nie zwiera on niczego (to czas przez który na obu pinach nor będą zera). A że czas jest krótki (warto sprawdzić czy twój układ jest w stanie go wychwycić, czy uzna to jako drganie styków) to musisz wziąć i wydłużyć czas tego...
Zjawisko drgan styku S1. Czy mozesz opisac dokladniej o co chodzi z tym zjawiskiem? Chodzi o to zeby przysisk... ?
Skoro dopiero się zaczynasz uczyć, to ciężkiego kalibru używasz (mam na myśli assemblera) a ja uważam, że to najlepszy pomysł - zaczynać od poznania asemblera. Pomimo, że początki są trudne to poznanie podstaw przynajmniej asemblera daje już dużą wiedzę co i jak można robić z prockami. A do większych później projektów czy nawet małych można spokojnie...
Nie zauważyłem dokładnie tej dodatkowej cewki. Czyli po to ma te dwie cewki przeciwsobnie aby nie przełączać kierunku zasilania. Wystarczy normalnie podłączyć 1 i10 do plusa, a 5 i 6 sterować minusem, tylko zlikwidować drganie styków przełącznika ręcznego - tak jak proponuje kolega, z tym że ja bym spróbował kondensator pomiędzy (+) i (-) na przekaźniku,...
Ten bląd 8 i 9 to z elektryki czy ehr-u? Odłącz na próbe wszystkie przyciski na błotniku.Jeśli ktorys się rozlatuje i pod wpływem drgan łączy to objawy mogą być takie jak masz bo komp.jest zaprogramowany tak ze nie przewiduje jednoczesnego działania przełączników w kabinie i zewnętrznyc.I dezaktywuje ehr.
Napięcie na pierwszym jest pinie IC902 jest 0, jeśli wyłączę przycisk power to wtedy jest 3,2V Na podstawie tego co piszesz wygląda jakby układ nie wchodził w tryb playback co jest podstawą do jakiejkolwiek analizy porównawczej napięc umieszczonych na schemacie w instrukcji serwisowej (lub jest uszkodzony). Napięcia na pinach 1 i zapewne także 3 układu...
witam... moim zdaniem wystarcza 20-30 ms do programowej eliminacji drgan stykow (zostalo to ujete w moim przykladzie powyzej)
Jeszcze parę bubli jest, podpowiem - // ZMIANA ZAKRESU NAPIECIA na pewno nie zadziała do końca jak powinna. Ale co ważniejsze, kompilator wywali ci że w funkcji drawMenu odwołujesz się do nieistniejących zmiennych. Jeśli to wyrzucamy po za drawMenu to albo trzeba przekazać przez argumenty, albo zrobić jako zmienne globalne żeby "się widziały". Tutaj...
Nie pokazałeś całości, a problem może właśnie tkwić w rzeczach, których nie pokazałeś. Ale kilka uwag - po pierwsze przyciski drgają, w efekcie nie dostajesz jednego przerwania tylko dziesiątki. Twoja procedura obsługi to eliminuje, bo jest strasznie długa, ale i tak co najmniej 2 razy zostanie wywołana. Przyciski jak rozumiem masz podciągnięte rezystorem?...
To nie jest zapobieganie, drgania bedziesz mial. Chodzi o to zeby program na czas drgan np. 45 ms nie reagowal i czekal az sie uspokoi
Zacznę od tego, że program podzieliłem sobie na części. Zaczynałem od skonfigurowania lcd, potem zająłem się odczytem wartości ADC poprzez czujnik wilgotności, następnie ośmieliłem się :lol: poprosić o wskazówkę w stworzeniu prostego menu do projektu i wykonałem to. Dodając kilka udogodnień, zacząłem się bawić z ustawianiem wartości z klawiatury, żeby...
Znam ten problem, rozwiązania sa dwa. To dlaczego kolega przedstawia poniżej trzy? Czasem wystarcza jedno, czasem drugie, czasem oba. Wcześniej juz koledzy o tych rozwiązaniach wspominali. 1 - filtr RC na wejściu 2 - petla pradowa 3 - filtr RC w programie. Ad. 3 - Jak kolega chce za pomocą programu umieścić w nim rezystor i kondensator? Co do pkt 1....
Witam. Myślę że albo robię coś źle, albo jest tylko możliwość zmiany kierunku ruchu żaluzji w trybie programowania automatycznego. Po programowaniu ustawień krańcowych w trybie ręcznym, nawet ustawiając niezgodnie z instrukcją, jako położenie pierwsze 1 ( żaluzja zamknięta ) dół, a potem drugie położenie ( żaluzja otwarta ), muszę używać w czasie ustawiania...
Witam problem jest w tym że lampa działa i niby wszystko jest ok ale gdy włączam przycisk do skanowania to lampa tylko troche drgnie i nic sie nie dzieje:cry: co mam zrobić??????? pomóżcie jakoś ....... z góry dzieki POZDRAWIAM!!!
Pomylka chodzilo oczywiscie o portc i ddrc juz zmienilem i dalem PORTC=0x00; i DDRC=0xFF; teraz moze byc? Nie. W PORTC musisz ustawić na 1 (bity odpowiadające pinom do których podpięte są przełączniki), patrz przykład, który napisałem w poprzednim poście. Teraz to w ogóle jest paskudnie, bo ustawiłeć port jako wyjścia , a na nich stan niski. I jesli...
Z tego co mi sie od razu rzucilo w oczy to niepotrzebnie tworzysz funkcje o nazwie " unsigned char dane(unsigned int numer) " zreszta po co ci ona ? Nie lepiej byloby zrobic tablice jako zmienna globalna i bezposrednio sie do niej odwolywac ( najlepiej by bylo gdyby ona byla czescia kodu programu bo sie ona nigdy nie zmienia i tylko odczytujesz odpowiednie...
1.STFW.... 2.RTFM [kolejny bascomowiec] 3.Naprawde, bascom nie zastępuje programisty do tego stopnia, zeby miał zaimplementowaną obsługe CZTEROCYFROWEGO WYSWIETLACZA LED!... Wniosek: Uzyj multipleksowania, a jesli nie wiesz co to jest, zastosuj sie do punktu pierwszego. 4.Jak wyeliminować to ze "tak jakbys nacisnął dwa razy": to sie nazywa drganie styków....
Układem niech będzie zwykły przycisk podłączony do INT0. Chcę w przerwaniu (w ISR(INT0_vect) sprawdzić stan tego przycisku w celu przewijania menu (i w nim też to przewijanie realizować). Jak usunąć drganie styków nie stosując śmiesznego delay'a :?: Jeśli chcesz używać przerwania INT to tylko z filtrem RC/przerzutnikiem schmitta/układem z przerzutnikiem...
A sprawdzałeś sam przycisk ? Może styki "drgają" ? Zasteruj otwarcie i zamknięcie z pomijając przycisk, zwierając jego końcówki np.śrubokrętem lub wymień go jeżeli masz takowy.
Można spróbować jeszcze dać równolegle z przyciskami po kondensatorze 10n-100n w celu żeby styki drgające nie miały wpływu na działający program., ten opornik nie zaszkodzi.
Witam, Proponuje takie rozwiązanie: int main( void ) { PORTB |= (1 << PB0); //wewnetrzny rezystor podciagajacy na T0 DDRD = 0xFF; PORTD = 0xFF; //wygaszenie diod TCNT0 = 0x00; TCCR0 = ((1 << CS01) | (1 << CS02)); while(1) { PORTD = ~TCNT0; } } Powinno wszystko działać...
Ok poradziłem sobie.Tu wklejam kod jak by ktoś chciał: #include <avr/io.h> #include <util/delay.h> #define F_CPU 4000000UL int main( void ) { DDRC |= _BV(5); DDRC |= _BV(4); DDRC |= _BV(3); DDRB &= ~_BV(0); PORTB |= _BV(0); while(1) { PORTC &= ~_BV(5); // wyzerowanie...
Przede wszystkim witamy i prosimy byś pokazał swój program :) To zawsze jest podstawa do analizowania Twojego problemu. Schemat także bywa istotny, ale w tym przypadku sobie go na razie odpuścimy. Musisz jeszcze wiedzieć, że styki w przyciskach drgają: http://mikrokontrolery.blogspot.com/2011... więc musisz to...
O ile pamietam MC14013B to jest CMOS. A w CMOSach nie mozna pozostawiac nie podlaczonych wejsc bo ze wzgledu na wysoka impedancje wejsciowa zbieraja wszelkie pole i napiecie na nich moze mocno szalec co prowadzi do nieprzewidywalnego zachowania. Na poczatek zatem ustaw R i S na 0. Kolejny problem to sterowanie wejscia zegarowego ze stykow przelacznika....
1. Sprawdź czy sam przekaźnik załącza się podając niski albo wysoki ( zależnie od konfiguracji) na jego wejście bez podpinania pod Arduino. 2. Sprawdź multimetrem jak działa przycisk , które piny są zwierne ( z Twojej wypowiedzi wynika że dwa piny które normalnie powinny być rozwarte są cały czas połączone) cytuję :"lewo i prawo są połączone ze sobą...
Styki drgają. Skoro używasz przerwania INTx do obsługi przycisku z drgającymi stykami, to przy pierwszym wykrytym zboczu (przy naciskaniu) w funkcji przerwania go obsługującej musisz wyłączyć to przerwanie, a włączyć je po jakimś czasie np. 20ms. Od tego zacznij. Pytanie: Jaki masz powód, by przyciski obsługiwać przerwaniem?
Jak wpisuję kod kolegi Psiak to silniczek tylko drga. Jak swój to slinik się obraca ale gdy zblize palec do przycisku to zaczyna drgac.
Sprawdź czy silnika lub samego obiektywu coś nie przeblokowało. Jakieś zabrudzenia, np. piasek.
Nie chodzi mi o to aby gra wysyłała impuls aby drgało, tylko kiedy nacisnę przycisk na myszy to on zaczyna drgać. Oczywiście wmontowany wł/wył aby to wyłączyć. Bardzo fajne efekty dawało by to np. podczas strzelania z kałaszika :D. No więc jak musiałbym coś grzebać z tranzystorami?
Niedziala bo nic nie kazesz wyswietlic sprobuj tego. cls Do If Pind.0 = 0 Then Cls Lcd "Pierwszy napis" Waitms 300 End If If Pind.0 = 1 Then Cls Lcd "Drugi napis" Waitms 300 End If Loop End mozna to bardziej zgrabnie napisac przy pomocy if else, druga sprawa ze napisany przez ciebie kod nie eliminuje drgan stykow. Uzyj lepiej wbudowanej funkcji Debounce.
...przy szybkim ponownym naciśnięciu, kondensator nie zdąży sie naładować i może nie wykryć naciśnięcia. Zalecałbym zewnętrzne podciąganie 1kΩ. No nie powiedział bym, jeśli założymy że w kontrolerze jest wbudowany rezystor 50kΩ i 1kΩ szeregowo z kondensatorem, to obliczając czas ładowania kondensatora wyjdzie nam jakieś 40ms, raczej...
Blokowo jest to słuszne. Tylko te bloczki trzeba teraz rozpracować. Pamiętać trzeba, że styki przycisków drgają więc trzeba trochę je stłumić. Sygnał głowny musi przechodzić bez obracania (nie może być zanegowany). Poza tym musi być tak zmajstrowane aby każdorazowe naciśnięcie przycisku dawało jeden impuls na wyjściu niezależnie od stanu głownego połączenia...
Wielokrotne zliczanie spowodowane drganiami styków skutecznie eliminuje kontaktron umieszczony w cewce na napięcie zasilania. Przyciskiem włączasz cewkę kontaktronu, natomiast styki kontaktronu dołączysz do urządzenia zliczającego. Kontaktron może też być uruchamiany małym magnesem (długości około 10mm) zamontowanym na przycisku - wtedy cewka kontaktronu...
wizualnie wszystko jest ok , dokładniej to nawet zasilacz nie startuje , cos tak jakby go "haltowało" drgają wiatraki przy przyciśnięciu przycisku i nic
U klienta grał, usterka polegała na drganiu obrazu w pionie. Po przyholowaniu na warsztat po włączeniu do siec zapala się dioda Stby, czyli prawidłowo. Po włączeniu przyciskiem klawiatury lokalnej na kilka sekund gaśnie, po czym zaczyna mrygać: 13 mrugnięć, czyli wg kodu samodiagnozy głowica. Co się stało? Masy puściły?
drganie obrazu drganie kierownicy samsung drganie
windows becker radiowy pilot sterowa połączenie szeregowy grzałka
płyta gazowa solgaz płyta gazowa solgaz
Huczące łożysko - jak długo można jeździć? Jak naprawić zniekształconą fonię w TV LCD przy dobrym obrazie