Skocz do zawartości

Wprost123

Użytkownicy
  • Zawartość

    42
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O Wprost123

  • Ranga
    3/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. 3 dni temu wrzuciłem swój pierwszy filmik na YouTube Poniżej adres z filmikiem prezentującym efekty działania układu. Potem jeszcze trochę zmieniłem min. właśnie reakcje gdy osoby idą prawie jednocześnie z dwóch stron.
  2. Na początku spróbuję sam. Jeśli się uda, to będzie większa satysfakcja. Jeśli polegnę to będę tutaj szukał pomocy.
  3. Miałem jeszcze jeden problem, ale udało mi się go rozwiązać. Kod jest długi i dla znawców, jak Kolega ethank zauważył zapewne paskudnie rozrośnięty, więc chyba nie będę się tutaj "chwalił", chyba że ktoś jest bardzo ciekaw. Następnym etapem będzie próba podłączenia mocnych ledów przez tranzystory, a potem uruchomieniem układu na jakichś schodach. W międzyczasie będę też próbował zmienić program tak, żeby sterowanie mogło się odbywać z czujek ruchu. Bardzo dziękuję za dotychczasową pomoc
  4. O... Przepraszam. Jak pisałem, nie wrzuciłem całego kodu, bo f. włączania lub włączania stałego podświetlania nie ma tu znaczenia. Nie zauważyłem że nie wyciąłem wszystkich miejsc gdzie jest ona wymieniona. Wczoraj udało mi się rozwiązać powyższy problem, w sposób opisany w poprzenim poście (w skrócie pisząc, sprawdzając w "kejsie" 7 czy jest naciśnięty drugi przycisk).
  5. Analizowałem wczoraj pracę programu i doszedłem do wniosku, że być może warunki na uruchomienie funkcji ledsOff są poprawne, ale program działa tak, że nie zostaną spełnione. Otóż, gdy nacisnę dwa przyciski w niewielkim odstępie czasu, to pierwszy przycisk uruchomi np. ledsOnWgore i po dojściu zmiennejP1 do wartości 8, uruchomi się f. czasCzekania. Gdy ta funkcja się skończy, to program zamiast porównać czy zmiennaP2 jest mniejsza od zmiennejP1, zaczyna kontynuować naliczanie wartości zmiennej od przycisku który został naciśnięty później (w tym przypadku zmiennejP2). Dopiero gdy zmiennaP2
  6. Nie wrzucam całego kodu, bo niestety jest bardzo długi (jest jeszcze jedna funkcja dla trzeciego przycisku, włączająca inną kombinację podświetlania, ale w powyżej opisanym problemie nie ma żadnego udziału). Pewnie dałoby się zrobić to krócej ale narazie dobrze że działa. Problem jest myślę w dwóch warunkach zapisanych w liniach od 202. W komentarzu przy kodzie opisałem jak wg mnie powinien wyglądać warunek, aby wygaszanie następowało od odpowiedniej strony. Może błędnie zapisałem te warunki ? #define led1 4 #define led2 5 #define led3 6 #define led4 7 #define led5 8 #define led6 9 #
  7. A czy Kolega mógłby podpowiedzieć jak taki warunek mógłby wyglądać w moim przypadku?
  8. Udało mi się z rozróżnianiem czasu naciśnięcia dla obu przycisków. Program ma już większość z założonych przeze mnie funkcji (chociaż do miana napisanego w optymalny sposób, mu daleko, ale na tym etapie cieszę się że w ogóle coś działa). Jest jeszcze taki problem- gdy nacisnę jeden przycisk a tuż po nim drugi (dwie osoby idą z przeciwnych kierunków, prawie w tym samym czasie) to dwa poniższe warunki sprawiają, że uruchamia się gaszenie dla każdej ze stron i w efekcie diody gasną od dołu i od góry jednocześnie, po kolei. Ostatnia gaśnie środkowa. A powinno być tak, że diody gasn
  9. Z pomocą z innego forum stworzyłem taki kod. Niestety nie wiem jak wyłączyć diody gdy będą w funkcji wlaczNaStale (czyli uruchomić funkcję wylaczStale) tak, żeby nie uruchomić przy tym zwykłego podświetlania?? Myślałem, żeby zupełnie poniżej dać kolejny if taki: if(digitalRead(przycisk1)==LOW and wszystkieWlaczone==true){ wylaczStale(); } Żeby, gdy wszystkie ledy świecą i naciśniemy przycisk na dowolny czas, to uruchomi się funkcja wylaczStale, która zgasi wszystkie ledy. Niestety nie działa w ten sposób. void loop() { // Rozróżnianie czy przycisk wciśnięty na krótko
  10. @jas123 @jas123 Kod narazie wygląda tak. Po naciśnięciu przycisku ma po kolei załączać diody. Potem jest regulowany potencjometrem czas w którym wszystkie diody świecą, a na koniec diody po kolei gasną. Kod zapewne mógłby zostać jakoś skrócony, poprawiony itp. Mam nadzieję, że z czasem pewne rzeczy będę potrafił zrobić w jakiś prostszy, ładniejszy sposób. Nie wiem jak go zmodyfikować, żeby w zależności od długości wciśnięcia przycisku uruchamiał funkcję ledsOn lub wlaczNaStale #define led1 4 #define led2 5 #define led3 6 #define led4 7 #define led5 8 #define led6 9 #def
  11. @matrix0606 Jak narazie, mimo wielu prób nie udało mi się stworzyć sposobu aby dobrze rozróżnić jaka ma się wykonać akcja w zależności od długości naciśnięcia przycisku. Chyba jest tak dlatego, że gdy daję warunki if(ileRazy<20) {ledsOn();} oraz if(ileRazy>20) {wlaczNaStale();} to ten pierwszy warunek zawsze zostanie spełniony gdy tylko nacisnę przycisk (nie zależnie od tego jak długo jest wciśnięty) i uruchomi przypisaną mu funkcję, a drugi warunek zostanie spełniony tylko gdy przytrzymam przycisk dłużej. Czyli pierwszy jest spełniony zawsze i ewentualnie drugi. A chciałbym os
  12. Przycisk już jest. Jeden (bo narazie robię tylko rozświetlanie w górę) i chciałbym, żeby w zależności od tego jak długo jest wciśnięty, uruchamiała się albo funkcja ledsOn albo wlaczNaStale. Przy krótkim naciśnięciu przycisku program nalicza mi ok 5-10 razy zmienną ileRazy (wtedy powinna się uruchomić funkcja ledsOn). Więc gdy przytrzymałbym przycisk odpowiednio długo to naliczy np. więcej niż 30 i wtedy powinna się uruchomić funkcja wlaczNaStale. Jeśli diody włączą się na stałe, to po ponownym naciśnięciu przycisku (już dowolna długość naciśnięcia) wszystkie diody powinny zgasnąć i
  13. Chciałbym jeszcze dodać możliwość podświetlenia wszystkich schodów na stałe, poprzez dłuższe naciśnięcie przycisku. Proszę o podpowiedź jak to obwarunkować. Myślałem, żeby w pętlii loop, przed dotychczasowymi warunkami czyli min. jeśli wciśnięto przycisk to stan przycisku==1 i uruchom funkcję ledsOn itd. dodać warunek, że jeśli zmienna ileRazy została naliczona np więcej niż 30 razy, to wtedy uruchomi się funkcja wlaczNaStale rozświetlająca wszystkie diody. Nie wiem niestety jak sprawić, aby program najpierw sprawdzał czy naliczono więcej niż 30 razy zmiennej ileRazy, a jeśli nie,
  14. Kod Kolegi (narazie na jednym przycisku) też działa nieźle. Dodałem tylko na początku funkcji ledsOnUp zerowanie zmiennej2, ponieważ przy pierwszym uruchominiu program czekał czas określony przez potencjometr po czym rozpoczynał gaszenie, ale przy kolejnym naciśnięciu już tego nie robił, bo zmienna2 była już na tyle duża, że od razu rozpoczynało się gaszenie.
  15. Poprawienie zapisu warunku pomogło Dziękuję. Kod Kolegi też wgram i popatrzę jakie będą efekty.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.