Jak podłączyć servo do "Arduin"

Serwonapędy są podstawą dla inżynierów armii pracujących z Arduino. Są używane wszędzie: automatyczne otwieranie drzwi, ruch robota, dźwig do podnoszenia i wiele więcej. W tym artykule opisano, jaki rodzaj serwonapędu dla Ardouinova wybrać, jak go podłączyć i jak nim zarządzać.

Informacje o serwonapędach

Jest to rodzaj silnika, ale różni się tym, że jest on w stanie ustawić pewien kąt obrotu wału za pomocą kodu programu. Są różne: tanie i słabe, drogie i dokładne. Nie trzeba ścigać najdroższego i najlepszego serwa, ponieważ jest prawdopodobne, że za swój projekt i tanio. Na rynku można spotkać dość duży wybór.

Serwonapęd SG92R

Najbardziej znanym tanim siłownikiem jest model Tower Pro SG92R. To servo dla "Arduino" można znaleźć praktycznie we wszystkich początkowych zestawach amatorskiego radia. Wynika to z faktu, że jego cena to tylko sto rubli, a przy zakupach hurtowych (na przykład z dziesięciu sztuk) - a potem staje się tańsza. SG92R waży tylko 9 gramów, może przyjąć wał 1,6 kg. Tak jest napisane tylko w cechach sklepów internetowych.


W rzeczywistości te serwonapędy są słabe i ich użycie, na przykład, do otwarcia dużych drzwi nie jest możliwe, ponieważ są one całkowicie plastikowe i często pękają. Lepiej wydawać więcej pieniędzy, kupować mocniejsze, na przykład MG995. Ale do badania małych projektów, serwo SG92R jest w porządku.

Połączenie

Podłączenie serwa do "Arduino" nie zajmuje dużo czasu. W tym celu wykorzystywane są tylko trzy kontakty: ziemia, jedzenie, logika. Serwonapęd z "Arduinova" działa dzięki cyfrowym kontaktom. To jest cyfrowy zespół na płycie. Niestety, samo serwomechanizm nie wskazuje, które przewody są za nie odpowiedzialne.
  • Czerwony jest odpowiedzialny za karmienie. Przy okazji, serwonapęd może działać od 5 do 6V. Oczywiście od 6V działa płynniej.
  • Czarny (czasami nawet brązowy) drut to ziemia. Podłącz go do GND na karcie Arduino.
  • Żółty (w niektórych przypadkach jest biały) odpowiada za logikę. Podłącz go do dowolnego styku PWM (Pulse Width Modulation). Na przykład dziewiąty kontakt z tablicą Arduino.
  • To wszystko. W ten prosty sposób możesz podłączyć serwomechanizm do "Arduino". Nawiasem mówiąc, wszyscy oni łączą się i pracują z "Arduin" jednakowo. Chodzi tylko o to, jak nimi zarządzać.


    Kontrola

    Biblioteka Servo służy do sterowania serwonapędem od Arduin. Jest już wyposażony w Arduino IDE i nie trzeba już go pobierać. Łatwo jest pracować z biblioteką. Poniżej znajduje się przykładowy kod do obracania serwomechanizmu.

    #include
    Servo myservo;

    void setup () {
    //ustaw pin jako wyjście serwosterowania
    myservo.attach
    ;
    }

    void loop () {
    //kąt ustawienia 0 °
    myservo.write

    ;
    opóźnienie (2000);
    //ustaw kąt 90 °
    myservo.write
    ;
    opóźnienie (2000);
    //ustaw kąt 180 °
    myservo.write (180);
    opóźnienie (2000);
    }

    Objaśnienie kodu jest następujące. Pierwsza rzeczbiblioteka serwonapędów jest podłączona. Następnie tworzony jest zmienny typ Servo. Nazwy można podać zupełnie inaczej - wszystko ogranicza tylko twoja wyobraźnia. Następnie musisz określić, do którego kontaktu twoje serwo jest podłączone do "Arduino". Następnie musisz ustawić kąt obrotu na zero stopni, a następnie ustawić czas oczekiwania na dwie sekundy. Jest to konieczne, aby serwonapęd obracał wałek i pracował stabilniej.


    & lt; script type = "text /javascript" & gt;
    zmienna blockSettings2 = {blockID "R-A-271049-5" renderTo "yandex_rtb_R-A-70350-39" asynchroniczny :! 0};
    jeśli (document.cookie.indexOf ("abmatch =") i GT = 0) blockSettings2.statId = 70350;
    ! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("scenariusz")

    d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);

    Następnie należy ustawić kąt dziewięćdziesięciu stu osiemdziesięciu stopni. Ponieważ funkcja Loop jest pętlą, po kompilacji dostajesz, że twoje serwo będzie stale obracać waszym wałkiem. Wszystko to po podłączeniu jednego serwa do Arduino. Faktem jest, że jest mały, ale po aktywacji obrotu wału wydaje 0,4 mA, co jest dość dużo. I podczas podłączania stwardnienie serwo zdarzyć skok w energię elektryczną, która może prowadzić do niestabilności czujników, które są podłączone do Arduino.

    Ten problem został rozwiązany w następujący sposób: musisz wziąć inny zasilacz 5V - idealnie pasuje do naładowanej ładowarki telefonu. Okazuje się, że serwonapędy są zasilane z oddzielnego źródła zasilania, a "Arduinoff" jest tylko włączonysygnały. Niektórzy uważają, że nawet jeden servo nie powinien być podłączony bezpośrednio do Arduino.

    Przykład projektu

    Poniżej znajduje się projekt z serwonapędem do "Ardouinowa". Wyobraź sobie sytuację, w której musisz stworzyć automatyczne otwieranie szklarni w szklarni po osiągnięciu określonej temperatury. W tym celu stosuje się czujnik DHT-11 i serwo SG92R. Kod jest następujący:


    & lt; script type = "text /javascript" & gt;
    zmienna blockSettings3 = {blockID "R-A-271049-6" renderTo "yandex_rtb_R-A-70350-44" asynchroniczny :! 0};
    if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings3.statId = 70350;
    ! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);
    ,include "DHT.h"
    include

    2 //#define DHTPIN ilość piany, która jest połączona z myservo czujnika
    Servo; //Servo

    //Zainicjowanie czujnika

    DHT dht (DHTPIN, DHT11);

    void setup () {

    Serial.begin (9600);
    myservo.attach
    ;

    dht.begin ();

    }

    void loop () {

    //Opóźnienie 2 sekund pomiędzy pomiarami

    opóźnienie (2000);

    //Odczyt temperatury

    float t = dht.readTemperature ();
    if (t> 30) {

    myservo.write
    ;

    }

    }


    W celu rozpoczęcia łączenia biblioteki do pracy czujnika DHT-11 i serwo. Obserwowane są wskazane przez zmienne i do których kontaktów są one podłączone. Następnie, co dwie sekundy, czujnik wykrywa temperaturę, a jeśli jest powyżej trzydziestu stopni, serwomechanizm uruchamia się, otwierając okno. Jest to przykład jego pracy z "Ardouinami" i czujnikiem DHT-11.

    Plusy i minusy SG92R

    SG92R jest bardzo dobrym serwonapędem i doskonale sprawdza się w jego zadaniach. Jakie są jego wady i zalety? Wśród zalet są następujące:
  • Dostępność. To servo sprzedawane jest po bardzo niskiej cenie, co pozwala każdemu go kupić i wykorzystać do swoich projektów.
  • Wymiary. Ze względu na mały rozmiar można go wykorzystać do budowy niewielkich projektów.
  • Wśród niedociągnięć najważniejsze są:
  • Słaby. Wystarczająco małych obciążeń, a to się zepsuje. Oczywiście, jest to spowodowane niską ceną, ale mimo to warto przepłacać tylko dwa razy więcej i już można kupić mocniejszy serwomechanizm, który jest wykonany z metalu i może pracować z dużymi obciążeniami.
  • Noisy. Warto go tylko włączyć, zaczyna wydawać dźwięki. Nie, że są silni, ale wieczne "szum" jest bardzo niepokojące.
  • Liczba plusów i minusów jest taka sama. Cokolwiek to jest, SG92R jest doskonałym serwo, przynajmniej do nauki i pojęcia ich działania.

    Powiązane publikacje