Witam, mam mały problem mam ograniczoną możliwość dodania przycisków więc pomyślałem ,że np. naciskając dwa jednocześnie uzyskał bym trzeci ale nie wiem jak mam napisać tych parę linijek kodu do obecnych używam instrukcji Debounce
nie dokładnie rozumiem kod wolałbym otrzymać kompletny kod Oczywiście, z przyjemnością udostępnię Ci kompletny kod kalkulatora dla Arduino Uno, który nie wykorzystuje wyświetlacza. Zamiast tego wyniki zostaną wysłane do komputera przez port szeregowy. [syntax=cpp] const int buttonPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // Przyciski dla cyfr 0-9 const...
If...Then to nie pętla... tylko warunek. Jeśli chodzi o przyciski to proponuje debounce który na pewno wyeliminuje drgania styków. Poczytaj tabelkę i zrób sobie podprogramy w których będziesz zwiększał głośność itd. Przykład: Debounce PINB.0 , 0, VOLUP, SUB .... .... .... VOLUP: I2CSEND ..... 'jakieś tam bity Return Dodano po 8 ... Powtórzone usunąłem....
Proszę, gotowy przyklad rozwiązania. Napisałem przy kawie i potestowałem w symulatorku czy się nie pomyliłem gdzieś ;) [syntax=basic4gl]$regfile = "m8def.dat" '$sim 'dla symulatora Config Portd.5 = Input : Set Portd.5 : Czuj_1 Alias Pind.5 Config Portd.6 = Input : Set Portd.6 : Czuj_2 Alias Pind.6 Config Portd.7 = Input : Set Portd.7 : Czuj_3 Alias...
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
Ten przykład działa, ale tylko dla jednego "przełącznika" ale gdy robie np dwa kolejne to już coś jest źle. Buduje urządzonko, które będzie załączać 3 przekaźniki: - 3 przyciski (portd.4, portd.5, portd.6) - 3 przekaźniki (portd.1, portd.2, portd.3) Jak to można zrobić w BASCOMie?? Kod dla w/w konfiguracji: Config Debounce = 30 Config Portd = Output...
1) Do Debounce dodaj dopiski SUB 2) Program prawdopodobnie wywala ci się na pierwszym Lookup od setek, szukasz po CYFRA zamiast TEMP (wywalenie to być nie musi ale może być problem) 3) Zrób najprostszy test: wywal te swoje lookupy, przyciski i resztę kombinacji. Na sztywno przypisz cyfry, zrób ich lookup i wyślij na wyświetlacz. Zobacz czy chociaż to...
Nie chce mi się zagłębiać dalej w pisanie. Tych trybów możesz sobie dopisać ile chcesz. I jak Przewijajac menu naciśniesz Set to zmień tryb na, na przykład, "Ustawiam_temp" i w tym trybie znów przyciski Plus i Minus bedą działać dla zmiennej ustawianej. Potem naciskasz ESC i wracasz do trybu jakiego chcesz.. to proste i pewne. [syntax=basic4gl]$regfile...
Możesz podłączyć poprzez rezystory bezpośrednio do portów, tylko trzeba pamiętać, że diody mogą wziąć 20mA i to teoretycznie pin ma wytrzymać, ale też chyba nie można brać więcej niż 100mA na cały port. To tyle teorii a w praktyce to sam sprawdzisz i pewnie procek to zniesie. Wprowadziłbym jednak pewna optymalizację. Wyświetlacze podłącz do portów PB...
https://obrazki.elektroda.pl/4024863600_... W tym temacie zbuduję od 0 prosty ściemniacz LED sterowany dwoma przyciskami. Projekt będzie oparty o PIC12F683, którego tu zaprogramuję bez użycia zewnętrznych bibliotek - GPIO i PWM zostanie skonfigurowane wedle informacji z noty katalogowej. Do tego dobiorę kilka zewnętrznych elementów...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
Debounce opanowany ? bez tego się nie uda
Witam! udało się! dodałem do programu debounce i blokady czasowe które defacto wyeliminowały wszystkie błędne impulsy! teraz działa poprawnie oto zmodyfikowany kod, może komuś się przyda:) // Definiowanie pinów dla wejść i wyjść #define A0_PIN A0 #define A4_PIN A4 // Zmieniono z A1 na A4 #define A2_PIN A2 #define A3_PIN A3 #define OUTPUT_2 3 #define...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
https://obrazki.elektroda.pl/5220229400_... Witajcie, przedstawię tu od 0 rozpoznanie wyprowadzeń, podłączenie, zaprogramowanie i uruchomienie z Arduino wyświetlacza LCD z elektrośmieci. Omawiany tu wyświetlacz pochodzi z pralki Amica AWSN12DA i posiada sterownik BL55066 do którego nie znalazłem biblioteki, tylko samą notę katalogową....
Spróbuj kodu ze zwiększonym opóźnieniem Dodano po 2 Czy za każdym razem jak postoi jakiś czas i uruchomisz to urządzenie to godzinę chodzi Dobrze a później się dalej pojawia ten problem?
A tu mnie w maliny nie wprowadził? const int buttonPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // Przyciski dla cyfr 0-9 const int buttonAdd = 12; // Przycisk dla operacji dodawania const int buttonSubtract = 13; // Przycisk dla operacji odejmowania const int buttonMultiply = A0; // Przycisk dla operacji mnożenia const int buttonDivide...
Możesz spróbować takiej protezy: [syntax=basic4gl]If Przycisk1 = aktywny AND Przycisk2 = aktywny Then Else Debounce ... Debounce ... End If[/syntax] Przed wejściem do Debounce sprawdzi przyciski i jeśli będą oba wciśnięte pominie Debounce.
Nie działa mi komenda debounce. Pracuje na ATmega 16 Mam podłączone przyciski do uC pod piny A0, A1, A2, A3, A4, A5. Przycisk natomiast jest podłączony pod mase układu. W programie podciągłem rezystory takim sposobem: Set PORTA.0 ............. a program wygląda tak do ...... instrukcje odczytu czasu z PCF8583 instrukcje odczytu z temp. z DS1820 ..........
Witam.. Mam nastepujacy problem.... Napisalem program w BASCOM do obslugi 3 przyciskow podlaczonych do kolejno p3.0,p3.1,p3.5... przyciski obsluguje za pomoca komendy DEBOUNCE reagujacej na stan niski... Po kazdym nacisnieciu przycisku program czysci wyswietlacz LCD i ustawia zdefiniowany symbol w innym miejscu(odpowiedzio dla dwoch skrajnych przyciskow,...
[syntax=vbnet] Zmienna = Ileśtam Gosub Sub_przycisku Do .. Debounce Przycisk, 0, Sub_przycisku, Sub Loop End Sub_przycisku: Select Case Zmienna Case Ileśtam : Zrób to End Select Return[/syntax]
Proszę bardzo. Napisany w 20 minut więc błąd mógł się wkraść. Timer co minutę daje znać i wtedy odliczane są minuty do włączenia bądź wyłączenia wentylatora. Przyciski są dwa. Kiedy naciśniesz jeden z nich to od razu powinien włączyć się wentylator (można w ten sposób zawsze wymusić start wentylatora). W programie u góry podaje się czasy wyrażone w...
Przyciski - DEBOUNCE Odliczanie - CONFIG TIMER i przerwania.
Super. Teraz jeżeli potrafisz dodaj do programu efekt tasowania liczb w segmentach. Efekt będzie się włączał co pełną minutę , trwał przez 5 sekund i wróci na wyświetlanie czasu. Oczywiście, mogę dodać taki efekt. Poniżej znajduje się zmodyfikowany kod programu, który będzie wykonywać efekt tasowania liczb co pełną minutę, trwając przez 5 sekund, a...
Witam nie moge sobie poradzic z napisaniem programu. Mam napisane zapalanie przyciskami ale nie moge sobie poradzic w napisaniu funkcji : -mam 4 przyciski i zapalaja 5 diod -jak przytrzymam 1-przycisk 2sek to maja sie zapalic wszystkie diody -jak przytrzymam przycisk 4- 2 sek to ma sie zapalic 1 dioda pomoze mi ktos? $regfile = "m8def.dat" 'informuje...
Tak jak przedmówca napisał odłącz pin RW od mikrokontrolera. Reset powinien być podciągany do tych 5V przez rezystor 10k bo programator musi mieć możliwość zwarcia tego pinu do masy. Dodatkowo w opisie masz błąd bo przycisk opisujesz pod pinem zajętym przez wyprowadzenia LCD. Poniżej masz taki prosty kodzik do zabawy :P Na pinach PORTB.2 i PORTB.3 podłącz...
Przepisałem tą funkcję debounce i działa jeszcze gorzej, niż ta moja. Dodano po 4 Zamykam
poczytaj o debounce i o chwili kiedy naciskasz przycisk. Dodano po 48 jak przyciski dasz do massy i wlaczysz pull upy to nie musisz uzywac zew. rezystorow
sylwunia35: kondensatory przy microswitchach - dobry pomysł, zaraz spróbuję. Debounce - zły pomysł: debounce odkłóca przyciski ale nie w sensie zakłóceń z sieci tylko niweluje mikrodrgania styków. Zresztą i tak piszę w C gdzie mam napisane własne procedury debounce działające analogicznie. sp3ots: Czemu dać podciąganie programowe? Czy podciąganie zewnętrznym...
Witam, Mam kod, w którym pętla loop() wykonuje się dosyć długo (około 100ms). Chciałbym teraz do tego projektu dołożyć debouncing jednego przycisku, ale biblioteka Bounce2 (którą wszyscy opisują) bazuje na cyklicznym i w miarę częstym wywołaniu debouncer.update(). I tutaj pytanie: czy istnieje jakaś alternatywna biblioteka do debouncingu oparta o przerwania/timer?...
Witam. Mam pytanie odnośnie klawiatury w Bascomie, robię ją przy wykorzystaniu instrukcji Debounce czyli: Debounde p1.1,0,klaw112,sub klaw12: obłsuga ret W jaki sposób mogę w tym przypadku nauczyć mikroprocesor żeby nic nie robił jeżeli klawisz jest wciśnięty?? Nie umiem tego zrobić a gdy długo przytrzymam przycisk to się robią jakieś krzaki i program...
Z preskalerem 64 ustawiłem wartość na OCR1A =249. Mam pytanie odnośnie eliminacji drgań styków. Pod spodem zamieszczam funkcję którą wykorzystałem ale nie przyniosła oczekiwanych rezultatów, ponieważ muszę długo przytrzymać przycisk aby naciśnięcie spowodowało wejście do funkcji. Przeczytałem, że można zrobić to za pomocą timerów ale nie wiem w jaki...
W załączniku moja wersja firmware dla Twoich modułów. Na razie do przetestowania :-) PB.0 i PB.1 to wejścia, którymi łączysz moduły w łańcuszek. Nie ma też znaczenia, które wejście łączysz do następnego modułu oba identycznie działają. Do skrajnych modułów normalnie podłączasz przyciski. Ustawiłem czas na około 1,8s rozjaśniania/ściemniania i 5s (licząc...
Kilka uwag: - w Twoim przypadku wszystkie przyciski powinny być zabezpieczone przed drganiami styków układem RC. Samo Debounce to tylko na biurku będzie dobrze działać ;) natomiast tutaj tzn.w ciężkich warunkach nie żałuj 6 elementów więcej (kondensator+rezystor na przycisk). - szeregowo z diodami LED przydały by się rezystorki - przydały by się rezystor...
Witam W zasadzie powinno działać ale :) na pewno czekasz na przycisk 1 a nie 0? to sprawdz: $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb.0 = Output Config Portb.1 = Output Config Pind.0 = Input Config Pind.1 = Input Portd.0 = 0 Portd.1 = 0 Do Debounce Pind.1 , 1 , Zmien0 , Sub Debounce Pind.0 , 1 , Zmien1 , Sub Loop Zmien0:...
1. Po co to w ogóle robić, jeśli wystarczą 2 linijki kodu w C? Kontroler do którego to będzie podpięte do XMega A4U. Póki co jeszcze nie wiem jak to zrobić na nim w 2-ch linijkach. Zdaje się, że na XMedze można na każdym pinie wywołać INT0 lub INT1 więc może to jest kierunek. Wiem, że nie jesteś zwolennikiem procesorów 8-bitowych ale może jakiś link...
Do tej pory wszystkie programy - nawet te gdzie używana była instrukcja waitms działały. Również z instrukcją Debounce problemów nie było. Mam wrażenie, że od momentu rozbudowy o instrukcję lookup zaczęły się problemy. Spróbuję dodać te dwie dyrektywy i zobaczę. Dziękuję za porady. Pozdrawiam Robert.
Z odczytem i nawet z zapisem godziny w PCF'ie jakoś sobie poradziłem. Teraz mam mały problem, można powiedzieć kosmetyczny mianowicie chodzi mi o ustawianie czasu. Narazie mam tak, że S1 wchodze w ustawienia, S2 ustawiam godzinę, S3 ustawiam minuty, a S4 zatwierdzam ustawienia. Takie ustawienia da się na 2 przyciski zrobić i tu moje pytanie jak? Konkretnie...
ok juz cosik wiem... przedstawie to co wiem prosze o sprostowanie jesli cos bedzie zle. przyciski podciagam rezystorkami pod +zasilania oraz pod wejscie procka a z drugiej strony do GND programowo stosuje sobie funkcje debounce DEBOUNCE PortA.0 , 0, 'jakas etykieta z funkcja' mam pytanko czy wystarczy jesli wstawie to na poczatku programu, czy musze...
http://obrazki.elektroda.net/7_115627452... Przedstawiam mój zamek szyfrowy. Pomysł zrodził się już klika miesięcy temu kiedy to wpadłem że taki zamek można zrobić na tyrystorach ale układ byłby wtedy zbyt skomplikowany. Wiec od razu jak nauczyłem się obsługi procesorów skończyłem mój projekt. Zamek ten otwiera np. zamek elektromagnetyczny po wpisaniu...
Witam Przyciski podłączone są do gnd.Narazie walczę z twoją wskazówką ale nic nie wychodzi, dalej diody reagują na drgania styków tzn. że co jakiś czas się zapalają tak jak powinny czyli jedno naciśnięcie przycisku 1 zapala jedna diodę ponowne naciśniecie zapala 2 diodę i ponowne naciśniecie zapala 3 diodę,a nieraz zapalą się 2 na raz albo 1 i 3 się...
Dzięki za wskazówki i pomoc :) Ten zegarek nie może poprawnie działać z powodu braku wyboru\konfiguracji\uruchomienia zarówno timera, jak i przerwania z nim związanego. W ww. programie jeszcze do fazy Timerowania nie doszedłem - stwierdziłem tylko brak poprawności wyświetlania zadanych cyfr :) Przerobiłem program, działa i wygląda następująco: [syntax=basic4gl]...
jeżeli nie zależy ci na szybkości działania programu, możesz spokojnie użyć funkcji Debounce (w helpie znajdziesz dokładny opis), jeżeli chcesz wyeliminować opóźnienia najlepiej w momencie wykrycia naciśnięcia przycisku wystartować licznik(lub użyć do tego już działającego licznika, aby nie tracić cennych timerków :)), tak, żeby ten zliczył ~25ms ustawiając...
Antystatyk - sprawa polega na tym że masz źle napisany program. Wyświetlanie zawsze robi sie w przerwaniu. Obsługe klawiszy i innych bzdetów w głównej pętli programu. I nie interesuje cie wtedy czy masz debounce czy wait 200. Wyświetlacze zawszę będą działały prawidłowo. Więc popraw swój program. Obsługa i multipleksowanie wyświetlaczy do przerwania...
Proszę ;) [syntax=vbnet]' "STEROWANIE SERWOMECHANIZMAMI" ' ' BARTek niveasoft(at)tlen.pl ' 'SERWO1 na PORTB.0 'SERWO2 na PORTB.1 'PRZYCISKI SERWA1: PINB.3 i PINB.4 'PRZYCISKI SERWA2: PINB.5 i PINB.6 ' 'W ATtiny2313 wyłączyć CKDIV8 tak by pracował na 8MHz ' 'Przy starcie serwa staja na środku (lub tak jak zapisane w zmiennych Serwo1 i Serwo2) 'Po 3 sekundach...
Witam. Jeśli dobrze rozumiem to sterowanie ma się odbywać w ten sposób, że wciskasz np. przycisk Przód i Prawo jednocześnie a samochodzik jedzie do przodu i jednocześnie skręca w prawo? Jeśli tak to raczej zapomnij o Debounce bo w Twoim programie jeśli wciśniesz oba przyciski to program i tak wpadnie do jednego z podprogramów i tam sie zapętli wysyłając...
Działanie programu: Naciśnięcie przycisku S1 będzie zmieniał stan diody D1 na przeciwny, naciśnięcie przycisku S2 będzie zmieniał stan diody D2 na przeciwny. Program: $regfile = "m8def.dat" $crystal = 1000000 Config Pind.0 = Input Config Pind.1 = Input Config Pind.2 = Output Config Pind.3 = Output Led1 Alias Pind.2 Led2 Alias Pind.3 S1 Alias Pind.0...
Szczerze mówiąc, podłączyłem przyciski zwierające do plusa... a z ADC to musi być kwarc, czy mozna co innego zrobić? Kondesatory są, kod zamieszczam poniżej: Próbowałem z "Debounce" 'KONFIGURACJA czujników dla czarnej lini $regfile = "m8def.dat" Config Portb = Input 'port b jako wejścia Portb = &B00000000 'wszędzie stan spoczynkowy-0 Config...
po pierwsze źle obsługujesz przyciski - te podłącza się tak by zwierały do masy i załącza się wewnętrzne podciąganie pinów - od tego zacznij po drugie w obu przypadkach dodajesz liczbę po trzecie skorzystaj z timerów do eliminowania drgań styków, lub, jeśli nie jesteś na tym poziomie to dodaj odpowiednio funkcje wait lub poczytaj o bascomowej funkcji...
Debounce spokojnie by tu wystarczył jeśli nie zależy Ci na ciągłości działania programu (ten zawsze wstrzyma na 25ms). Do tego wykorzystaj dodatkowy timer programowy do mierzenia czasu trwania buzera (ewentualnie można to zrobić w jakiejś pętli jeśli wstrzymanie programu jest nieistotne). Można też wykorzystać badanie portu z maskowaniem (AND) jeśli...
Prawde mówiąc jak tak patrzę na ten program to sporo można by zmienić. Najważniejsze to wywaliłbym te DEBOUNCE i wszystkie trzy podprogramy umieścił ciurkiem w pętli do...loop. Dalej, gdybyś już timery opanował to spokojnie mógłbyś wywalić wszystkie waitms i zastąpić je JEDNYM przeskokiem. Dzieki tym zmianom (zwłaszcza pierwszej) wszystkie klawisze...
Witam serdecznie Jest to pojekt z tego linku: http://www.elektroda.pl/rtvforum/topic11... I stamtąd też pochodzi kod, zmodyfikowałem jedynie maksymalną temperaturę zadaną z 30 do 99. [syntax=vbnet] '***************************************... '#######################################... '# # '# Autor: klops_mops...
debounce debounce przerwania debounce debounce przerwa
ceramiczna ariston zmywarka krótko strzel wydech przepustnica
mikrofalówka samsung zwarcie mikrofalówka samsung zwarcie
Mercury 80 – demontaż dźwigni manetki i rozdzielenie mechanizmu linek w kabinie Buczenie potencjometru przy podgłaszaniu głośności: przyczyny i rozwiązania