Skocz do zawartości

problem z własnym programem do sterowania servo


marcin_zgo

Pomocna odpowiedź

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);
}

 

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@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.

Link do komentarza
Share on other sites

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ć...

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.