Portal    Foro    Talleres    Buscar    FAQ    Registrarse    Conectarse
Publicar Nuevo Tema  Responder al Tema Página 1 de 1
 
Automatización Servomotor
Autor Mensaje
Responder Citando  
Mensaje Automatización Servomotor 
 
Buenas a todos, tras hablar con un miembro de este foro y estar leyendo en el he decidido recurrir a ustedes para solicitarles ayuda acerca de un proyecto que tengo pendiente y no se sacar alante.

El mismo consiste en automatizar el giro de un servomotor de la siguiente forma.

Desde la posicion en la que se encuentre tiene que hacer un giro de 90º acompañado de un reposo.

Quedando algo asi como ====>    0º GIRO 90º REPOSO ===> 90º GIRO 0º REPOSO (Y VUELTA A EMPEZAR)

La velocidad de giro del mismo debe de ser bastante lenta debería tardar unos 30 segundos en hacer el giro.

El servo que uso es el MG995

Espero sus respuestas un saludo.

Gracias
  



Desconectado Ver perfil del usuario Enviar Mensaje Privado
Descargar Mensaje Volver arriba Página Inferior
AQUÍ PUEDE IR TU PUBLICIDAD
Responder Citando  
Mensaje Re: Automatización Servomotor 
 
Que tal Freddy? De españa cierto  Laughing

Bueno pues gracias por recurrir al foro, sería "justo y necesario" que nos comentes cual será la aplicación que deseas realizar con esta pequeña automatización.

Bueno te dejo mi apoyo  Cool
'****************************************************************
'*  Name    : Servo                                             *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2009  All Rights Reserved           *
'*  Date    : 24/09/2009                                        *
'*  Version : 2.0                                               *
'****************************************************************
@ DEVICE PIC16F628A, WDT_OFF
@ DEVICE PIC16F628A, PWRT_OFF
@ DEVICE PIC16F628A, BOD_OFF
@ DEVICE PIC16F628A, PROTECT_OFF
@ DEVICE PIC16F628A, CPD_OFF
@ DEVICE PIC16F628A, MCLR_OFF
@ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT

'===============================================================================

i   var     byte
j   var     word

'===============================================================================

SERVO VAR PORTB.7   :   TRISB.7=0

'===============================================================================

    gosub pos_inicial
MAIN:
    gosub bucle1
    gosub bucle2
    goto main                
    
pos_inicial:
    for i=0 to 5
        servo=0
        pulsout servo,158
        pauseus (20000-158)
    next i
    return
    
bucle1:
    for i=158 to 248
        for j=0 to 17
            servo=0
            pulsout servo, i
            pauseus (20000-i)
        next j
    next i
    return
    
bucle2:
    for i=248 to 158 step -1
        for j=0 to 17
            servo=0
            pulsout servo, i
            pauseus (20000-i)
        next j
    next i
    return


y bueno el esquema sencillamente es esto:
Image

La explicación breve de lo que necesitas:

Cojamos el ejemplo del bucle1:
   for i=158 to 248
        for j=0 to 17
            servo=0
            pulsout servo, i
            pauseus (20000-i)
        next j
    next i


el primer "for i=..." hace 1 barrido de grado en grado desde la posición central 0°(158) hasta la posición +90°(248), donde realiza 90 iteraciones, entonces vemos que siempre se demora 20ms en mandar la posicion al servo,  Nerd  Laughing , bueno entonces primero tenemos 90x20ms=1800ms osea 1.8s; bueno entonces para que se demore 30 solo hay que dividir y ver que ese numero de veces se repita, entonces es por ello que aparece el otro "for" j=..."  donde repite la escritura del grado actual 17 veces, finalmente tenemos que: 1.8s x 17 = 30.6s que es un aproximado del tiempo que necesitas.


Bueno un gusto, espero que nos comentes de que trata, aunque x el msn ya me comentaste, todos seguro querrán saber de que trata.

BytezZz...
  




____________
En la vida no siempre gana el hombre mas fuerte o el mas ligero, sino el que cree poder hacerlo.
Desconectado Ver perfil del usuario Enviar Mensaje Privado Visitar sitio Web del Usuario MSN Messenger
Descargar Mensaje Volver arriba Página Inferior
Responder Citando  
Mensaje Re: Automatización Servomotor 
 
Muchisimas gracias,la finalidad del artefacto es para unos comederos de animales.

Lo que estaba viendo es para que una vez que termine el ciclo de 90º y llegue al final ahi me gustaría meter una pausa de unas 3  horas.

Entonces no se si con pausas en este micro se puede hacer o hay que cambiar el micro.

Saludos y de veras gracias
  



Desconectado Ver perfil del usuario Enviar Mensaje Privado
Descargar Mensaje Volver arriba Página Inferior
Responder Citando  
Mensaje Re: Automatización Servomotor 
 
Hola de nuevo  Razz

Bueno como conversábamos por el messenger, depende mucho la finalidad del servo, si va a tener una carga pesada o no Question , o si tan simple y llanamente con su propio torque quizá sea suficiente.

Veamos entonces:

Sin accionar el servo:
Bueno tu usas MicroCode Studio y el uso del PAUSE se limita a 65 535 milisegundos = 65s aprox. Entonces si quieres generar un retardo de 3 horas, solo necesitas agregar esto:

MAIN:
     gosub bucle1
     gosub retardo
     gosub bucle2
     gosub retardo
     goto main
            .
            .
            .

retardo:
    for i=0 to 180
        pause 60000           '60000=60x1000(1s)=60s=1min                 180=3x60m(1hora)            180x60000=3horas                          
    next i
    return
  


Para el segundo caso:
main:
       gosub bucle1
       gosub bucle3
       gosub bucle2
       gosub bucle4
       goto main

               .
               .
               .
bucle3:
    for i=0 to 180                              180*1min=180min=3horas
        for j=0 to 3000                        son 20ms*3000=60 000ms=60s=1min
            servo=0
            pulsout servo, 158
            pauseus (20000-158)
        next j
    next i
    return
    
bucle4:
    for i=0 to 180
        for j=0 to 3000
            servo=0
            pulsout servo, 248
            pauseus (20000-248)
        next j
    next i
    return


Bueno y finalmente también otra diferencia es que en el bucle el cual no considera mantener el servo, se ahorra energía, pero si queremos mantener la posición con torque durante ese largo tiempo se seguirá consumiendo energía.
  




____________
En la vida no siempre gana el hombre mas fuerte o el mas ligero, sino el que cree poder hacerlo.
Desconectado Ver perfil del usuario Enviar Mensaje Privado Visitar sitio Web del Usuario MSN Messenger
Descargar Mensaje Volver arriba Página Inferior
Responder Citando  
Mensaje Re: Automatización Servomotor 
 
Es perfecto muchisimas gracias.

Un saludo
  



Desconectado Ver perfil del usuario Enviar Mensaje Privado
Descargar Mensaje Volver arriba Página Inferior
Mostrar mensajes anteriores:
Resumen de Valoraciones:
Media de Valoración Valoración Mínima Valoración Máxima Número de Valoraciones
0.00 0 0 0
Ver Información Detallada
Elegir Valoración: 
Publicar Nuevo Tema  Responder al Tema   Página 1 de 1
 

Usuarios navegando en este Tema: 0 Registrados, 0 Ocultos y 1 Invitado
Usuarios Registrados conectados: Ninguno


 
Lista de Permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No Puede descargar archivos
Puede enviar eventos al Calendario