Skocz do zawartości
Ważne ogłoszenie » Kliknij i sprawdź informacje o nowym forum! Czytaj dalej... ×
Komentator

Kurs Arduino - #5 - PWM, serwomechanizmy, biblioteki

Recommended Posts

html_mig_img
Poprzednia część omawiała przetwornik ADC. Tym razem pójdziemy w drugą stronę i zajmiemy się generowanie specyficznego sygnału.Mowa o PWM - modulacji szerokości impulsu. Zagadnienie to może brzmieć skomplikowanie, jednak kilka praktycznych przykładów na pewno rozwieje wszelkie wątpliwości!

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Udostępnij ten post


Link to post
Share on other sites

Dzięki za kolejną ciekawą lekcję i czekam na te dodatkowe przydatne triki, a najbardziej na sterowanie silnikiem DC.

Pozdrawiam hob_bit :)

Udostępnij ten post


Link to post
Share on other sites

Bardzo fajnie :) czekam na ciekawostki. Może jeszcze pojawi się temat o ciekawej funkcji arduino, która zmiana go w programator ISP.

Udostępnij ten post


Link to post
Share on other sites

Witam. Może to tylko zbieg okoliczności, ale czy servo mogę podpiąć tylko do pinów na których generowany jest sygnał PWM czy mogę podpiąć je pod dowolny pin arduino?

Udostępnij ten post


Link to post
Share on other sites

bocian

możesz podpiąć pod dowolny pin, który generuje PWM :) czyli piny: 3, 5, 6, 9, 10, 11

Udostępnij ten post


Link to post
Share on other sites

bocian, dałoby się sterować serwomechanizmami przez inne porty, ale byłoby to bardzo utrudnione. Każde serwo wymaga swojego sygnału PWM, a ten najłatwiej generować na wyprowadzeniach ze sprzętowym wsparciem generowania takiego sygnału 🙂

Udostępnij ten post


Link to post
Share on other sites

Harmonogram najbliższych publikacji kursu Arduino:

do 28.06 - Część dodatkowa

do 02.07 - Wyświetlacze LCD

Udostępnij ten post


Link to post
Share on other sites

Czekamy, czekamy :) jest może jakiś sposób na odczytanie pozycji serwa, żeby po zadaniu obrotu nie robić delay() tylko sprawdzić czy już dotarło?

Udostępnij ten post


Link to post
Share on other sites

MateuszW, musiałbyś dostać się do potencjometru, który jest wewnątrz serwomechanizmu i dorobić sprzężenie zwrotne. Inna opcja, to inwestycja w bardziej zaawansowane (znacznie droższe) serwomechanizmy, z którymi można się komunikować w dwie strony.

Udostępnij ten post


Link to post
Share on other sites

Tak myślałem, ale miałem nadzieję, że skoro właśnie jest już potencjometr to można jednak w jakiś prosty sposób odczytać wartość. No cóż, dzięki za odpowiedź.

Udostępnij ten post


Link to post
Share on other sites

No niestety serwomechanizmy mają możliwość "nasłuchiwania" PWM, nie potrafią wysyłać informacji zwrotnej.

Udostępnij ten post


Link to post
Share on other sites

Witam,

Gdy już jesteśmy przy zasilaniu Arduino napięciem wyższym niż 5V mam kilka pytań (zapewne oczywistych).

- Powód, dla którego dajemy stabilizator? Czy jest to dlatego, że serwo obsługiwane jest z napięciem 5V (i zostałoby spalone) czy dlatego, że przez pin analogowy bez stabilizatora również przesłoby napięcie 9V a co za tym idzie podłączając do pinu analogowego spalimy Arduino.

- Czy podłączenie koszyku na baterię 4 x 1,5V do Arduino będzie poprawnie działać? Wyczytałem, że powinno zasilać się od 7-12V by minimalny dropout był 2V.

- Chciałem zbudować sterowanie silnikiem (jak serwem) z użyciem potencjometru. Silnik to DG01D (4.5V) gdy go podłączyłem używając Arduino tylko jako zasilanie (5V), silnik działa. Niestety gdy podłączone jest z potencjometrem, kręcąc nóżkom słychać tylko "buczenie" wewnątrz silnika nic (nic się nie kręci). Czy ma na to wpływ natężenie płynące przez piny w Arduino czy może za duże napięcie czy coś jeszcze?

Z góry dziękuję za odpowiedź!

Udostępnij ten post


Link to post
Share on other sites
Powód, dla którego dajemy stabilizator? Czy jest to dlatego, że serwo obsługiwane jest z napięciem 5V (i zostałoby spalone) czy dlatego, że przez pin analogowy bez stabilizatora również przesłoby napięcie 9V a co za tym idzie podłączając do pinu analogowego spalimy Arduino.

Piny analogowe, które pracują w zakresie 0-5V nie mają tutaj niż do rzeczy. Więc sprawdź, czy dobrze rozumiesz wszystkie pojęcia. Serwomechanizm zasila silnik napięciem podanym na jego czarny (masa) oraz czerwony (Vcc) przewód.

Serwomechanizm musi być zasilany z około 5V. Czyli teoretycznie moglibyśmy podłączyć go do pinów 5V wyprowadzonych z Arduino. Niestety prąd pobierany przez silnik jest duży (szczególnie przy rozruchu), wbudowany stabilizator jest zbyt słaby, aby to obsłużyć. W związku z tym powstają zakłócenia, które resetują procesor i program nie działa poprawnie.

Postaram się w ciągu kilku tygodni rozbudować tę część kursu o demonstracje takiego zjawiska. Najpierw jednak pojawią się nowe artykuły.

- Czy podłączenie koszyku na baterię 4 x 1,5V do Arduino będzie poprawnie działać? Wyczytałem, że powinno zasilać się od 7-12V by minimalny dropout był 2V.

Niestety 6V może okazać się zbyt niskim napięciem.

Chciałem zbudować sterowanie silnikiem (jak serwem) z użyciem potencjometru. Silnik to DG01D (4.5V) gdy go podłączyłem używając Arduino tylko jako zasilanie (5V), silnik działa. Niestety gdy podłączone jest z potencjometrem, kręcąc nóżkom słychać tylko "buczenie" wewnątrz silnika nic (nic się nie kręci). Czy ma na to wpływ natężenie płynące przez piny w Arduino czy może za duże napięcie czy coś jeszcze?

Absolutnie NIE WOLNO podłączać silnika bezpośrednio do Arduino. Jest to najprostsza droga do jego nieodwracalnego uszkodzenia. Przykład poprawnego podłączenia silnika pojawi się w kolejnej części kursu. Radziłbym do tego czasu nie robić własnych eksperymentów z napędami! Pamiętaj, że wydajność jednego pinu Arduino to około 20mA, silnik może brać 10, albo 100 razy więcej!

Udostępnij ten post


Link to post
Share on other sites

Treker, Super dzięki za wyjaśnienia!

Niestety przed eksperymentami ciężko będzie mnie powstrzymać:) Silniki na razie zostawię i poczekam na kolejny artykuł.

Jeszcze takie szybkie pytania:)

- co do stabilizatora 5V, czy w układzie nie powinny znaleźć się dwa kondensatory 100nF?

- Kupiłem wtyk DC 2.1/5.5 by móc zasilać Arduino baterią. Niestety muszę przylutować przewody do wtyku. Co do polaryzacji mam rozumieć, że + jest na "wtyku" a - na obudowie?

Udostępnij ten post


Link to post
Share on other sites

Dokładnie tak. Przyjmuj sobie, że zawsze masa (-) zawsze na obudowie (na zewnątrz).

Udostępnij ten post


Link to post
Share on other sites

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

×