Skocz do zawartości

problem z własnym programem do sterowania servo


Pomocna odpowiedź

Napisano

Dzień dobry! Mam problem. Zrobiłem własny program który miał machać servo po kolei: -90stopni, 0stopni, 90stopni, -90stopni, 0stopni, 90stopni itd. Problem w tym że servo zamiast -90stopni robi -45stopni(tak na oko) i 90stopni zamienia na 45stopni(też tak na oko).  Program dla serva pod portem digital9:

void setup() {
  pinMode(9, OUTPUT);
}

void loop() {
  digitalWrite(9, HIGH);
  delay(1);
  digitalWrite(9, LOW);
  delay(19);
  delay(1000);
  digitalWrite(9, HIGH);
  delayMicroseconds(1500);
  digitalWrite(9, LOW);
  delayMicroseconds(18500);
  delay(1000);
  digitalWrite(9, HIGH);
  delay(2);
  digitalWrite(9, LOW);
  delay(18);
  digitalWrite(9, HIGH);
  delay(2);
  digitalWrite(9, LOW);
  delay(18);
  delay(1000);
}

 

(edytowany)

Servo też ma jakąś swoją bezwładność... pytanie, po co się tak męczyć?? takie sterowanie jest do niczego i jak zauważyłeś efekt jest słaby...czemu nie zastosujesz dedykowanej biblioteki??

Ps...to już lepiej zastosować "fabryczny" 

analogWrite(pin, wypelnienie);

Częstotliwość co prawda 10 razy za duża (500Hz) ale serwo działa...

Edytowano przez farmaceuta

@marcin_zgo Twoja wersja to "PWM" generowany programowo. Można coś takiego robić w ramach ćwiczeń, ale takie symulowanie sygnału PWM (za pomocą sztywnych opóźnień) nie będzie miało w praktyce większego zastosowania. Do generowania PWM najlepiej wykorzystać liczniki wbudowane w mikrokontroler, które mają możliwość sprzętowego generowania PWM.

9 minut temu, marcin_zgo napisał:

Ja tak dla eksperymentu chciałem się po bawić i jestem ciekawy dlaczego to nie działa

Być może pojedynczy impuls to za mało żeby sterownik go wyłapał...może potrzebuje kilku?🤔 Ciężko powiedzieć...

12 godzin temu, farmaceuta napisał:

Być może pojedynczy impuls to za mało żeby sterownik go wyłapał...

Niektóre serwa (np. SG90) jeśli przez jakiś czas nie dostaną impulsu, przechodzą w tryb wyłączenia.

 

  • Lubię! 1

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

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

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...