Autor Tema: :: PWM :: CCS :: PIC18F2550 :: SERVOS::  (Leído 25730 veces)

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

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
:: PWM :: CCS :: PIC18F2550 :: SERVOS::
« en: 02 de Julio de 2012, 17:16:51 »
Hola

Tengo unos micro servos llamados :
tower pro sg90 tienen tres pines de colores ;marron,rojo,naranja
me gustaria saber como se conectan.

Yo en un principio conecte marron a masa , rojo a vcc 5v y naranja a pwm
pero no se mueven , cuando doy pequeños toquecitos con el cable rojo,
el servo se mueve hacia un lado.

¿Alguien ha trabajado con ellos antes?

estoy intentando simularlos en proteus pero no doy con el componente.

sigo investigando..


« Última modificación: 23 de Julio de 2012, 08:50:24 por pajaro »

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #1 en: 02 de Julio de 2012, 17:46:09 »
Hola Pájaro. Te paso un link con los pinout. El conector es del tipo JR.
    http://www.coastalplanes.com/articles/pinout.htm
y en este hilo http://www.todopic.com.ar/foros/index.php?topic=20918.0 hay simulaciones con proteus.
                Saludos.
               Jukinch.
« Última modificación: 02 de Julio de 2012, 17:49:11 por jukinch »
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #2 en: 02 de Julio de 2012, 18:11:11 »
Tu conexión esta bien, el problema debe estar en un mal contacto, o una lógica errada de tu programación.


Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #3 en: 03 de Julio de 2012, 17:36:40 »
Hola
hay forma de saber
con que frecuencia trabaja un servo
en concreto el microservo TOWER PRO SG90
como saber cuanto tienen que pernanecer en alto y cada cuanto se les envia inpulsos
ya que no dos los servos son iguales..

Los servos tambien tienen hoja de datos?

sigo investigando..
« Última modificación: 09 de Julio de 2012, 14:02:56 por pajaro »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #4 en: 03 de Julio de 2012, 18:26:20 »
  Por lo general en un servo analógico el período de trama es de unos 20ms  y el ancho de pulso entre 1ms y 2ms dependiendo del ángulo de movimiento. Creo que con esos tiempo se logra un recorrido de extremo a extremo de 60º
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #5 en: 04 de Julio de 2012, 20:56:46 »
Hola.

Si son de los azulitos :P  ... los he puesto a andar con un D.C minimo de 560uS y un maximo de 2.5mS .. el periodo de la senal es de unos 15.6mS


Saludos
El papel lo aguanta todo

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #6 en: 09 de Julio de 2012, 14:11:46 »
Hola

hola 560 microsegundos:
 1 ms 1x10 exp -3
 1 us  1x10 exp -6

si dices 560 us es es la posicion inicial y la 2.5 ms es para llevar al servo al final de su posición.
si el periodo es inverso dela frecuencia le metiste uha fecuencia de 64 hercios mas o menos.

        _
_ _ _    _ _ _
       

¿Como se hace para que el servo no tiemble?

ahora hace tac (*) y chic (+) y a veces no hace ruido (-)
entonces cuando avanza hace
*++++++*++++++*++++++*++++++*++++++

*-----------*-----------*-----------*-----------*-----------


alguna idea..

« Última modificación: 10 de Julio de 2012, 16:26:46 por pajaro »

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #7 en: 16 de Julio de 2012, 14:38:58 »
hola
abri el micro servo y parece que una chapita de plastico salto

La pregunta :
¿como lo vuelvo a poner para que gire como antes?
algun manual de contratrutaje de servos.

Se agradecari alguna ide de como reparar este servo.

Un saludo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #8 en: 16 de Julio de 2012, 19:13:14 »
Hola

En mi caso, el servo no tiembla ... se desplaza normalmente hasta la posición y ahí se queda fijo. Esos valores los obtuve experimentalmente.

Cuando inicie las pruebas si había como un "temblor" en el servo, pero fue cuestión de cambiar los valores para asignar el D.C., es como si se me hubiese pasado la mano en esa aasignacion  :oops:

Saludos
El papel lo aguanta todo

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #9 en: 17 de Julio de 2012, 10:47:12 »
Hola
eso del D.C. a que te refieres?

leyendo por diversos enlaces y otros foros recomindan poner la frecuancia a 50Hz pero en mi caso es
imposible con cristal de 20 Mhz lo que me recomiendan en el asistente del pwm del CCS esta sobre 12khz
yo recuerdo que le ponia 20khz.

Me da un poco de palo probar en fisico, porque ya me cargue un servo,
se me truco sin querer.  :?  He pensado en ponerle un pequeño tornillo donde la pestaña para que
haga de tope pero tampoco se donde estaba la pentaña.

sigo con el asunto..

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #10 en: 17 de Julio de 2012, 19:28:34 »
Hola.

Hago referencia al ciclo de trabajo (Duty Cycle) del PWM.

Para experimentar podrías poner una senal con un periodo de unos 15mS (o cercano) y ajustar el estado HIGH a 1mS a ver como se comporta y según ese comportamiento fijar los valores máximo y mínimo.

Saludos
El papel lo aguanta todo

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #11 en: 19 de Julio de 2012, 14:46:56 »
Hola

Como es posible averiguar el maximo o el minimo y el exacto de los putos del servo.
me refiero que sipatimos de sus 3 posiciones, izquierda,derecha y centro.

en algunas pruebas no hace ruido pero ...si se suelta el cable de control
y se vuelve a poner si aparece el ruido como un mosquito de verano de esos que pican..

Otras veces no hace ruido pero, el regulador , 7805 se calienta un cojon, no lo puedes tocar
te quemas.

sigo probando..
« Última modificación: 20 de Julio de 2012, 05:45:50 por pajaro »

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #12 en: 19 de Julio de 2012, 15:47:46 »
  En las pruebas que hice con un microservo E-Sky usé tiempos de 1ms para un extremo y 2ms para el otro extremo. Eso en cuanto al tiempo en alto del pulso, para el período de la señal utilicé 20ms.

  En otros experimentos (decoder de RC), conecté la salida de trainer del RadioControl (que contiene la información para todos los canales) y utilicé un 16F628 para decodificar la señal hacia los distintos servos.
En esa oportunidad me hacía un poco de ruido, pero fue por problemas de falsos contactos en el cable de señal hacia el servo.

  Por supuesto debes tener un filtro a la salida del regulador, yo utilizaba 10uF que eran suficientes.

  Yo no usé resistencia entre la salida del pic y el cable de señal del servo, pero creo que sería conveniente.

  Revisa el sitio este que está muy bueno con toda la info que tiene respecto del RadioControl. http://www.e-radiocontrol.com.ar/?Documentacion:Decodificador:PWM
« Última modificación: 19 de Julio de 2012, 15:50:22 por AngelGris »
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #13 en: 19 de Julio de 2012, 17:23:43 »
Hola

Gracias por el enlace AngelGris, buena aportacion al hilo.


Lo de la resistencia te refieres para evirar ruido y mandar lo mas estable posible verdad?


Tengo una pregunta ...¿a que es debido que el servo en algunas posiciones
el servo se autorectifique solo..

me explico lo llevo de la posicion + 0 - cental a ojimetro () hasta 0

segun el valor llega y parece como que quisiera seguir avanzando
pero en otras  llega y se retrasa un pelin el solo.. parece como si no fuera lineal la sucesion

El perido de la señal lo puse en 20ms --> 20 000 us
que seria usar una fecuanica de 50Hz

para mi tower pro SG9 (los azulitos)

izquierda esta entre  110us y un poco por encima tambien ...
por debajo hace cosas muy raras

derecha cerca de los 800us (probando aun)

y el centro cuando termine de acotar los extremos
imagina que lo tendre..

uso una funcion de prueba:

Código: C++
  1. // main
  2.  
  3. while(true){
  4.  
  5. pwm_p(pwm_sf,200);
  6. }
  7. ..
  8. ..

la funcion trabaja con microsegundos (us)

Código: C++
  1. void pwm_p(int8 pin, int16 useg){
  2. int16 resto;
  3. //20mms -- 20000us
  4. resto=20000;
  5.    output_high(pin);
  6.    delay_us(useg);
  7.    //delay_ms(mseg);
  8.    output_low(pin);
  9.    resto=resto-useg;
  10.    delay_us(resto);
  11.    //delay_ms(resto);
  12. }

sigo buscando el otro extremo ....


bueno ya consegui los valores de los extremo

lo malo es la de pruebas que tuve que hacer todo experimental

izquierda:  110 us,  120 us,  130 us    me quedo con 110 us
derecha :   360 us,  370 us,  380 us    me quedo con 630 us
centro:       620 us,  630 us,  640 us    me quedo con 370 us

si restamos: 630 - 370 = 260
si restamos: 370 - 110 = 260

si 370 es 90 grados cuantos tiempos sera  1 Grado

370 us ------ 90º
 x    us ------  1º

como el cero empieza en 110
370-110
x=370/90

x=2.88888889 periodo

3us es 1 grado

« Última modificación: 20 de Julio de 2012, 11:35:11 por pajaro »

Desconectado pajaro

  • PIC24H
  • ******
  • Mensajes: 1121
Re: :: PWM :: CCS :: PIC18F2550 :: SERVOS::
« Respuesta #14 en: 20 de Julio de 2012, 12:17:22 »
Hola
al final logre adaptar los tiempos:

como mi servo no tiene 180º exactos sino sino unos poco mas debo de ajustar los extremos
de forma manual.

central:  370 us
izq:       120 us
der:       620 us

despues de esto se plantea una nueva cuestion
hasta ahora probe toda el proceso con un funcion:

Código: C++
  1. //main
  2. ..
  3. ..
  4.    while(true){
  5.       pwm_p(pwm_sf,120);
  6.  
  7.    }
  8.    
  9. ..
  10. ..

ahora deseo sacar esta funcion del bucle

al hacerlo ya no responde de igual forma...

he observado que una vez que se mueve el servo a su posicion
deseada se puedes sacar el cable de control que el servo no se mueve
esto vendria a ser lo mismo que que desactivar esta funcion.

Pero que tiempo minimo necesita de repeticion?
cuantas veces tienen que reeenviar ?


Un Saludo
« Última modificación: 20 de Julio de 2012, 12:22:30 por pajaro »