Boa Noite galera

Sou novato no Arduino, Estou começando o meu primeiro projeto, com motores servos de rotação continua. o meu projeto seria uma persiana automática controlada pelo celular, porem o código que tenho funciona da seguinte forma : quando eu mando o comando '' f '' no serial monitor para a placa arduino o motor servo gira no sentido horário e quando mando o comando '' t '' ele gira no sentido anti-horário, porem eu preciso mandar o comando '' p " para que ele pare, em ambos os sentidos. A minha duvida é a seguinte eu conseguiria remover o comando '' p " para que eu não tenha que ficar parando o servo manualmente. e sim quando ele chegasse ao ponto definido por mim ? e outra coisa no código eu conseguiria definir um certo numero de rotação para que quando o servo chegasse a um certo numero parasse  tipo por milisegundos ou algo do tipo ?

Resumindo : queria que o código ficasse assim ao mandar o comando  ' f " o motor servo faça um certo numero de rotação e pare automático e da mesma forma o " t "  e se possível eu defina a quantidade de rotação. será que vcs consegue me da uma força com o código.  Vou deixar o Código Abaixo :

#define SERVO_ESQUERDO 7
#define SERVO_DIREITO 5

#define FRENTE 0
#define TRAS 180

#include <Servo.h>

Servo servoEsquerdo;
Servo servoDireito;

void servoAttach()
{
servoEsquerdo.attach(SERVO_ESQUERDO);
servoDireito.attach(SERVO_DIREITO);
}

void frente()
{
servoAttach();
servoEsquerdo.write(FRENTE);
servoDireito.write(TRAS);
}

void tras()
{
servoAttach();
servoEsquerdo.write(TRAS);
servoDireito.write(FRENTE);
}

void esquerda()
{
servoAttach();
servoEsquerdo.write(FRENTE);
servoDireito.write(FRENTE);
}

void direita()
{
servoAttach();
servoEsquerdo.write(TRAS);
servoDireito.write(TRAS);
}

void parar()
{
servoEsquerdo.detach();
servoDireito.detach();
}

void setup()
{
Serial.begin(9600);
}

char option = 'p';

void loop()
{
delay(100);
if(Serial.available())
{
option = Serial.read();
Serial.println(option);
}
switch(option)
{
case 'f':
frente();
break;
case 't':
tras();
break;
case 'e':
esquerda();
break;
case 'd':
direita();
break;
case 'p':
parar();
break;
default:
break;
}
}

Exibições: 360

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço