TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: beatAurex1 en 13 de Abril de 2011, 21:29:12

Título: Servos no Responden al PWM
Publicado por: beatAurex1 en 13 de Abril de 2011, 21:29:12
Resulta que mediante el algoritmode RedPIC, controlo unos servos, por el momento solo estoy controlando uno, en particular, uno que controla el timon de profundidad de un avionde R/C,  y uso un acelerometro para ver la inclinacion del avion y asi corregir su cabeceo.

Mi duda surge al incio que energizo mi electronica los servos responden como lo programe, pero si le doy la maxima inclinacion al acelerometro  o minima, lo cual equivale al valor de .6 ms  o 2.3 ms  para el maximo o minimo movimeinto dle motor este se queda estatico.

No se Si el cambio entre valores del pwm sea tan rapido que mi servomotor no lo alcance a detectar. Aqui dejo un video para que vean lo que suceden en los servos y en la señal.

(http://img62.imageshack.us/img62/5276/avionv.th.jpg) (http://img62.imageshack.us/i/avionv.jpg/)

Uploaded with ImageShack.us (http://imageshack.us)

Aqui el Link del Video ->SERVOS_Avion (https://docs.google.com/open?id=0B2LQ47flngQLNjUwMGIzYmEtMzY5MS00YTJkLWI2YzAtYTdlNzBhYWNiODc2)

Título: Re: Servos no Responden al PWM
Publicado por: beatAurex1 en 14 de Abril de 2011, 20:43:07
bueno ya esta Corregido solo estaba Leyendo antes de tiempo los canales A/D a lso que tengo conectado el acelerometro. Aqui ya al correcion


Código: C++
  1. while(true){               //Bucle Principal
  2.  
  3. sensores();             //Rutina que Obtiene el Valor De tension de los ejes XYZ del acelerometro
  4. calcula();                   //Rutina que Calcula el Angulo del eje X Y Z nota de Aplicacionde [b]Freescale AN3461[/b]
  5.                
  6.                        
  7. if(ADCX_OFF<-1.0 ){
  8.      Servo_PWM[0]=Ticks4Center+7000;   if(Servo_PWM[0]>27600)  Servo_PWM[0]=27600;   //Limitamos el Valor por
  9.     //restriccion   mecanica
  10.      }
  11.  
  12. if(ADCX_OFF>4.0 ){
  13.      Servo_PWM[0]=Ticks4Center-8000;      if(Servo_PWM[0]<8500)  Servo_PWM[0]=8500;
  14.      }
  15.  
  16. if(ADCX_OFF>-1.0 ||ADCX_OFF<4.0  ){       //Si se encuentra entre estos rangos Centramos el servo del aleron.
  17.         Servo_PWM[0]=Ticks4Center;  
  18.         }
  19.                                                                                
  20. }
Título: Re: Servos no Responden al PWM
Publicado por: beatAurex1 en 14 de Abril de 2011, 20:45:42
y Aqui el Video Ilustrativo

Alerones (https://docs.google.com/leaf?id=0B2LQ47flngQLNGFiNjEzZjQtYTMwNi00ZjYxLTgyOTUtYjk3NzMwODY5YTNk&sort=name&layout=list&num=50)