Quantcast
Channel: Arduino Polska Forum - Wszystkie działy
Viewing all articles
Browse latest Browse all 256

Sterowanie servo za pomocą PWM

$
0
0
Witam,
pracuję nad oprogramowaniem do sterowania serwomechanizmem pozycyjnym za pomocą PWM. Według teorii w celu ustawienia servo na danej pozycji należy wygenerować impuls prostokątny o łącznym czasie trwania jednego impulsu 20ms i w zależności od kąta obrotu poziom wysoki powinien trwać odpowiednio:
- dla 0[stopni] - 1ms,
- dla 90[stopni] - 1,5ms,
- dla 180[stopni] - 2ms.
Problem pojawia się, że dla wyżej wyznaczonych czasów servo ustawia się na innych pozycjach odpowiednio:
- dla 1ms - 45[stopni],
- dla 1,5ms - 90[stopni],
- dla 2ms - 125[stopni].
Oczywiście metodą prób i błędów jestem w stanie tak dobrać czas trwania impulsu aby servo pracowało w pełnym zakresie 0-180[stopni] ale chciałbym usłyszeć opinię bardziej doświadczonych osób co o tym sądzą.

Poniżej fragment kodu:
Kod:
void setup()
{
  pinMode(3, OUTPUT);
}

void loop()
{
  for(int i = 0; i &t= 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
  }
  delay(1000);                                //opóźnienie przed ruchem do kolejnej pozycji
  for(int i = 0; i &t= 100; i++){
    digitalWrite(3, HIGH);
    delayMicroseconds(2000);
    digitalWrite(3, LOW);
    delayMicroseconds(18000);
    delay(10);
  }
  delay(1000);
  for(int i = 0; i &t= 100; i++){
    digitalWrite(3, HIGH);
    delayMicroseconds(1500);
    digitalWrite(3, LOW);
    delayMicroseconds(18500);
    delay(10);
  }
  delay(1000);
}


.txt   servo_PWM.txt (Rozmiar: 874 bajtów / Pobrań: 1)

Viewing all articles
Browse latest Browse all 256

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra