Boa tarde!

Estou precisando de ajuda no meu código.
Tenho um servo e um botão. O servo vai de 0 a 180 graus e ao apertar o botão quero que o servo pare,veja em que grau parou e avance um pouco mais.
Por exemplo ele inciou e foi ate 90 graus,então apertei o botão quero que ele pare, veja que parou com 90 graus e  avance ate 93 graus e fique parado

Segue o código:

#include <Servo.h>

Servo myservo; // create servo object to control a servo
int botao=3;
int flag=0;
int pos = 0; //variavel para armazenar a posição do servo

void setup()
{
myservo.attach(9); //servo esta pino 9
pinMode(botao,INPUT);
}

void loop()
{
flag = digitalRead(botao); //Flag recebe o valor do botao
//1 = pressionado, 0 = solto
if(flag == 1){

myservo.write(+(pos * (5/100))); //Move o servo para 5% a mais do angulo de interrupção
//delay(15); //Delay para o servo atingir a posiçao
for(pos = 0; pos < 180; pos += 1) // fazer o servo ir de 0 a 180 graus
{ // de 1 em 1 grau
myservo.write(pos); // escrevendo a posicao do servo
delay(15); // esperar 15ms
}
for(pos = 180; pos>=1; pos-=1) // fazer o servo ir de 180 a 0 graus
{
myservo.write(pos); // escrevendo a posicao do servo
delay(15); // espera 15ms
}
}

Se preferirem fazer outro código tranquilo!!!

Exibições: 272

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço