Autor Tema: Control de un SERVO  (Leído 3011 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado franda

  • PIC10
  • *
  • Mensajes: 32
Control de un SERVO
« en: 16 de Julio de 2004, 09:56:00 »
Necesito un programa en C para controlar un SERVO, me vale cualquier intervalo para el pulso.

Gracias.

Desconectado odukec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 174
RE: Control de un SERVO
« Respuesta #1 en: 16 de Julio de 2004, 11:36:00 »
Hola..

Creo que deberias por lo menos intentar hacer algo, y mostrar algo de lo que haces para que los demas te ayuden..

Para controlar un servo solo necesitas generar en el pic una señal cuadrada con un ancho de pulso que depende del angulo al que quieres mover el servo.. es muy sencillo, esto depende del modelo del servo y sus caracteristicas.

Saludos

Desconectado franda

  • PIC10
  • *
  • Mensajes: 32
RE: Control de un SERVO
« Respuesta #2 en: 19 de Julio de 2004, 00:32:00 »
Esto es lo que he hecho, a ver que os parece

Codigo:
/************************************************************************
*                                                                       *
*                        SERVO                              *
*                                                      *
*         Si RA0=1 --- > SERVO EN POSICION 0º                     *
*         Si RA0=0 --- > SERVO EN POSICION 180º                  *
*                                                           *
*                                                                       *
************************************************************************/

#include <16F876.h>

#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, WRT

#use delay (clock=4000000)

#use fast_io(A)
#use fast_io(B)

main()
{
   short I1;
   set_tris_a(0x1F);
   set_tris_b(0x00);   

     while (1)                    
     {
      I1=input(PIN_A0);      
      
      if(I1==1)               // Posición 0º      
      {
         output_bit(pin_b0,1);
         delay_us(200);
         output_bit(pin_b0,0);                  
         delay_us(19800);               
      }         
      else                  // Posición 180º      
      {
         output_bit(pin_b0,1);
         delay_us(2200);            
         output_bit(pin_b0,0);
         delay_us(17800);                                 
      }   
     }
}  


Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Control de un SERVO
« Respuesta #3 en: 23 de Julio de 2004, 10:28:00 »
Nadie le va a decir nada a este hombre, si lo ha hecho bien o si lo ha hecho mal ?

Desconectado YF-21

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 185
RE: Control de un SERVO
« Respuesta #4 en: 13 de Enero de 2005, 14:46:00 »
Lo siento, apenas estoy investigando lo de los servos. Asi que yo no te puedo ayudar Enfurruñado

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: Control de un SERVO
« Respuesta #5 en: 13 de Enero de 2005, 16:02:00 »
Le acabo de dar un ejemplo muy sencillo a el pana Modulay para servos, reviza en su sitio web haber si esta disponible, si no puedes pedirselo, realmente manejar un servo es de lo mas sencillo, pero como en todos estos bichos mientras mas precision(usando asm,el pwm,timer..etc) mejores resultados, pero la idea de este ejemplo fue hacerlo sin asm ni modulos hardware(por tanto es inpreciso en 1%)

Salu2

Desconectado mandoa

  • PIC10
  • *
  • Mensajes: 36
RE: Control de un SERVO
« Respuesta #6 en: 17 de Enero de 2005, 04:44:00 »
Hace algún tiempo hice un programilla similar a este; con el protoboard me funciona correctamente; solo hay que tener en cuenta que al alimentar el circuito, debes de utilizar 2 alimentaciones distintas, una para el pic y otro circuito para los servos.
Espero que te sea de ayuda.Sonrisa

Desconectado odukec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 174
RE: Control de un SERVO
« Respuesta #7 en: 18 de Enero de 2005, 06:44:00 »
Hola..

No es más fácil usando el PWM..?, bueno.. lo unico que no se es a que frecuencia deberia trabajar, creo que depende del servo, pero variando el duty se lograria conseguir cualquier ángulo en el servo. RollEyes

Saludos

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Control de un SERVO
« Respuesta #8 en: 18 de Enero de 2005, 12:22:00 »
A ver si digo una burrada. Voy a mojarme.

La frecuencia de funcionamiento de los servos suele estar comprendida entre 50Hz (T=20ms) y 100Hz (T=10ms), por lo tanto con el PWM hardware no se puede ya que el Tmax que se puede obtener con PWM hardware es Tmax=4,096 ms.

Un saludo


 

anything