código para servo control

Buenas tardes,

No obstante he tratado diversas formas y he leido mucho en diversas fuentes, no puedo lograr detectar un error en el código que he estado modificando. Si alguien pudiera darle una mirada y decirme que hacer, lo agradecería mucho. Soy consciente que se trata de algo básico, pero mi falta de conocimiento no me permite avanzar.

Al intentar compilar, me da el siguiente error:

'Servo1' does not name a type

Este es el código:

#include <Servo.h> 

Servo Servo1;
char t; //Caracter recibido por bluetooth
int ang = 90; //Ángulo inicial 90 grados

//char t;
 
void setup() {

 
pinMode(13,OUTPUT);   //left motors forward
pinMode(12,OUTPUT);   //left motors reverse
pinMode(11,OUTPUT);   //right motors forward
pinMode(10,OUTPUT);   //right motors reverse
pinMode(8,OUTPUT);    //camera focus
pinMode(9,OUTPUT);    //camera shutter


Servo1.attach(3,600,2400); //Servomotor: PIN3 & AP(min)=600 AP(max)=2400

Serial.begin(9600);
 
}
 
void loop() {
if(Serial.available()){
  t = Serial.read();
  Serial.println(t);
}
 
if(t == 'F'){            //move forward(all motors rotate in forward direction)
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
  digitalWrite(11,HIGH);
  digitalWrite(10,LOW);
}
 
else if(t == 'B'){      //move reverse (all motors rotate in reverse direction)
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
  digitalWrite(11,LOW);
  digitalWrite(10,HIGH);
}
 
else if(t == 'R'){      //turn right (left side motors rotate in forward direction, right side motors doesn't rotate)
  digitalWrite(13,LOW);
  digitalWrite(12,LOW);
  digitalWrite(11,HIGH);
  digitalWrite(10,LOW);
}
 
else if(t == 'L'){      //turn left (right side motors rotate in forward direction, left side motors doesn't rotate)
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
  digitalWrite(11,LOW);
  digitalWrite(10,LOW);
}
 
else if(t == 'X'){      //STOP (all motors stop)
  digitalWrite(13,LOW);
  digitalWrite(12,LOW);
  digitalWrite(11,LOW);
  digitalWrite(10,LOW);
}
//Servo control
 else if (t == 'a'){ 
      ang = ang + 5; //Se aumenta el angulo en 5 grados
      Serial.print(ang); //Se envia el valor al celular
      }
   else if (t == 'h'){
      ang = ang - 5; //Se disminuye en 5 grados
      Serial.print(ang);
      }   
 ang = constrain(ang,0,180); //Se limita los valores del angulo
    }
    Servo1.write(ang); //Se ingresa el valor de "ang" en el Servo
    delay(100); //tiempo de espera 100ms
  }

else if(t == 'S'){      //Shutter start)

digitalWrite(8, HIGH); // Focus 
delay(1500); // wait 1.5 second
digitalWrite(9, HIGH); // Ready! 
delay(1000); // wait 1 second
digitalWrite(8, LOW); //( LOW para Pentax)activate optocouplers for  focus/shutter.
digitalWrite(9, LOW); // ( LOW para Pentax)
  
}
delay(100);

}

Por más que lo miro no veo donde está el error... Has probado con los ejemplos de la librería servo??

Hola,
creo q tienes que poner

Servo1.write(45) por ej e ira a 45 grados, etc

saludos.

Gracias por las respuestas!

El código original compila perfectamente. Es bastante curioso esto.

Acá está el código original desde el cual estoy copiando y adaptando...

#include <Servo.h> 

Servo ServoAndroid;
char rxChar; //Caracter recibido por bluetooth
int ang = 90; //Ángulo inicial 90 grados

void setup(){

  ServoAndroid.attach(3,600,2400); //Servomotor: PIN3 & AP(min)=600 AP(max)=2400
  Serial.begin(9600); //baudrate=9600
  
  }

void loop(){
  
  if(Serial.available()){ // "Si se detecta una entrada"
    rxChar = Serial.read(); // Se lee el caracter del celular

    if (rxChar == 'a'){ 
      ang = ang + 5; //Se aumenta el angulo en 5 grados
      Serial.print(ang); //Se envia el valor al celular
      }
    else if (rxChar == 'h'){
      ang = ang - 5; //Se disminuye en 5 grados
      Serial.print(ang);
      }
      
    ang = constrain(ang,0,180); //Se limita los valores del angulo
    }
    ServoAndroid.write(ang); //Se ingresa el valor de "ang" en el Servo
    delay(100); //tiempo de espera 100ms
  }

Buenos días,

Muchas gracias ArduMyth por la ayuda y por la lección!

Un saludo