Użycie serwa w celu wykonania jednego ruchu ramieniem - 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: Użycie serwa w celu wykonania jednego ruchu ramieniem (/watek-u%C5%BCycie-serwa-w-celu-wykonania-jednego-ruchu-ramieniem) |
Użycie serwa w celu wykonania jednego ruchu ramieniem - mrozilla - 15-12-2017 Zaczynam dopiero korzystać z Arduino i nie mogę znaleźć rozwiązania prostego problemu. Chcę aby po włączeniu Arduino ramię serwa wykonało ruch do końca w jedną stronę po czym wróciło do pozycji początkowej i na tym zakończyło program, tak jakby wykonało np. otwarcie i zamknięcie jakiejś klapki. Próbowałem przerobić kod, który powoduje, że ramię idzie do końca, po czym szybciej wraca do pozycji początkowej i ponownie wykonuje to samo. Kod: #include <Servo.h> //Biblioteka odpowiedzialna za serwa Kod: #include <Servo.h> //Biblioteka odpowiedzialna za serwa Może ktoś będzie w stanie jakoś rozwiązać ten problem? RE: Użycie serwa w celu wykonania jednego ruchu ramieniem - Smaczek - 16-12-2017 Witam, Nie będzie to dobre rozwiązanie, gdyż w momencie podania zasilania serwo będzie wykonywać niepożądane ruchy do momentu "zaladowania" się programu. Dla Uno to 1 - 2 sekundy. Pozdrawiam, Tomek RE: Użycie serwa w celu wykonania jednego ruchu ramieniem - mrozilla - 17-12-2017 W sumie faktycznie serwo coś robi na początku, ale ramienia nie miałem założonego i na to uwagi nie zwracałem. W takim razie czy da się w ogóle zrealizować projekt za pomocą serwa ale w jakiś inny sposób? Ewentualnie jak inaczej w możliwie najprostszy sposób się za to zabrać? Jeszcze jedno pytanie z tematu bardzo mnie zastanawia, otóż jak zrobić to co opisałem na początku. Już nawet nie koniecznie w kontekście użycia serwa do otwierania czegokolwiek ale po prostu aby serwo wykonało ruch w jedną stronę i wróciło do punktu wyjścia po czym zakończyło działanie, bo w dalszym ciągu nie udało mi się go programowo zatrzymać w tym momencie. Również opcja Delay opóźnia skok ramienia, które porusza się z punktu początkowego do końcowego (jak wraca to już ciągiem, bez opóźnień), a chciałbym aby ramię idąc od lewej do prawej zatrzymało się powiedzmy na sekundę i dopiero wtedy zaczęło wracać do punktu początkowego. Edit. W sumie sprawdziłem i faktycznie serwo wykonuje na początku ruch do przodu ale jest to około 1-2mm i w moim projekcie nie byłoby to aż tak dużym problemem tylko, że mimo wszystko pozostaje reszta problemów do rozwiązania. RE: Użycie serwa w celu wykonania jednego ruchu ramieniem - Smaczek - 17-12-2017 Witam, Jeśli nie masz dużych obciążeń serwa to może pomysl o tym żeby ustawiać konkretne położenie, odciąć zasilanie serwa na żądany czas, przewrócić zasilanie i spowodować ruch do drugiego położenia. I znowu odejmij zasilanie serwa. Pozdrawiam, Tomek RE: Użycie serwa w celu wykonania jednego ruchu ramieniem - mrozilla - 17-12-2017 Nie, obciążenia dużego nie będzie, myślę, że nie będzie większe niż waga serwa, a siebie bez problemu unosi na ramieniu. Odcięcie zasilania byłoby najprostsze, ale minimalny czas zewnętrznego programatora to 1 minuta, a przez ten czas ramię wielokrotnie wykona powtarzalny ruch, a tego chciałbym uniknąć dlatego też wolałbym programowo je zatrzymać. RE: Użycie serwa w celu wykonania jednego ruchu ramieniem - Smaczek - 18-12-2017 Witam, Przecież możesz programowo załączać i wyłączać zasilanie serwa. Zwykły klucz na tranzystorze. Możesz też spróbować wyłączać serwo funkcją detach(). Pozdrawiam, Tomek. |