• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
z pętlą zgubiłem się w czasie
#41
Jaki problem indeksować od 1 (jak koś lubi Bascom) a tablice zrobić o 1 większą? Tylko proszę nie pisać, że w ten sposób marnuje się RAM bo w Arduino jest on marnowany tak, że jedne element tablicy tego nie zmieni.
Ponadto już napisałem zmiany trzeba wprowadzić w całym kodzie a nie fragmentach i dałem przykład takiego kodu. Gdzie tam jest indeksowanie od 1?
Nawet jak jest, to napisałem, ze dałem wędkę a nie rybę. Moim celem nie jest danie gotowego kodu, który bez zastanowienia zostanie użyty, tylko pokazać sposób rozwiązania problemu.

@elvis, kolejny raz, nie pomagasz! Ile to już razy było? jak zwykle jakieś "mądrości", wywody, zaczepki.
Nie chcesz pomóc to nie zabieraj głosu.

Co do offtop, to nie uważam za offtop przestrzeganie forumowiczów przed błędami w kursach na Forbocie, których jest sporo i nie tylko na Forbocie. Do darmowych kursów trzeba podchodzić z rezerwą a to, że błędów w książkach prawie nie ma a na kursach Forbota są to fakt, a z faktami się nie dyskutuje.
 
Odpowiedź
#42
Ale skoro mam pomagać to w sumie czemu nie.
@maniekdii - zacznij od mniejszej liczby przekaźników, 4 to absolutne maksimum. Jakbyś mógł usunąć z kodu wszystkie pozostałe, wstawić kod który napisałeś i słowami opisać co chciałeś uzyskać - może wtedy będzie łatwiej znaleźć jakieś działające rozwiązanie Smile A później będzie można pomyśleć nad poprawieniem kodu i dodaniem pozostałych przekaźników.
 
Odpowiedź
#43
Panowie tylko spokojnie!!! bez rękoczynów poproszę!!SmileSmile

może to moja wina że nie jasno tłumaczę ale już nie wiem jak lepiej to zrobić. Mam wrażenie że zawiłe meandry programowania, pętle i zależności, powodują szukanie problemu gdzieś bardzo głęboko a nie na samym wierzchuSmile
Kolega Agregacik już ten problem prawie rozwiązał ale jeszcze jakieś krzaczki się wplątują. chwilowo nie mialem czasu by przysiąść nad kodem by przełożyć go "z Polskiego na Nasz" .
Na moim poziomie wiedzy o C++ , tablicowanie , indeksowanie, oszczędzanie RAM, oraz jeszcze parę innych zagadnieni które tu poruszyliście jest jak na razie tylko domysłem a do kompletnego zrozumienia i pojęcia potrzebuję jeszcze trochę czasu.

Pisząc swój kod chciałem zrobić sterowanie oświetleniem świątecznym przed domem, które po zadziałaniu czujnika ultradźwiękowego, uruchamiałoby np na 1,5 minuty sekwencję migania lampek, a po tym czasie zapalało "statycznie" tylko część. Sekwencja się udała, tzn rozgryzłem czasy i zależności które pozwolą na zrobienie jej tak jak chcę. sterowanie czujnikiem również się udało, a przy okazji testów udało się dołożyć kontrolne diody świecące, komunikaty na porcie szeregowym i dodatkowy przycisk wyzwalania. Problemem stało się prawidłowe zaczytanie czasu i zsynchronizowanie z nim sekwencji w momencie gdy nie startowała ona równo z uruchomieniem płytki.czyli by sekwencja zachowywała się dokładnie tak samo w momencie uruchomienia "z guzika" jak w przypadku startu razem z płytką gdy jest "sama z sobą"

nie wiem jak jeszcze jaśniej opisać to co chciałem uzyskać Sad
kolejnym etapem miało być tez równolegle z sekwencją odpalenie jakiegoś pliku muzycznego z płytki odtwarzacza Mp3, ale za to jeszcze nawet się nie zabrałem. Może w przyszłym rokuWink
 
Odpowiedź
#44
Wklej kod może uda się coś poprawić w wolnej chwili jak potrafię.
 
Odpowiedź
#45
Nadal uważam że powinniśmy zacząć od zmniejszenia liczby przekaźników i wklejenia kodu. Ale tak trochę zgadując - wydaje mi się, że problem jest w funkcji: void zatrzymanie()
Ustawiasz w niej wartości wyjść, czyli zapalasz lub gasisz lampki, ale nie resetujesz wartości zmiennych sk1 - sk17.
 
Odpowiedź
#46
(07-12-2019, 16:39)elvis napisał(a): Nadal uważam że powinniśmy zacząć od zmniejszenia liczby przekaźników i wklejenia kodu. Ale tak trochę zgadując - wydaje mi się, że problem jest w funkcji: void zatrzymanie()
Ustawiasz w niej wartości wyjść, czyli zapalasz lub gasisz lampki, ale nie resetujesz wartości zmiennych sk1 - sk17.
Też tak mi się wydaje. Powinna być sekwencja zatrzymania, wyświetlana między "wybudzeniami" i sekwencja startowa uruchamiana po wybudzeniu. No, może inaczej w praktyce by to wyglądało, ale tak opisowo podałem.
 
Odpowiedź
#47
(07-12-2019, 16:45)Agregacik napisał(a): Też tak mi się wydaje. Powinna być sekwencja zatrzymania, wyświetlana między "wybudzeniami" i sekwencja startowa uruchamiana po wybudzeniu. No, może inaczej w praktyce by to wyglądało, ale tak opisowo podałem.
czyli po sekwencji "statycznej" , po warunku zadziałania ale jeszcze przed sekwencją "ruchomą" wyzerować "zgasić" wszystkie przekaźniki?
 
Odpowiedź
#48
(08-12-2019, 09:10)maniekdii napisał(a):
(07-12-2019, 16:45)Agregacik napisał(a): Też tak mi się wydaje. Powinna być sekwencja zatrzymania, wyświetlana między "wybudzeniami" i sekwencja startowa uruchamiana po wybudzeniu. No, może inaczej w praktyce by to wyglądało, ale tak opisowo podałem.
czyli po sekwencji "statycznej" , po warunku zadziałania ale jeszcze przed sekwencją "ruchomą" wyzerować "zgasić" wszystkie przekaźniki?
Tak, tylko że "gaszenie" trzeba wykonać raz a potem "puścić" sekwencję. Właściwie może nie "gaszenie" lampek, ale ustawienie zmiennych odpowiedzialnych za stany przekaźników w sekwencji, ustawić w "pozycji startowej".
 
Odpowiedź
#49
tak, tak o to mi chodziło
 
Odpowiedź
#50
Czyli teraz program działa zgodnie z oczekiwaniami?
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości