#include <Servo.h>
Servo myservo; //objeto myservo
int posicao = 0;
int dado_novo = 0;
int dado_anterior = 0;
int pino_controle = 11; //PWM
void setup() {
Serial.begin(115200);
Serial.println("Posicao em graus 0 a 180");
myservo.attach(pino_controle); //liga controle do servo
myservo.write(posicao); //posicao inicial
delay(500);
myservo.detach(); //desliga o controle
}
void loop() {
if(Serial.available() > 0){
dado_novo = Serial.parseInt();
if(posicao < dado_novo){
myservo.attach(pino_controle);
for(posicao = dado_anterior; posicao <= dado_novo; posicao += 1){
myservo.write(posicao);
delay(5);
}
myservo.detach();
dado_anterior = dado_novo;
}
if(posicao > dado_novo){
myservo.attach(pino_controle);
for(posicao = dado_anterior; posicao >= dado_novo; posicao -= 1){
myservo.write(posicao);
delay(5);
}
myservo.detach();
dado_anterior = dado_novo;
}
Serial.print("Posicao = ");
Serial.println(dado_novo, DEC);
}
}