Problem z Serwem - 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: Problem z Serwem (/watek-problem-z-serwem) Strony:
1
2
|
Problem z Serwem - Jezel123 - 09-11-2018 Witam. Zacząłem zabawę z joystickiem w arduino UNO R3. Projekt jest taki, że jeżeli poruszę joystickiem w prawo silnik kręci się w prawo na 0 stopni. Jak nie robię nic, ma powrócić do 90 stopni, a jak joystick idzie w lewo, serwo ma się poruszać w lewo na 180 stopni. Problem jest taki, że kiedy nic nie robię, serwo kręci bączka w prawą stronę. Tak wygląda kod: Kod: #include <Servo.h> RE: Problem z Serwem - es2 - 09-11-2018 Zacznij od tego aby prawidłowo umieścić kod na forum,chyba, że znasz prosty sposób aby wyszukać tekstu do porównania na tym obrazku, wstawienia, edycji. Widać, że nie zadałeś sobie nawet trudu przeczytania innych postów aby zobaczyć jak to się robi. Tobie się nie chce innym nie chce sie pomagać. PS Dobrze, że nie dałeś fotografii ekranu, co jest nagminne na Elektrodzie ale nie został jeszcze pobity rekord pokazujący kod jako filmik na YT. Nadal masz szansę. RE: Problem z Serwem - Jezel123 - 09-11-2018 (09-11-2018, 10:04)es2 napisał(a): Zacznij od tego aby prawidłowo umieścić kod na forum,chyba, że znasz prosty sposób aby wyszukać tekstu do porównania na tym obrazku, wstawienia, edycji. A jak to zrobić? Jak prawidłowo umieścić kod? RE: Problem z Serwem - es2 - 09-11-2018 (09-11-2018, 12:10)Jezel123 napisał(a):(09-11-2018, 10:04)es2 napisał(a): Zacznij od tego aby prawidłowo umieścić kod na forum,chyba, że znasz prosty sposób aby wyszukać tekstu do porównania na tym obrazku, wstawienia, edycji. Jak? Potrzebujesz pomocy, jaki więc link należy wybrać? Rejestracja? Nowa odpowiedź? Może pomoc? - https://forum.arduinopolska.pl/misc.php?action=help Zobacz jak wygląda poprawnie umieszczony kod choćby poprzedni wątek https://forum.arduinopolska.pl/watek-problem-z-uzyskaniem-po%C5%BC%C4%85danej-mocy-na-silniku PS Skoro nawet nie potrafisz przeczytać krótkiej pomocy, z pewnością nie przeczytałeś regulaminu forum, pewnie nie czytałeś innych podobnych wątków, to blado widzę abyś był w stanie napisać porządny program. Aż się boję zobaczyć co w tym kodzie "namalowałeś". RE: Problem z Serwem - Jezel123 - 09-11-2018 es2 Teraz dobrze? RE: Problem z Serwem - es2 - 09-11-2018 (09-11-2018, 13:52)Jezel123 napisał(a): es2Dobrze, byłoby, gdyby kod był sformatowany, jak poniżej: Kod: #include <Servo.h> i jak by w końcu zrobiono po ludzku wyświetlanie kodu na form, ale to już nie wina użytkowników. Co do kodu. Skąd go masz? Twoja "radosna twórczość", czy z netu? Jak z netu to omijaj stronę, z której masz kod szerokim łukiem. Wiesz co robi Kod: Serial.begin(9600); RE: Problem z Serwem - Jezel123 - 09-11-2018 (09-11-2018, 14:22)es2 napisał(a): Co do kodu. Skąd go masz? Twoja "radosna twórczość", czy z netu? Jak z netu to omijaj stronę, z której masz kod szerokim łukiem. Kod jest w połowie z internetu a w połowie sam go napisałem. a Serial.begin(9600); napisałem, bo testowałem , który warunek działa, kiedy serwo kręci "bączka". Niestety kończyło się na tym, że na monitorze portu nic się nie wyświetlało. RE: Problem z Serwem - es2 - 09-11-2018 (09-11-2018, 14:27)Jezel123 napisał(a): Kod jest w połowie z internetu a w połowie sam go napisałem.Wyszła ciekawa hybryda. Niestety łączy wady obu połówek zamiast łączyć zalety. (09-11-2018, 14:27)Jezel123 napisał(a): a Serial.begin(9600); napisałem, bo testowałem , który warunek działa, kiedy serwo kręci "bączka".Czyli dobrze kombinowałeś. Arduino nie ma możliwości sprzętowego debugowania (co ciekawe AVR taka możliwość mają) więc trzeba sobie radzić używając UART. Doprowadź do tego, aby komunikaty wysyłane z Arduino pojawiały się w monitorze. Bez tego szkoda czasu na domyślanie się co i czy pojawia się po odczycie z wejścia analogowego. Może jakieś druty nie stykają? Może pomyliłeś wyprowadzenia? Za dużo zgadywania. Nie pisz, ze wszystko sprawdziłeś 100 razy i jest ok. Sam po sobie dobrze nie sprawdzisz. Będziesz widział co chcesz widzieć a nie co jest. Najszybciej błąd znajdzie inna osoba. Zacznij więc od wysłania na monitor wartości odczytywanej przez Kod: analogRead(A0); RE: Problem z Serwem - Jezel123 - 09-11-2018 es2 Kiedy skieruję joystick w lewo (przewody wychodzą od dołu), wartość jest równa 0. Kiedy skieruję joystick w prawo, wartość waha się od 954 do 1017, ale kiedy nic nie robię wartość waha się od 410 do ok 520. Po paru minutach zostaje na 520. Przez to pierwszy odczyt = ok 450 a następne są większe lub mniejsze. Czy jeżeli zamiast if (GD>MGD+10) dałbym MGD+100 to działało by? RE: Problem z Serwem - es2 - 09-11-2018 (09-11-2018, 16:11)Jezel123 napisał(a): es2 Próby przeprowadziłeś poprawnie ale wyciągnąłeś złe wnioski. Jak zauważyłeś, wynik nie jest stabilny. To jest normalne zjawisko. Przetwornik w AVR ma zdaje się +/2 LSB. Problemem może też być jakie ustawiłeś źródło napięcia odniesienia i jak włączyłeś potencjometr. Pomiary mogą być dokładniejsze, jak na czas konwersji uśpisz uC ale w tym przypadku nie jest to konieczne, ponadto tylko taki zabieg, nie rozwiązał by problemu. Przypisanie +100 też nie rozwiąże problemu, bo przy kolejnym uruchomieniu, może się okazać, że potrzeba +50 albo -20. Musisz uśrednić wyniki pomiarów. Uśrednianie musisz przeprowadzić zarówno przed przypisaniem wyniku pomiaru w setup() jak i w loop(). ZAPOMINJ o rozwiązaniu Kod: zmienna = analogRead(x); |