Pessoal preciso da ajuda de vocês!


Eu conseguir fazer funcionar 3 botões em uma unica porta analógica.
Usando também o esquema de resistores.
Só que queria aprender fazer para que quando pressionado um botão ele controlasse algum servo, o braço fosse a 140 graus ficasse por um tempo e depois voltasse pra 12 graus por exemplo.


Eu tentei o botão aciona o servo ligado no pino 10 porém o braço vai ate o limite e fica forçando pra uma direção só, e mesmo mudando os graus não consigo programar para  oque o servo faça depois do botão pressionado, vocês podem me ajudar?

olha meu codigo:



#include <Servo.h>
void setup()
{
  Serial.begin(9600); //Inicia a serial com um baud rate de 9600
}

void loop()
{
  long tecladoA5=0; //Cria variável para ler o teclado ligado ao pino A5
  for(int i=0;i<100;i++) //Laço para fazer 100 leituras
  {
    tecladoA5 = tecladoA5+analogRead(A5); //Soma a leitura anterior com a leitura atual de A5
  }
  tecladoA5 = tecladoA5/100;
  Serial.print("Teclado A5 = "); //Imprime no Serial Monitor "Teclado A5 = "
  Serial.println(tecladoA5); //Imprime o valor de A5
  Serial.print("\n\n"); //Pula 2 linha no Serial Monitor
 
  delay(100); //Aguarda 100 milissegundos
  //ate aqui tudo bem o codigo indentifica os botões e consigo escolher em qual pino ligar o servo e qual botão vai acioná-lo
  //o problema é que a função abaixo não funciona como deveria e o servo fica ligado direto pra um sentido só


  //----------------------FIM DA FUNÇÃO DO SERVO 1--------
  if(tecladoA5 == 916)   //------FUNÇÃO PARA O SERVO EXECUTAR QUANDO CLICADO O BOTÃO DE VALOR 916--------
{
  Servo motor;
  motor.attach(10);  //pino do sinal que o servo esta plugado
int i;
for(i=0;i<170;i++) {   //angulo de movimento 
motor.write(i);
delay(40); //velocidade que o braço se move
}
delay(1000);  //demora 0,8 segundos
for(i=150;i>0;i--) {    //angulo de movimento 
motor.write(i);
delay(40);  //velocidade que o braço se move
}
delay(1000); //demora 0,8 segundos
}

}

Exibições: 566

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço