Вращение сервопривода по графику

Нет ответов
murph
Offline
Зарегистрирован: 30.11.2016

Здравствуйте.

Необходимо написать код который будет изменять скорость согласно графику. У каждого участка графика есть заданное через ком-порт время. На паре говорили, что надо делать через такт. То, до чего додумался:

#include <Servo.h>
 
Servo myservo; 

int speedMotor = 0; 
int T1=1; 
int T2; 
int T3; 
int T4; 
int T=0; 
int Um = 360; 
int U2 = 80; 
int a1 = 3; 
int a2 = 7; 
int U; 

void setup () 
  { 
    Serial.begin(115200); 
    Serial.println("Servo Motion"); 
    myservo.attach(10); 
  } 

void loop () 
{ 
  if(Serial.available() > 0)
 {
   T = Serial.parseInt();
   Serial.print("T : ");
   Serial.println(String(U));
    T=T+1; 
    if ((T<T1)&&(T>0)); 
      { 
       U=Um; 
      } 
    if ((T<T1)&&(T>T1+T2)); 
      { 
       U=U2; 
      } 
    if ((T<T1+T2)&&(T>T1+T2+T3)); 
      { 
      U=a1*sin(PI/2*T3+(T1+T2)); 
      } 
    if ((T<T1+T2)&&(T>T1+T2+T3)); 
      { 
      U=a2*sin(PI/2*T4+(T1+T2+T3)); 
      } 
 }
}

Нужен совет. Правильно ли я делаю? Есть ли какие нибудь ошибки? За любой совет или помощь буду благодарен.