Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Problema servo con P89c51rd2

15 Respuestas
6 Usuarios
0 Reactions
4,302 Visitas
monton
Respuestas: 10
Topic starter
(@monton)
Active Member
Registrado: hace 17 años

Muy buenas a todos. Tengo un pequeño problemilla intentando manejar dos servos con este microcontrolador. Los servos los he "trucado" utilizando un puente en H para permitir que giren totalmente y utilizarlos para el movimiento de mi robot. Mi gran problema es que a la hora de probar los servos, no funcionaban. Probé a medir las señales de salida PWM con un osciloscopia y a pesar de que en simulador del ordenador el programa funciona correctamente en el microcontrolador no da la salida PWM. No se que puedo intentar para que funcione, ya que tengo todos los puertos del micro ocupados excepto en el que estoy probando los servos y ya no se si es problema de los servos, del micro, del código o mio. Si pudieses explicarme algun código en C para poder utilizar.

Muchas gracias

Responder
14 respuestas
garrocha
Respuestas: 1110
(@garrocha)
Ardero
Registrado: hace 20 años

monton, lo que le has hecho al primer servo supongo que es sustituir el potenciometro por dos resistencias haciendo un divisor de tension, un puente h es esto otro: http://es.wikipedia.org/wiki/Puente_H_(electr%C3%B3nica) )

sobre tu duda de la velocidad decirte que si, que puedes regular la velocidad con el pwm, peeero, y a ver si este va a ser tu fallo, la señal de pwm que le tienes que enviar a los servos en tu caso, en el que has conservado la electronica original es la misma que le enviarias a un servo normal, es decir un valor de posicion, que tendra su equivalente, ahora que el servo no tiene tope ni realimentacion, en una velocidad te explico:

supongamos que has dejado el potenciometro en el punto medio (y el del divisor de tension esta con un valor tambien a la mitad, 2 resistencias iguales)

Esa posicion seria la equivalente a tener el servo a 90º, si le envias la señal para ponerse a 180º se pondra a toda velocidad en un sentido (a la derecha por ejemplo), y si le envias la señal de ponerse a 0º se pondra a toda velocidad en sentido contrario (a la izquierda), ahora bien, si lo que le envias son por ejemplo las posiciones 135 o 45 lo que (en principio y depende del servo) hará el servo es ir hacia el sentido que sea, pero a mitad de velocidad, ya que le mete mas o menos caña segun la distancia que cree el servo que le queda por recorrer desde los 90º centrales que tu has fijado con el potenciometro.

Asi a ojo:

0º-> 100%izquierda
10º-> ~90% a izquierda
45º-> 50% a izquieda
90º -> parado (aunque para esto mejor no enviar nada, ya que de lo contrario debido pequeñas tolerancias puede que vibre)
135º-> 50% derecha
180º-> 100% derecha

Espero no haberte liado mas, si no te queda claro no dudes en preguntar, que a veces nos explicamos como libros cerrados 😉

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 20 años

Garrocha, No se si es solo problema mio pero cuando a un servo le dejas de mandar pulsos pega un cambio de posición... Igual soy yo el que he montado algo mal (que me suele ocurrir)

Responder
luison
Respuestas: 495
(@luison)
Reputable Member
Registrado: hace 18 años

A mi una vez se me quemó el PWM de un PIC (familia 16F). El resto funcionaba perfectamente (lo usaba al 100%) pero el PWM dejó de funcionar, así que tuve que comprar otro PIC. Igual algún corto te fastidió el PWM...

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 20 años

Luison, Es raro, probé varios pics, y en digital funciona :S

Responder
garrocha
Respuestas: 1110
(@garrocha)
Ardero
Registrado: hace 20 años

BoOpS, al servo hay que mandarle constantemente la consigna de posición, pero para el caso que nos trae, para decirle al servo que se quede quieto (recordemos que hablamos de servos trucados para rotacion continua) con dejar de mandarle informacion es suficiente para que deje de girar, no queremos que se quede bloqueado en una posición concreta, sino simplemente parado, sin alimentar el motor.

Pd.- creo que luison respondia a monton 😉

Responder
Página 2 / 3
Compartir: