Żeby dioda się zapała należy trzymać cały czas przycisk? Czy wystarczy że jedno wciśnięcie spowoduje zapalanie a ponowne wciśnięcie gaszenie po odczekaniu 5s. Przycisk ma zewnętrzne podciąganie do + zasilania, programowo nie jest to zrealizowane?
No i właśnie taki był cel. Inaczej przycisk musiał by być trzymany aż nastąpi moment zmiany stanu na porcie (a także wykonanie reszty kodu poza waitmsem 1000 więc i sprawdzenie przycisków). Przecież każde menu jest tak rozwiązane. Nawet kliknięcie myszką na coś na pulpicie. Nie musisz trzymać aż zadziała. Klikasz raz a dalej włącza się samo. Czasami...
przede wszystkim dzięki za zainteresowanie, trochę nie jasno się wypowiedziałem, może powinienem to napisać w innym dziale ale nie chcę specjalnie zakładać wątku. Więc sprawa wygląda tak: wyciągarkę już mam, jest to typowa wciągarka budowlana, zasilana na 230V, udźwig 200kg, ma ona pilota (na kablu), którym się operuje, z tym że pilot pozwala tylko...
niestety w obu kodach brakuje czegoś co by dodawało cokolwiek do zmiennej A, więc nie przyjmie ona nigdy wartości 1 lub 2 skoro na początku się ją zeruje. Jesli chodzi o podciągnięcie programowe to nie działa (dałem rezystor zewnętrzny). Próbowałem tak i działa: config debounce = 50 ' 50ms dla przycisku dim a as byte ' deklaracja zmiennej a=0 ' zerowanie...
Jeśli nie usunąłeś apostrofów - ' przed Do i Loop w programie to on wykona się raz. A jeżeli w tym czasie nie naciśniesz tych przycisków to się nic nie pokaże. Najlepiej przed włączeniem zasilania do procesora naciśnij te przyciski i trzymaj gdy podłączysz zasilanie.
Chciałem zapytać w jaki sposób w Bascomie wykonać podtrzymanie przycisku monostabilnego? Chodzi o to, że kiedy nacisnę przycisk 1 to żeby procesor pamiętał ten stan logiczny do momentu naciśnięcia przycisku 2. Podobnie jak robi się podtrzymanie cewki stycznika przy pomocy styku otwartego (sterowanie impulsowe stycznika) - o takie działanie mi chodzi.
Jak w bascomie wykryć naciśnięcie klawisza (to juz mam) i jesli nie zostanie puszczony to po upływie np sekundy symulować jego naciskanie co np 0.2s. Chodzi o to ze mam dość długie menu wyświetlane na lcd i jego przewijanie przez każdorazowe wciśnięcie klawisza jest długotrwałe.
Powyższy kod będzie działał odwrotnie - nie pozwoli załączyć maszyny przez 300ms. W grę wchodzi tylko takie sterowanie i tego się trzymam.
Kolego mikroprocesor jest na tyle szybki że jak ty naciśniesz przycisk to on zdąży kilka razy zwiększyć zmienną A. Spróbuj w pętli ustawień wstawić jakieś opóźnienie np. 1 sekundę. Zobacz jak się zmieni działanie programu. Nie masz tez ograniczonej zmiennej A. Trzymając przycisk możesz sobie zmieną A zwiększyć lub zmiejszac że może przyjąć wartości...
Po co tak długo trzymać te przyciski? sprobuj może na innym procku
Brakuje oczekiwania na puszczenie przycisku wyzwalania. W takim przypadku będziesz musiał uważać aby przycisk trzymać krócej niż 300ms, inaczej wygeneruje są kolejny impuls
avatar twój kod nie działa zbyt dobrze ponieważ jak włącze zasilanie, to przekażnik jest załączony, a jeśli nacisne przycisk to się wyłączy i już się nie włączy na stałe, tylko gdy trzymam przycisk.
Gdy przycisnąłeś przycisk ale trzymałeś go mniej niż 70 okresów to zmienna Opoznienie_odczytu dochodziła do powiedzmy 65. Ale po puszczeniu przycisku nie resetowałeś zmiennej. Czyli miała ona dalej 65. I kolejne przyciśnięcie było obsługiwane za 5 cykli, a nie za 70 cykli tak jak chciałeś. Bo zmienna musiała doliczyć do 70 a już miała 65 czyli brakowało...
cześć jak wgrałem twój program to aby odczytać temperaturę to muszę trzymać przycisk a ja chcę raz wcisnąć i ona ma być tak długo aż ja nie wcisnę innego przycisku. Jeżeli mój sposób pisania jest zły to jak byś mógł to napisz to po swojemu. dziękuję za zainteresowanie:)
If P3.3 = 0 then Wait 5 'To czas trzymania przycisku, po którym zaświeci się LED if P3.3 = 0 then Led = 0 End If P: If P3.3 = 0 then Goto P Else Led = 1 End if Za Led wstaw konkretną końcówkę do której podłączyłeś diodę - świeci jak końcówka = stan niski. Przycisk zwiera końcówkę P3.3 z masą. P. S. Nie wiem czy składnia jest zgodna z Bascom 8051...
Masz moim zdaniem 2 sposoby na zrobienie tego - łatwy i fajny: - Łatwy - wykorzystujesz normalny bootloader (jest kilka ogólnodostępnych wspierających RS485). Urządzenie przestawiasz w tryb bootloadera. Najłatwiej to zrobić ręcznie (czyli Reset + np trzymać jakiś przycisk), ale można tez zrobić to programowo. Dalej programujesz urządzenie "normalnie"....
Witam. Program według mnie jest przejrzysty. Po wejściu do podprogramu pierwsze If... sprawdzi jeszcze raz czy jest wciśnięty przycisk K1 wygeneruje impuls i wejdzie w pętlę Do... Loop o ile w dalszym ciągu jest wciśnięty przycisk. Jeżeli nie to wygeneruje jescze raz impuls jeszcze raz i wyjdzie z podprogramu. Ja również tego nie sprawdzałem, ale powinno...
Hej! Oto programik w Bascom-AVR. Jeżeli naciśniesz przycisk(portd.0) na mniej niż pieć sekund to zapli Ci się dioda(Portb.7), a jeżeli będziesz trzymał przycisk wciśnięty przez pięć sekund to przesunie Ci jedynkę po całym porcie b. Config Pind.0 = Input Config Portb = Output Dim I As Dim I=1 Program: Do If Pind.0 = 0 Then For I = 1 To 5 Wait 1 If Pind.0...
Mamy taki program: [syntax=basic4gl] do if plus=0 then incr A call buzzer end if if minus=0 then decr A call buzzer end if if ok=0 then exit do end if loop [/syntax] Plus minus i ok to Aliasy portu D. Jak zrobić aby podczas naciśnięcia przycisku było tylko krótkie BEEP pomimo trzymania dalej naciśniętego przycisku?
Po zgaszeniu diody dodaj oczekiwanie na zwolnienie przycisku
Tego typu pytania - niezbyt odpowiadają gustom forumowiczów :-) Ale możesz zwiększyć swoją szansę na otrzymanie wskazówek, dokładniej precyzując problem. Kilka rzeczy, które należałoby jeszcze podać: - jaki to konkretnie procesor / jaka płyta uruchomieniowa - jak podłączony jest do tego wyświetlacz, ile pozycji ma wyświetlacz (ile cyfr mieści) - zdefiniować...
Sprawdziłem właśnie powyższy program i działa na zasadzie zapalenia diody przy włączeniu i gdy nacisnę i trzymam switch PD.0 zwarty do masy to dioda gaśnie, zapala ponownie się po puszczeniu switcha. Podłącz diodę w odwrotnej polaryzacji, będziesz miał odwrotny skutek... Zdaje się że o to ci chodzi. Robisz próby statyczne z przyciskiem, to tak mniej...
Pisze w ASM i bascom mi nie znany. Napisze to w basicu. To twoje jest troche pokrecone. P ;przycisk 1- nacisniety ; 0-puszczony S ;wy portu 1- swieci ; 0-zgaszony C ;zmienna odliczajaca czas - 1bajt ;proc zalaczajaca swiatlo na 30 sek if P=1 then C:=30 endif ;tutaj proc. odliczajaca czas 30 sek ;proc wywolywana w przerwaniu co 1 sek np. od T0 ;wczesniej...
Porty mam ustawione tak: Config Portd = &B1111111 Portd = &B0000000 Config Portc = &B000000 Portc = &B111111 Znalazłem błąd :D Brak end if w pętli głównej i jedno za dużo w sub menu. Program działa ale... trzeb trzymać przycisk menu by było one wyświetlane. Jak zrobić by po naciśnięciu było wyświetlane cały czas? Użyłem flagi ale jakoś nie pomaga.
http://obrazki.elektroda.pl/1481315600_1... Witam. Założenia zasilania : 1. Silniki do rolet oryginalne z własnymi wyłącznikami krańcowymi. 2. W każdym pokoju niestabilny przycisk do sterowania lokalnego + przycisk przy drzwiach wyjściowych. 3. Całość zabudowana we wnęce wykonanej w ścianie - na zewnątrz widać tylko wyświetlacz i trzy...
temperatury zostaja zmienione na lcd ale tylko raz, znaczy się gdy temperatura zmieni się to nie ma zmian na wyświetlaczu. temperatura na lcd zmienia się "live" tylko wtedy gdy trzymam przycisk cały czas. Program działa dokładnie tak jak go napisałeś, w momencie kiedy naciskasz przycisk wartość odczytana jest przepisywana do zmiennej która jest wyświetlana...
Nie wiem czy odbierasz tam jakieś komendy. Wywal te Wait`y. Tutaj po zmianie stanu do zmiennej Blokada zostanie wpisana wartość do odliczenia w dół. Jeśli nastąpi następne przerwanie to w zależności od tego czy minął już czas blokady, to albo zostanie przedłużony jej czas bo ktoś trzyma przycisk dłużej albo.. :D [syntax=basic4gl]Dim Blokada As Word...
$regfile = "m32def.dat" $crystal = 16000000 Config Portb.2 = Output Config Pinb.7 = Input portb.2 = 0 portb.7 = 1 Do If Pinb.7 = 0 Then Toggle Portb.2 wait 1 End If loop End spróbuj ten lekko poprawiony kod zamiast pinb.7 = 1 daj Portb.7 = 1, sprawdziłem na atmedze8 ten poprzedni kod bez tej zmiany u mnie też nie poszło, a po tej zmianie...
Czasem nie zareaguje na wciśniecie przycisku, po wciśnięciu przycisku potrafi przeskoczyć z I=1 do I=3. Bo tak naprawdę w Twoim programie to nie liczy się ilość wciśnięć, ale czas trzymania. W poprzednim poście napisałem Ci dlaczego tak jest.
Tylko w jakim celu kurczowo trzymacie się tego Wait 1. Potem dojdą inne elementy programu i ta instrukcja będzie tylko przeszkadzać.
Panie ZbeeGin chyba się nie rozumiemy :D . Ile razy elektrownia wyłącza prąd w ciągu dnia , tygodnia itd ? Przekaźnik ma trzymać non stop . Kolego Maciek4141 jakbyś mógł poprawić wyłapywanie stopu bo trudno utrafić w stop i żeby w momencie podłączenia do zasilanie nie załączało led lub silnika .
Pewnie trzeba podać stan wysoki na p3.7, przycisk na masę i w warunku sprawdzać czy na pinie jest stan niski. W kodzie nie pomogę bo znam tylko bascom. pozdr stan wysoki oznacza w tym przypadku zwolnienie trzymanego przycisku, a program ma reagowac na czas przytrzymania przycisku a nie na jego wycisniecie.. :/ Dzieki za odp i czekam na następne :]
http://obrazki.elektroda.pl/9223335300_1... Było już na elektrodzie prezentowanych wiele zamków szyfrowych – z pełną klawiaturą, dwoma przyciskami i jednym też. Mój projekt z serii pchełka zrealizowałem na Attiny13 i jednym przycisku. Potrzebne mi było rozwiązanie nieco inne – coś co nie będzie chronić sejfu w banku ale...
Program będzie źle działał. Gdy przycisk będzie przyciśnięty dłużej niż 200 ms. Taki scenariusz: 1. Włączamy zasilanie. 2. Przyciskamy przycisk i trzymamy go. 3. Wyświetli się SUPER 4. A za około 200 ms EXTRA. 5. I trzymając dalej przycisk, będzie nadpisywany tekst EXTRA. 6. Po puszczeniu przycisku program nadal będzie w podprogramie "Dalej"
W pętli czekaj aż przycisk zostanie naciśnięty, zrób co należy dla odpowiedniego przycisku po czym czekaj aż przycisk zostanie zwolniony. Unikniesz w ten sposób wielokrotnych operacji przy trzymaniu wciśniętego przycisku. Albo po wykonaniu poczekaj jakieś 0,5s wówczas diody zmieniać będą się co taki czas.
Na 99% jest jak mówisz. Pilot nie może wysyłać dwóch kodów na raz, ale po załączeniu jednego przekaźnika nie musisz trzymać przycisku, przekaźnik nie puści. Jeśli nie interesują cię wielkie zsięgi mógłbyś spróbować też zrobić ro na IR. Jakiś gotowy pilot, najlepiej rc5, bo do tego kodu masz gotową obsługę w najprostrzym chyba języku Bascom, najprostrzy...
No teraz to trochę namieszałeś. Jak rogisz IF-a, to albo tak: If costam Then costam albo tak: If costam Then costam End if Tego: If costam Then costam End if BASCOM może nie łyknąć. W dodatku przy trzymaniu przycisku program będzie szybko zmieniał wartość Loudness. Trzeba by jakąś zmienną która przechowa informację o tym że przycisk już został obsłużony....
Sam moduł działa ale bardzo dziwnie bo gdy wszystko podłącze to dioda miga ale tak jak by na nie pełnym napięciu i LED mruga bardzo chaotycznie ale gdy nacisnę przycisk to reaguje gasnąć na chwile i świeci cały czas do puki trzymam przyciski czyli moduły są chyba dobre bo w taki surowy sposób działają. RC5 po co mi pilot?
Panowie a co z tym że w czasie trzymania przycisku program będzie bez przerwy wykonywał przełączanie... Bo przecież w takiej konfiguracji jak piszecie to jedno krótkie dla człowieka naciśnięcie przycisku to będzie kilka wykonanych cykli zmiany wyjść na wejścia i odwrotnie...
Moze problem lezy w bicie kontrolnym nadawanym w standarcie RC5. Jezeli nacisnieniemy przycisk i bedziemy go trzymac to ten bit nie zmienia wartosci. Jednak po kolejnym nacisnieciu ma wartosc przeciwna. Moze trzeba zastosowac jakas maske na odebrane dane?
If Pinb.0 == 1 Then // Loop Until Pinb.0 == 0 ? (at) stanleysts , Bascom, to nie C. ;) Tu wystarczy jeden znak "=". (at) Royd1 , spróbuj zmienić ze sobą miejscami: [syntax=basic4gl] Do 'jesli przycisk trzymany swieć do uwolnienia przycisku If Pinb.0 = 1 Then[/syntax]
Wiem już w czym był u mnie problem. Otóż moja procedura odczytu trzymanego przycisku była dobra. Problemem było to że źle wyłączałem przerwania, samo DISABLE INT0 nie wystarczy potrzeba jeszcze ręcznie zmienić flagę w rejestrze GIFR.
Witam, w związku z tym, że nie udaje mi się pogodzić zewnętrznych przerwań z obsługą 1-wire (zatrzymywanie przerwań na czas obsługi 1-wire co zakłóca mi odczyt z zewnętrznych przerwań) mam pytanie do bardziej doświadczonych: Czy możliwym jest wgranie "dwóch" programów do jednego uC, żeby działało to mniej więcej tak: 1-szy program tylko z obsługą 1-wire...
Podłączę się trochę pod temat chodzi mi też o menu. Mianowicie robię obrotomierz z ustawianymi progami alarmów jak zrobić w menu ustawianie kiedy trzymam wciśnięty przycisk to zmieniają mi się nastawy najpierw o jeden, jak trzymam dalej przycisk to zaczynają się przestawiać o dziesięć następnie o sto. Bo klikać przyciskiem 1200 razy to raczej średnia...
kbw - nie bądź ryzykantem i zbuduj prototyp. Układ jest na tyle banalny że zrobisz go na jakiejkolwiek płytce uniwersalnej. Wyjdą ci wszystkie bzdety źle wpływające na działanie. Zawsze lepiej jest odkłócić przycisk kondensatorem niż bawić się w dziwne rozwiązania programowe. Tzn, programowo i tak musisz zrobić debounce ale "sprzętowo" odkłócony przycisk...
na necie znajdziesz jaki kod ma przycisk r/m na kierownicy jedne przyciski wysyłają inny jak jak naciśniesz przycisk inny gdy go trzymasz ponad 1 sekunde i inny jak puścisz wkleiłbym parę stron z kodami ale do tej pory dostałem już parę ostrzeń itp, tylko w tym temacie :)
Przepraszam za głupie pytanie, ale jak ten program działa? I po co te dwa warunki? Bo rozumiem, chciałbyś wyeliminować drgania styków, masz opóźnienie 50ms, ale wtedy sprawdzasz, czy przycisk jest wciśnięty, a nie, czy puszczony... Co prawda Twój program będzie działał, ale trzymanie przycisku nie będzie powodowało zwiększania - tak miało być? Jeśli...
Autor chciał włączać i wyłączać miganie diód(przynajmniej ja tak odbieram) a wg mnie to nie jest zrealizowane:) Ja tu widze - trzyma - działa, nie trzyma - nie działa. Nawet gdy dobrze autor napisze sterowanie przyciskiem to i tak momentami to będzie działać jakby chciało ale nie mogło ano ze względu na wait... w podprogramie.
Manu działa poprawnie, z tym, że moim zdaniem za wolno reaguje na przyciski, przykładowo w podmenu ustawienia, muszę praktycznie trzymać cały czas przycisk + i co sekundę się zmienia wartość. Zaś gdy klikam ok na powrót do menu to czasem znów wchodzi w podmenu, tak jakby przycisk ok 2x nacisnął się (drgania styków?) Aha i buzzer cały czas wyje, jest...
Po co stosować tu przerwanie? Kardynalny błąd to stosowanie polceceń opóźnień w przerwaniach. W tym programie problem tkwi w: If Przycisk = 0 Then Waitms 100 If Przycisk = 0 Then Incr Sekwencja If Sekwencja = 0 Then Incr Sekwencja If Sekwencja = 4 Then Sekwencja = 1 End If End If End If End If Popraw na: If Przycisk = 0 Then Waitms 100 If Przycisk =...
Dzięki za cierpliwość. 70ms dobrałem doświadczalnie. Chodzi o to ,że tylko w ten sposób umiem zrobić ,żeby silnik w serwie kręcił . Tylko są tu kroki bo włącza sie co 70ms. Chcę ,żeby to było płynnie. Tyle ile trzymam przycisk na pilocie tyle się kręci , bez żadnych przerwań . Próbowałem także z toggle ale wtedy trzeba przycisnąć drugi raz przycisk...
Jeżeli mój klocek 2313 generuje sygnał zegarowy to jest szansa że żyje ??. Bo nie daje się zaprogramować :( Dorob sobie przycisk zwierajacy PIN 1 (Reset) do masy. Trzymaj go wcisnietego podczas programowania. Mialem ten sam problem. Nie wiem czemu tak jest, ale jest :). Ale jesli to nie zadzial, to probuj wciskac ten przycisk w roznych momentach. U...
roleta trzymać przycisk trzymać przycisk komputer trzymać przycisk tablet
dyplom elektryka panasonic świecić czerwona dioda autodata online
odpowietrzyć hydraulik samsungue 43nu7092
Canon TS3450 – jaka przetwornica 12V/230V do drukarki atramentowej w samochodzie? Chunghop RM-133E – parowanie z telewizorem LG, kody, programowanie pilota