Haz una pregunta
  Foros de Electrónica » Temas de Interés » Dudas en general
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

19/09/2010 #1


Inconveniente: Control de servomotor con ATMEGA32
Hola que tal

Buscando en varios foros se me complico encontrar una respuesta a mi pregunta. Espero alguien pueda ayudarme o simplemente opinar sobre el problema que tengo. Seria bueno escuchar los problemas comunes que se tienen con el control de servos y sus soluciones.

Tengo algunos servos, he intentado hacerlos funcionar con un micro ATMEGA32A, estoy utilizando el timer1 y puedo controlar sin problema un par de pequeños servos pero no he tenido éxito con el resto que son de tamaño estándar y uno a 1/4 de escala.

Es como si no hubiera señal, simplemente no se mueven; pero cuando separo las tierras del ATMEL y la del servo este se se mueve hacia un extremo y ahí se queda, al volver a unir las tierras el servo se apaga como si no hubiera señal. Suena como si fuera un problema de conexión, pero todo esta bien conectado y eso me pasa con todos mis servos salvo con los pequeños. Uno de ellos es completamente nuevo de hecho.

La señal pwm que envío tiene 50Hz y vario la duración del pulso de 1 a 2ms, los servos son Hitec y parallax y la alimentación es 5V y 3A max.

Me agradaría escuchar opiniones, gracias.
20/09/2010 #2


Respuesta: Inconveniente: Control de servomotor con ATMEGA32
Todo suena a problema de alimentaciones. ¿Puedes dar más detalles sobre las alimentaciones, desacoplos, conexiones, circuito, esquema?
20/09/2010 #3


Respuesta: Inconveniente: Control de servomotor con ATMEGA32
Hola, muchas gracias por responder

Puede que se trate de la alimentación, pues las conexiones están bien ya que no tengo problemas controlando servomotores pequeños. Anexo la imagen del esquema.

Es la conexión que todo mundo conoce. Al unir ambas tierras mediante el cable rojo, el servo no responde, pero al retirar el cable (dejando OC1A flotando) el servo se mueve hacia un extremo. He usado otras alimentaciones para el micro ademas de la del puerto USB. El código es este, el cual corre con un cristal de 4MHz.

//TIMER 1 CONFIGURATION

/***TCCR1A: Timer/Counter 1 control register A

COM1A1:0 10 Non inverting mode
COM1B1:0 10 Non inverting mode
FOC1A:B 00 Just clear it
WGM11:0 10 Fast PWM ICR1 (Check TCCR1B also)
*/
TCCR1A = 0b10100010;

/***TCCR1B: Timer/Counter 1 control register B

WGM13:2 11 Fast PWM ICR1 (Check TCCR1A also)
CS12:0 011 Clock/64 from prescaler
*/
TCCR1B = 0b00011011;

/***TIMSK: Timer/Counter interruot mask register

OCIE1A:B 0 Timer/Compare match interrupt disabled
TOIE1A/B 0 Timer/Compare overflow interrupt disable
*/
TIMSK =0;

/***ICR1 Input Capture Register
*/
ICR1 = 1249;

Esa configuración permite obtener un PWM a 50Hz, con un ancho de pulso positivo de 2ms. Como dije puedo controlar servomotores pequeños pero no puedo con servos de mayor tamaño. puede que parezca que algo anda mal con la alimentacion pero estoy usando una fuente de 5V capaz de entregar 3A. En fin, no se si haz tenido problemas similares.
Imágenes Adjuntas
Tipo de Archivo: jpg Dibujoxx.jpg (7,5 KB (Kilobytes), 29 visitas)
20/09/2010 #4


Respuesta: Inconveniente: Control de servomotor con ATMEGA32
El simple hecho de que te falle cuando conectas el cable rojo ya dice mucho, y confirma que tienes un problema de alimentaciones. Me atrevería a decir que de masas.

¿Porqué no mides, sin el cable rojo, la tensión que hay entre las dos masas?

El mero hecho de que con servos pequeños (y por tanto, de menor consumo) te funcione, pero con servos más granes (y por tanto, mayor consumo) te falle, indica que tienes un problema de consumos. Presumiblemente, se deba a que la masa del USB y la de la fuente no sean la misma y por ahí circule una corriente indeseable... Prueba a alimentar los servos con pilas o una batería.
20/09/2010 #5


Respuesta: Inconveniente: Control de servomotor con ATMEGA32
Hola de nuevo

Probé lo que sugeriste, no había pensado en eso como la causa. Medí el voltaje entre ambas tierras, indicaba 1.2V lo cual no es poco. Sin embargo aunque coloqué unas baterías nuevas en lugar de la fuente el problema no se corrige: al unir las masas (que es como debe ser) el servo no responde, al separarlas se mueve a un extremo. pasa con todos los servos salvo con los pequeños.

¿Crees que tener esa diferencia de potencial entre tierras pudo haber dañado algo?.

Gracias
20/09/2010 #6


Respuesta: Inconveniente: Control de servomotor con ATMEGA32
Bien, Beamspot tienes razón, el problema esta asociado a las tierras. Coloque un optocoupler para transmitir la señal PWM al servo sin que este tenga que compartir la tierra con el micro y funcionó.

Colocar optocouplers no me parece mala idea pues es hace mas robusto al circuito y elimina el problema de la diferencia de voltajes entre masas.

En fin gracias Beamspot tu diagnostico me ayudo a resolver el problema por ahora. Aunque aun debo saber la causa real de porque los servos fallan al compartir tierras aun usando baterías. Si tienes alguna opinión o alguien mas, me agradaría escucharla.
20/09/2010 #7

Avatar de verogirl

Respuesta: Inconveniente: Control de servomotor con ATMEGA32
Has pensado en el ruido por la alimentacion que reinica al micro?
21/09/2010 #8


Respuesta: Inconveniente: Control de servomotor con ATMEGA32
Hola, gracias por preguntar

También creo que el problema se asocia con el ruido que hay en tierra, pero cuando corro el micro paso a paso o por tramos de código mediante el debugger (un AVR Dragon) no se indica desconexión del dispositivo ni ningún otro problema en el puerto USB, es como si el ruido solo afectara la señal de control que llega al servo. Ademas los otros periféricos trabajan bien mientras que los servos no.

Tras unas pruebas he llegado a pensar que el problema esta en el circuito del micro, este se encuentra en un protoboard (¡nuevo!), alimentado por el puerto USB. Las terminales del USB indican 5.1v sin carga, al conectar el micro el voltaje cae a 4.85, no hay sobredemanda de corriente pues el mismo circuito alimentado con fuente indica 6mA de consumo. Quizá se deba a una resistencia parásita en alguna conexión del protoboard que causa un voltaje indeseado donde debería haber 0V. Pero eso ya no lo probare por ahora (...).

En fin gracias por sus comentarios. Se debe tomar en cuenta el ruido de tierra o ground loop al acoplar dos circuitos (http://focus.ti.com/lit/an/slla268/slla268.pdf). Gracias Verogirl parece que el problema si esta en el circuito del micro.
31/07/2011 #9


Hola mira tengo este video espero que te sirva:

http://www.youtube.com/user/diegosar.../0/kkZeMu8aLSk
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Dudas en general

Aquí se tratan todos los temas relacionados con la electrónica en general.

Cerrar
Foros de Electrónica » Temas de Interés » Dudas en general

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.