Arduino basico!

ola, sou novo em arduino e estou precisando de ajuda, eu preciso fazer um projeto em arduino com 5 botoes para movimentar o servo para as posicoes 0,45,90 e 180, porem, eu n tenho ideia como eu poderia fazer isso, alguem me ajuda?

Hi @saulloo
To learn, try this:

RV mineirin

Olá Saulo

é bem simples na verdade, qual modelo se servo você tem ai?

https://proesi.com.br/servo-9g-dxw90-towerpro-acessorios-sg90.html
è esse modelo aqui?

Tenta com esse codigo:

#include <Servo.h>

Servo servo1; // define o nome servo

int pos = 0;
int botao1=0, botao2=0, botao3=0, botao4=0, botao5=0;
void setup()
{
servo1.attach(11); //pino de controle do servo motor

//Defino pinos de entrada
pinMode(3,INPUT_PULLUP);
pinMode(4,INPUT_PULLUP);
pinMode(5,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
}


void loop()
{
  botao1 = digitalRead(3);
  botao2 = digitalRead(4);
  botao3 = digitalRead(5);
  botao4 = digitalRead(6);
  botao5 = digitalRead(7);
  
  if(botao == LOW)
  {
    servo1.write(pos);
    delay(0);
  }
  if(botao == LOW)
  {
    servo1.write(pos);
    delay(45);
  }
  if(botao == LOW)
  {
    servo1.write(pos);
    delay(90);
  }
  if(botao == LOW)
  {
    servo1.write(180);
    delay(1000);
  }
  if(botao == LOW)
  {
    for(pos = 0; pos < 180; pos += 1) // Vai de 0 grau a 180 em passo de 1 grau
    {
    // Chama o servo1 para ir para a posição da variavel "pos"
    servo1.write(pos);
    delay(500); // Agurade 50ms para para o servo1 atingir a posição
    }
    for(pos = 180; pos>=1; pos-=1) // Vai de 180 graus ate 0
    {
    // Chama o servo1 para ir para a posição da variavel "pos"
    servo1.write(pos);
    delay(100); // Aguarda 10ms para o servo1 atingir a posição
    }
  }
  
  delay(50); // Agurade 50ms para para o servo1 atingir a posição
}

Ops, pena errata:

#include <Servo.h>

Servo servo1; // define o nome servo

int pos = 0;
int botao1=0, botao2=0, botao3=0, botao4=0, botao5=0;
void setup()
{
servo1.attach(11); //pino de controle do servo motor

//Defino pinos de entrada
pinMode(3,INPUT_PULLUP);
pinMode(4,INPUT_PULLUP);
pinMode(5,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
}


void loop()
{
  botao1 = digitalRead(3);
  botao2 = digitalRead(4);
  botao3 = digitalRead(5);
  botao4 = digitalRead(6);
  botao5 = digitalRead(7);
  
  if(botao1 == LOW)
  {
    servo1.write(0);
    delay(1000);
  }
  else if(botao2 == LOW)
  {
    servo1.write(45);
    delay(1000);
  }
  else if(botao3 == LOW)
  {
    servo1.write(90);
    delay(1000);
  }
  else if(botao4 == LOW)
  {
    servo1.write(180);
    delay(1000);
  }
  else if(botao5 == LOW)
  {
    for(pos = 0; pos < 180; pos += 1) // Vai de 0 grau a 180 em passo de 1 grau
    {
    // Chama o servo1 para ir para a posição da variavel "pos"
    servo1.write(pos);
    delay(500); // Agurade 50ms para para o servo1 atingir a posição
    }
    for(pos = 180; pos>=1; pos-=1) // Vai de 180 graus ate 0
    {
    // Chama o servo1 para ir para a posição da variavel "pos"
    servo1.write(pos);
    delay(100); // Aguarda 10ms para o servo1 atingir a posição
    }
  }
  delay(50); // Agurade 50ms para para o servo1 atingir a posição
}


This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.