Podajnik sterowany przez UNO + LCD - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Podajnik sterowany przez UNO + LCD (/watek-podajnik-sterowany-przez-uno-lcd) |
RE: Podajnik sterowany przez UNO + LCD - namok - 18-03-2017 Kontempluj : Kod PHP: const int ledPin = LED_BUILTIN; RE: Podajnik sterowany przez UNO + LCD - Smaczek - 20-03-2017 Witam, Poprzednik zapomniał dodać, że zwyczajowo używa się: - instrukcji if...else (lub samo if)- w przypadku obsługi dwóch stanów,, - switch...case- dla większej ilości stanów. Pozdrawiam. RE: Podajnik sterowany przez UNO + LCD - namok - 20-03-2017 (20-03-2017, 15:38)Smaczek napisał(a): Poprzednik zapomniał dodać, że zwyczajowo używa się:Zwyczajowo to porponuję przetrzeć oczęta bo wyraźnie napisałem: (18-03-2017, 21:35)namok napisał(a): Użycie switch do migania diodą nie jest jakoś specjalnie lepsze od if..else jest ale jest to wstęp do maszyny stanów(sekwencji kroków). RE: Podajnik sterowany przez UNO + LCD - Fuks81 - 28-03-2017 Witam i przepraszam za niezbyt częste wizyty na forum. Z braku czasu musze odkładać pewne rzeczy na potem. Ale chwilę dziennie poświęcam na kurs "Arduino od podstaw" Pana Tomasza Kubisztala. I przypadł mi do gustu jeden jego projekt a mianowicie "Migajaca dioda petla FOR". Niewiele czasu trzeba było aby przerobić szkic żeby dioda migała bez końca po naciśnięciu przycisku. Ale Pan zrobił szkic na bazie "opóźnienia" DELAY, a mi zależy na działaniu na "Millis'ach". I niestety to nie jest już takie proste dla mnie. Podejrzewam też, że dla funkcji "switch- case" pętlę FOR można zastąpić. I też dioda będzie migała. Kolego NAMOK. Podałeś mi gotowca z wykorzystaniem switch case. Jestem wdzięczny. Ale i tak są to dla mnie czary mary. Bo operowanie stanami na dowolnym pinie mikrokontrolera jest nie do przeskoczenia. Wiem, że są dwa (0/1) i to tyle. Dziękuję. Poczytam jeszcze trochę i spać. RE: Podajnik sterowany przez UNO + LCD - Fuks81 - 04-04-2017 Witam. Jeszcze raz proszę o pomoc. Proszę o nakierowanie w utworzeniu funkcji do monitoringu stanu przycisku. Nie wiem jak to ugryźć. Chcę tylko uruchomić miganie diodą za pomocą przycisku. Ale przy użyciu funkcji millis() a nie delay(). Bo to drugie mi działa. Nie wiem jak napisać szkic, tak aby po puszczeniu palca z przycisku pętla wykonywała się nadal. Proszą o podpowiedź w temacie. Ps. Czytam i oglądam kursy, poradniki, fora itp. na temat ale mogę skleić faktów. RE: Podajnik sterowany przez UNO + LCD - namok - 04-04-2017 (04-04-2017, 16:20)Fuks81 napisał(a): Nie wiem jak napisać szkic, tak aby po puszczeniu palca z przycisku pętla wykonywała się nadal. Proszą o podpowiedź w temacie. Nie możesz skleić faktów bo chcesz je skleić bez zrozumienia zasady działania. Bez nauki samo nie przyjdzie. Tu: http://forum.arduinopolska.com/watek-dodanie-beep?pid=5768#pid5768 masz przykład jednokrotnego wykonania polecenia po określonym czasie. Przerób w oparciu o BlinkWithoutDelay a będziasz miał ciągłe wykonywanie polecenia. RE: Podajnik sterowany przez UNO + LCD - Fuks81 - 06-04-2017 Witam. Kolego Namok, co prawda mam już szkic spełniający moje oczekiwania z pierwszego postu (przerobiony szkic z biblioteki "OneButton.h") ale to nie oto chodzi. Wedle Twoich wskazówek połączyłem BlinkWithoutDelay z częścią szkicu Kolegi ferdricco i wyszło mi takie cuś: Kod: const int ledPin = LED_BUILTIN; Nie jest to wersja idealna, ale nie jest zła. Chodzi o stan w którym pozostaje dioda led po ponownym wciśnięciu przycisku. Proszę o komentarz. Jeśli ma to ręce i nogi, to pokombinuję z kodem do pojedynczego lub podwójnego mignięcia diodą w zależności od stanu. Tak jak radziłeś w/w wątku. RE: Podajnik sterowany przez UNO + LCD - namok - 08-04-2017 (06-04-2017, 21:53)Fuks81 napisał(a): Nie jest to wersja idealna, ale nie jest zła.Opisz dokładnie co masz na myśli z tą diodą to szybciej znajdziemy rozwiązanie. Skoro używasz millis() to używaj wszędzie, przycisk aż prosi się żeby to zastosować. "previousMillis" zdefiniuj w funkcji migacz z użyciem modyfikatora "static". RE: Podajnik sterowany przez UNO + LCD - Fuks81 - 12-04-2017 Witam. Z ciężkim bólem kod przerobiony na użycie samego millis(). Błąd z dioda pozostał. W szkicu led na pinie 12 sygnalizuje działanie funkcji migacz a led_builtin wskazuje stan przycisku. I w sytuacji gdy stan led na pinie 13 jest HIGH to funkcja migacz działa poprawnie. Lecz jeśli stan przycisku się zmieni na przeciwny( led_bultin gaśnie ) w momencie gdy led na pinie 12 jest w stanie HIGH , to już taki zostaje do momentu zmiany stanu przycisku. Mam nadzieję, że zrozumiale to opisałem. A poza tym sklejenie dwóch przykładów (BlinkWithoutMillis + Debounce) tyle czasu ponieważ wiedziałem, że muszę wstawić odpowiedni warunek do działania kodu. Problem w tym, że nie wiedziałem gdzie go wstawić. Poradniki tego nie "mówią". Kod: const int ledPin = LED_BUILTIN; RE: Podajnik sterowany przez UNO + LCD - namok - 13-04-2017 Nie chce mi się analizować szczegółowo programu bo opis jest niejasny i używasz nazw które mylą. Nazwy diod powinny być w stylu ledStanPrzycisku i ledMiga. Prawdopodobnie w funkcji migacz() w złym miejscu jest instrukcja "digitalWrite(ledPin1, ledState1);". Teraz wykonuje się gdy "ledState1 <> HIGH". |