ACTUADOR LINEAL

Este actuador lineal, esta accionado por un servomotor MG995 «trucado», no funciona como servo sino como un motor.

El servo esta controlado por una placa arduino UNO,  el funcionamiento cambia con respecto al servo, al poner en la programación del servo  0º, el motor gira a velocidad máxima en un sentido, con 180º gira a velocidad máxima en sentido contrario, a mediada que nos acercamos a 90º, la velociad disminuye y al llegar a 90″ se detiene.

Funcionamiento; Con cada activación del pulsador conectado al pin 11,  el vastago sale, y se recoge.

Esquema eléctrico

Parte trasera

Programa

				
					// este proyecto utiliza uns servo MG995 trucado,
//el valor que recibe el servo regula la velocidad y sentido de rotación
// cuando cargamos el valor 90 el servo esta parado
// con el valor 0 gira a velocidad máxima en un sentido
// con el valor 180 gira a velocidad máxima en sentido contrario
// ciclo: al activar el pulsador el motor gira 1300 ms, y luego gira en sentido contrario hasta que acitve el final de carrera de inicio

#include <Servo.h> //Libreria para Servomotores
Servo Servo_1;  
int motor=3;
int fc=8;  // final de carrera vastago recogido
int pul=11; // señal para iniciar el ciclo, mediante un pulsador

int marcha=0;

void setup() 
{ 
  // defino los pines utilizados
  
 pinMode(fc, INPUT);
 pinMode(pul, INPUT);

} 


void loop() 
{ 
if (digitalRead(pul)==HIGH && marcha ==0) marcha=1; // inicio un ciclo de salida y entrada del vastago

  if (marcha==0)Servo_1.detach(); // si marcha es cero deconecto el servo
  else Servo_1.attach(motor); // si no activo el servo
  
  if (marcha==1){  //Cuando acitvamos el pulsador                        
    Servo_1.write(180);		 // avanzo el cilindro a tope
    delay(1300);             //durante 1300 milisegundos
    Servo_1.write(90);  // paro el servo
    delay (2000); // le tengo dos segundos abierto
    marcha=2; //salido el vastago no vuelve entrar en este if hasta que halla finalizado el ciclo
    }
  
if (digitalRead(fc) == HIGH) { // si el final de carrera del servo no esta activado
    Servo_1.write(45);        //retrocedo el cilindro despacio
  }
  else {                      // si el final de carrera inicio esta actido
    marcha=0; 				  // me preparo para un nuevo ciclo
   
    }  

} 
				
			

Consulta el temario

Acceso a alumn@s