Arduino Polska Forum

Pełna wersja: Niepoprawna praca serva
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam!
Rzadko zdarza mi się pracować z servami. Ostatnio wymyśliłem projekt, w którym potrzebuje je wykorzystać. Znalazłem na Forbocie przykład i wgrałem, aby zobaczyć czy działa. Niestety servo przekręca się do około 90 stopni i wraca zacinając się przy tym. Sprawdziłem na 2 serwach i w obu przypadkach jest tak samo. Wkleję program może ktoś będzie wiedział czemu tak się dzieje.
Kod:
#include <Servo.h> //Biblioteka odpowiedzialna za serwa

Servo serwomechanizm;  //Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa
int pozycja = 0; //Aktualna pozycja serwa 0-180
int zmiana = 6; //Co ile ma się zmieniać pozycja serwa?

void setup()
{
  serwomechanizm.attach(9);  //Serwomechanizm podłączony do pinu 9
}

void loop()

  if (pozycja < 180) { //Jeśli pozycja mieści się w zakresie
    serwomechanizm.write(pozycja); //Wykonaj ruch
  } else { //Jeśli nie, to powrót na początek
    pozycja = 0;
  }   
 
  pozycja = pozycja + zmiana; //Zwiększenie aktualnej pozycji serwa
  delay(200); //Opóźnienie dla lepszego efektu                       
}
Pokaż schemat.
Podaj model serwa.
A próbowałeś je zasilić z osobnego zasilacza? Tam idzie sporo prądu, może się resetuje Arduino.
Możesz po linii serwomechanizm.write(pozycja);
dopisać Serial.println(pozycja);
i patrzeć co się dzieje z kodem. Podejrzewam, że na pewno będzie zerwanie komunikacji.
Dobra sprawdzę i dam znać jak będzie dobrze