• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie servo za pomocą PWM
#2
(18-12-2023, 20:30)makuban napisał(a): Poniżej fragment kodu:
Kod:
  for(int i = 0; i <= 100; i++){     //pętla umożliwiająca ustawienie odpowiedniej pozycji
    digitalWrite(3, HIGH);            //stan wysoki
    delayMicroseconds(1000);        //czas trwania stanu wysokiego
    digitalWrite(3, LOW);    //stan niski
    delayMicroseconds(19000);          //czas trwania stanu niskiego
    delay(10);                                //opóźnienie w celu spowolnienia ruchu
  }

W jakim celu na końcu for-a jest to delay(10), przecież to się po prostu dodaje do poprzedniego delayMicroseconds i razem zamiast 20ms okresu masz 30, stąd wypełnienie jest mniejsze. Nie wiem czy serwa reagują na samą długość impulsu, czy na współczynnik wypełnienia. Na pewno na impulsy o istotnie innej częstotliwości mogą w ogóle nie zareagować.

Po drugie - te impulsu mają przychodzić cały czas, nie tylko w czasie zmiany pozycji. Serwo ciągle porównuje impulsy wejściowe z położeniem i dokonuje korekty jeśli coś się poruszy. Przypuszczam, że gdy brakuje impulsów silnik zostaje odłączony i nie ma aktywnego ustawiana pozycji.
 
Odpowiedź
  


Wiadomości w tym wątku
Sterowanie servo za pomocą PWM - przez makuban - 18-12-2023, 20:30
RE: Sterowanie servo za pomocą PWM - przez oscarX - 18-12-2023, 21:38
RE: Sterowanie servo za pomocą PWM - przez kaczakat - 19-12-2023, 21:28

Skocz do:


Przeglądający: 1 gości