Sygnał PWM, serwomechanizmy i biblioteki. 1. Czym jest sygnał PWM? Strona 1

Podobne dokumenty
Czym jest sygnał PWM?

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

INSTRUKCJA OBSŁUGI Generatora impulsów PWM

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Silnik prądu stałego. Sterowanie silnika prądu stałego

Instrukcja obsługi. SQCA244 instrukcja obsługi

Instrukcja obsługi SMC108 Wysokonapięciowy sterownik silnika krokowego o prądzie do 8A

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Projektowanie i produkcja urządzeń elektronicznych

MCAR Robot mobilny z procesorem AVR Atmega32

2.1 Porównanie procesorów

DWUKIERUNKOWY REGULATOR SILNIKA DC VDC 20A

Proste układy wykonawcze

STEROWNIK MIKROPROCESOROWY PWM EC-10. Dla oświetlenia LED RGB. wersja oprogramowania: 1.7

Instrukcja obsługi SMC124 Sterownik silnika krokowego 0,5 3,6 A 1/2-1/128 kroku

Instrukcja obsługi Poczwórny sterownik silników krokowych SQCA244 Bipolarny sterownik dla 4 silników krokowych do 4A z wejściem LPT,

Instrukcja Obsługi. Motion. Sp. z o.o. wer r.

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Dlaczego mamy łączyć silniki z Arduino? Jakimi silnikami konkretnie się zajmiemy? Dlaczego nie możemy podłączyć silnika do Arduino?

Mikrokontroler w roli generatora PWM. Wpisany przez Administrator piątek, 06 lipca :51 -

SDD287 - wysokoprądowy, podwójny driver silnika DC

SDD287 - wysokoprądowy, podwójny driver silnika DC

Firma DAGON Leszno ul. Jackowskiego 24 tel Produkt serii DAGON Lighting

SERIA D STABILIZATOR PRĄDU DEDYKOWANY DO UKŁADÓW LED

PLD48 PIXEL DMX LED Driver

Laboratorium 2 Sterowanie urządzeniami z wykorzystaniem systemu plików Intel Galileo

AUTOMATYKA I STEROWANIE W CHŁODNICTWIE, KLIMATYZACJI I OGRZEWNICTWIE L1 BUDOWA TERMOSTATU ELEKTRONICZNEGO

Instrukcja obsługi SMC104

Cyfrowy konwerter 0-10V na PWM EC-10V

Instrukcja obsługi. PLD 24 - pixel LED driver DMX V MODUS S.J. Wadowicka Kraków, Polska.

System zdalnego sterowania

Arduino jako wyłącznik z opóźnieniem

Sterowniki Programowalne Sem. V, AiR

CRN Profesjonalny czujnik ruchu 12V. Elementy czujnika

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Instrukcja. Silnik Portos DELUX- R

REGULATOR ŁADOWANIA 12V / 24V / 36V / 48V DC DO INSTALACJI ELEKTROWNI WIATROWEJ

1 Badanie aplikacji timera 555

WARIATOR USTAWIENIA Białystok, Plażowa 49/1, Poland,

Instrukcja montażu i obsługi reklamy LED Krzyż Apteczny LED

Przed rozpoczęciem podłączania urządzenia koniecznie zapoznać się z niniejszą instrukcją Eolis RTS!

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

Servo controller. Uniwersalny sterownik serwomechanizmów modelarskich. Zestawy uruchomieniowe 1

AUTOMATYCZNY REGULATOR OŚWIETLENIA ARO 2010

Instrukcja obsługi SDC106

UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

PiXiMo Driver LED 12x350 ma

dokument DOK wersja 1.0

Analogowy sterownik silnika krokowego oparty na układzie avt 1314

rh-pwm3 Trzykanałowy sterownik PWM niskiego napięcia systemu F&Home RADIO.

Xelee Mini IR / DMX512

PX342. Driver PWM 1x10A INSTRUKCJA OBSŁUGI

AUTOMATYCZNY REGULATOR OŚWIETLENIA ARO

Zestawy pompowe PRZEZNACZENIE ZASTOSOWANIE OBSZAR UŻYTKOWANIA KONCEPCJA BUDOWY ZALETY

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

ODBIORNIK JEDNOKANAŁOWY GAMMA X

SP-4004 SYGNALIZATOR OPTYCZNO-AKUSTYCZNY sp4004_pl 03/13

NTools LC Index

Instrukcja obsługi GEN2 Regulowany generator przebiegów prostokątnych

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Sterownik napędów 4AC

1. Nadajnik światłowodowy

2. POŁĄCZENIE ZE STEROWNIKIEM GŁÓWNYM

Instrukcja obsługi lampka LivingColors Iris

MultiTool instrukcja użytkownika 2010 SFAR

SID1812 Cyfrowy sterownik silnika DC z regulacją prędkości, kierunku obrotów i funkcją soft-startu.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

Laboratorium Analogowych Układów Elektronicznych Laboratorium 4

Zasada działania sprężarki inwerterowej o zmiennej wydajności na przykładzie lodówek firmy Liebherr

INSTRUKCJA INSTALATORA

LOW ENERGY TIMER, BURTC

INSTRUKCJA TERMOSTATU DWUSTOPNIOWEGO z zwłok. oką czasową Instrukcja dotyczy modelu: : TS-3

REGULATOR NAPIĘCIA STR DOKUMENTACJA TECHNICZNA INSTRUKCJA

Kurs Arduino #2 podstawy programowania, porty I/O. 2 //Zawartość programu. 1 int main() { void setup() { //Instrukcje, które wykonają się jeden raz

Przed instalacją należy zainstalować dostarczone sterowniki USB, następnie zainstalować oprogramowanie PC z dostarczonego nośnika.

Programowanie mikrokontrolerów 2.0

INSTRUKCJA OBSŁUGI Sterownik grupowy on/off

REGULATOR NAGRZEWNICY ELEKTRYCZNEJ STR-NE DOKUMENTACJA TECHNICZNA INSTRUKCJA

PL B1. WOJSKOWY INSTYTUT MEDYCYNY LOTNICZEJ, Warszawa, PL BUP 23/13

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

WARIATOR WYPRZEDZENIA ZAPŁONU WARIATOR USTAWIENIA

Zegar Cieni Instrukcja montażu

Raport z budowy robota typu Linefollower Mały. Marcin Węgrzyn

Instrukcja obsługi testera sondy lambda

INSTRUKCJA OBSŁUGI IMMOBILIZERA TRANSPONDEROWEGO

GAMMA_X_1Cw. 1. Dane techniczne. 2. Opis urządzenia Sterowanie: możliwość sterowania 1 napędem. 2. Pamięć: do 20 nadajników

PRAWO OHMA DLA PRĄDU PRZEMIENNEGO. Instrukcja wykonawcza

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Część 1 Wstęp. tylne: wyłączone, pozycyjne, hamowania; pozostałe: wyłączone, włączone.

Regulacja dwupołożeniowa.

Kod produktu: MP01611

Systemy Wbudowane. Arduino dołączanie urządzeń Wersja Arduino więcej portów I/O. Układy serii 74. Układy serii 74xx a seria 40xx

BEZDOTYKOWY CZUJNIK ULTRADŹWIĘKOWY POŁOŻENIA LINIOWEGO

inteo Centralis Receiver RTS

elr2q/elr2h INSTRUKCJA OBSŁUGI Dwukanałowy odbiornik radiowy pracujący na częstotliwości 433,92MHz,zgodny ze standardem transmisji KEELOQ

SP-6500 SD-6000 SYGNALIZATOR OPTYCZNO-AKUSTYCZNY sp6500_pl 03/13

AP3.8.4 Adapter portu LPT

Transkrypt:

- Sygnał PWM, serwomechanizmy i biblioteki. 1. Czym jest sygnał PWM? Załóżmy, że do mikrokontrolera podłączyliśmy diodę świecącą i zaczęliśmy migać nią w pętli. Dioda jest włączona przez sekundę, a przez kolejną pozostaje wyłączona i tak w koło: Gdybyśmy narysowali wykres zmiany napięcia (od czasu) na pinie trzecim Arduino otrzymamy przebieg prostokątny: Wartość zaznaczona jako x, to czas, w którym dioda świeci. Natomiast T, to okres z jakim migamy LEDem. Z kolei jego odwrotność, czyli 1/T oznacza częstotliwość. Stosunek czasu, gdy dioda świeci, do czasu gdy jest wyłączona wynosi 1:1. Innymi słowy, pozostaje ona włączona jedynie przez 50% działania programu. Fachowo parametr ten nazwiemy wypełnieniem sygnału. Podsumowując informacje o naszym sygnale: 1. Amplituda (maksymalna wartość): 5V Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 1

2. Okres sygnału: 2 sekundy 3. Częstotliwość sygnał: 1/2 = 0,5 Hz 4. Wypełnienie sygnału: 50% Teraz pora na podobny eksperyment. Jednak ze zmienionym wypełnieniem, przy zachowaniu poprzedniego okresu. Jak to zrealizować? Wystarczy wydłużyć czas świecenia diody jednocześnie skracając czas, gdy jest ona wyłączona. Przykładowo: Tym razem dioda włączona jest przez około 5/6 czasu. Czyli wypełnienie wynosi około 83%. Przedstawiając sytuację na analogicznym, do poprzedniego, wykresie otrzymamy: Gdy opóźnienia zamienimy miejscem otrzymamy sytuację odwrotną, czyli sygnał o wypełnieniu 17%. Ostatni już wykres: Który z parametr zmieniał się za każdym razem? Odpowiedź jest prosta: wypełnienie. Częstotliwość przebiegów pozostawała taka sama. Gdyby opóźnienia wstawione w powyższych programach były znacznie mniejsze, częstotliwość sygnału będzie znacznie większa Na tym polega w praktyce zasada działania PWM. Czyli metodę modulacji sygnału prostokątnego poprzez regulację szerokości impulsu. Do czego to potrzebne? Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 2

Wyobraź sobie silnik sterowany przełącznikiem. Czy w momencie włączenia zasilania silnik natychmiast osiąga swoje maksymalne obroty? Nie, najpierw musi się rozpędzić. To samo tyczy się stopniowego zatrzymywania. Co stanie się, gdy zasilanie do takiego silnika będziemy co chwile włączać i wyłączać? Jeśli operacja będzie wystarczająco szybka, to powinniśmy móc osiągnąć prędkości pośrednie między zatrzymaniem, a pełnymi obrotami. Otrzymana prędkość będzie zależała od czasu przez jaki dostarczaliśmy zasilanie do silnika. Gdy takie włączanie i wyłączanie będzie następowało dużo szybciej, to opisywany efekt będziemy mogli wykorzystać nawet przy pozornie bardzo szybkich elementach diodach świecących. Jakiego zastosowanie ma sygnał PWM? Otóż w technice cyfrowej sygnał ten wykorzystywany jest bardzo często. Za jego pomocą będziesz mógł sterować jasnością świecenia diody, położeniem serwomechanizmu oraz prędkością z jaką obraca się silnik! Jak łatwo zauważysz zastosowań będzie wiele zarówno w robotyce amatorskiej, jak i podczas każdego innego majsterkowania. Sterowanie jasnością diody LED Pora na pierwszy, praktyczny przykład wykorzystania PWM. Tym razem zajmiemy się prostym programem, którego zadaniem będzie pulsowanie diodą. Arduino wyposażone jest w 6 kanałów sprzętowego PWM. Każde wyjście, na którym możemy uzyskać sygnał PWM zostało oznaczone na płytce znakiem tyldy ~, a na naszej grafice pojawił się obok niego dodatkowo dopisek PWM: Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 3

Sprzętowo generowany PWM oznacza, że wytwarzanie tego sygnału nie wpływa na pracę programu (nie opóźnia go). Nie musimy również samodzielnie pisać funkcji generujących taki sygnał. Każdy kanał PWM dostępny w Arduino UNO jest 8-bitowy. Oznacza to, że wypełnienie sygnału, które chce my otrzymać na jego wyjściu możemy określić liczbą od 0 do 255, gdzie 255 oznacza wypełnienie 100%. W celu przeprowadzenia pierwszego ćwiczenia konieczne jest podłączenie diody do pinu 3. Nie powinieneś mieć już problemu z samodzielnym zestawieniem układu: Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 4

Pora na stworzenie programu. Naszym celem jest napisanie kilku linijek, za pomocą których dioda będzie powoli rozbłyskiwała. Inaczej mówiąc, będziemy w pętli zmieniać wypełnienie sygnału PWM, którym będzie ona sterowana. Mam nadzieje, że wszystko jest jasne i możemy zająć się omówieniem tylko jednej, nowej funkcji. Oczywiście chodzi o analogwrite(pin, wypełnienie). Jej zadaniem jest generowanie na wybranym pinie sygnału PWM o wybranym wypełnieniu. Zadaniem powyższego programu jest cykliczne zwiększanie wypełnienie od zera do momentu, gdy jego wartość będzie mniejsza od 255 (100%). Gdy osiągnięte zostanie maksymalne wypełnienie dioda zostaje wyłączona (wypełnienie 0%) i proces rozświetlania diody zostaje ponowiony. Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 5

Zadanie domowe 5.1 Spróbuj uprościć powyższy program, tak aby nie trzeba było korzystać z instrukcji warunkowej if. Podpowiedź: zastanów się jaki wpływ na działanie programu ma typ zmiennej wypełnienie. Zadanie domowe 5.2 Napisz program, który po zwiększeniu wypełnienia do 255 zacznie je stopniowo zmniejszać do zera (i tak w koło). Sprawdź przy jakim opóźnieniu w każdym obiegu pętli można zaobserwowany efekt pulsowania będzie najciekawszy. Pora na wykorzystanie serwomechanizmu! Pewnie nie jeden z czytelników czekał na moment, w którym omówimy i zastosujemy w praktyce serwomechanizm. Jeśli jeszcze nie wiesz o czym dokładnie mówię, to znajdź w zestawie element identyczny (lub podobny) do poniższego: Jest to serwomechanizm typu micro, czyli jeden z najmniejszych dostępnych na rynku. Jego rozmiar nie ma jednak wpływu na sposób sterowania. Gdy zrozumiesz zasadę działania będziesz mógł wykorzystywać w swoich projektach większe, mocniejsze i szybsze serwa. Czym jest serwomechanizm? Serwomechanizm to silnik, przekładnia oraz dedykowany sterownika zamknięty w jednej obudowie. Napędy te nie są jednak przystosowane do wykonywania pełnego obrotu. Najczęściej serwomechanizmy mogą poruszać zamontowanym ramieniem o kąt 0-180º. Co ważne, znają one swoją aktualną pozycję, więc nie musimy obawiać się np.: narastających błędów pozycji. Serwomechanizmy wykorzystywane są głównie w modelarstwie. Np.: do odchylania lotek. W robotyce znajdują one również wiele zastosowań o czym przekonasz się w dalszych częściach kursu. Najważniejsze dwie zasady korzystania z serwomechanizmów: Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 6

1. Bez potrzeby nie przekręcamy ręcznie położenia wału. Może to uszkodzić stosunkowo delikatne, plastikowe koła zębate, z których zbudowano przekładne. 2. Nie zasilamy serw bezpośrednio ze źródła, którym zasilana jest reszta układu. Każdy silnik pobiera stosunkowo duży prąd. Szczególnie na początku ruchu. Może to zakłócić pracę pozostałych układów, a w skrajnych przypadkach doprowadzić do ich uszkodzenia. Jak działa serwomechanizm? Skąd serwomechanizm wie, w którą pozycje ma się obrócić? Wszystko za sprawą wbudowanego sterownika. To własnie on, na podstawie dostarczonego sygnału PWM, steruje silnikiem. Przyjętym standardem jest, że do serw dostarcza się sygnał o okresie równym 20ms. Natomiast wypełnienie sygnału interpretowane jest jako pozycja, w którą należy przemieścić ramię serwa. Wypełnienie generowanego sygnału powinno mieścić się w granicach 5-10%. Wartości te zostaną przekształcone na dwie skrajne pozycje serwa (maksymalnie w lewo oraz maksymalnie w prawo). Z każdego serwomechanizmu wyprowadzone są 3 przewody: 1. Masa (czarny, ciemnobrązowy) 2. Zasilanie (czerwony) 3. Sygnał sterujący (żółty/pomarańczowy) W zależności od producenta kolory przewodów mogą się różnić. Jednak dwa na pewno będą zbliżone do czarnego i czerwonego (zasilanie). Pozostały, trzeci będzie przewodem sygnałowym. Zasilanie serwomechanizmu Tak jak zostało powiedziane wcześniej, nie powinno się zasilać serwomechanizmu bezpośrednio z tego samego napięcia, które zasila mikrokontroler. Po drugie, w związku z tym, że silnik może pobierać duży prąd musimy podłączyć do układu odpowiednie wydajne źródło. Port USB, z którego zasilaliśmy do tej pory naszą płytkę może okazać się zbyt słaby! Dlatego po raz pierwszy Arduino zasilimy przez dołączoną do zestawu baterię 9V wraz ze klipsem, który zakończony jest wtyczką pasującą do gniazda zasilania w Arduino. Dokładny schemat podłączenia znajduje się poniżej. Serwomechanizm w praktyce Pora na pierwszy program, który będzie poruszał ramieniem serwa. W tym celu należy połączyć układ zgodnie z poniższym schematem montażowym. Po pierwsze konieczne jest podłączenie baterii. Po drugie musimy wykorzystać stabilizator LM7805. Wejście stabilizatora łączymy z pinem Vin Arduino, masę z GND, a do wyjścia podłączamy czerwony przewód serwomechanizmu. Oczywiście konieczne są również kondensatory filtrujące. Pozostałe połączenia powinny być już jasne: Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 7

Tym razem musimy dodać nową bibliotekę, która rozszerzy możliwości naszego programu o nasze funkcje. Służy do tego polecenie: W tym wypadku dodaliśmy plik Servo.h, który zawiera dodatkowe instrukcje dla serwomechanizów. Dzięki niej nie będziemy musieli samodzielnie kontrolować generowanego sygnału PWM. Wystarczy, że podamy pozycje (kąt) do jakiej ma obrócić się serwomechanizm. Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 8

Jeżeli chcemy sterować serwem, to musimy stworzyć dla niego obiekt: Funkcja attach(pin) dla obiektu Servo działa podobnie do pinmode argumentem jest pin, do którego podłączony jest element. Od tego momentu na danym wyprowadzeniu (w tym przypadku 9) będzie generowany sygnał PWM. Po uruchomieniu programu serwomechanizm powinien płynnie poruszać się z jednej skrajnej pozycji do drugiej, a następnie wracać na początek. Kluczową linijką jest: Gdzie jako pozycję musimy wpisać kąt z zakresu 0-180º. Uwaga, nie podłączaj samodzielnie silników! W tej części kursu do Arduino podłączyliśmy bezpośrednio serwomechanizm. Było to możliwe, bo napędy te mają wewnętrzne sterowniki, które kontrolują prace gołego silnika. Dlatego z pinu Arduino, który steruje wychyleniem serwa nie jest pobierany duży prąd. Jeśli podłączysz do Arduino samodzielnie goły silnik, to pobrany prąd (>20mA) uszkodzi układ! Pamiętaj, że silniki elektryczne (nawet małe) mogą wymagać do pracy prądu 10, a nawet 100 razy większego od wydajności pinów mikrokontrolera! Do bezpośredniego podłączenia silnika konieczny jest układ pośredni, mostek-h! Więcej informacji na jego temat znaleźć można w dalszej części kursu. Notatka lekcja_#4_1; na podstawie http://forbot.pl W.Kapica 2017 Strona 9