Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
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
Luison, Es raro, probé varios pics, y en digital funciona :S
Como te comentan, respondía a monton 😉
Tengo dos servos, a ninguno le he quitado toda la electronica. A uno de ellos le he sustituido el potenciometro interior por un puente en H. El otro lo único que he hecho ha sido romper el tope de los engranajes y después centrar el potenciómetro.
No se si así se podran utilizar para las ruedas del robot y permitir el giro en ambos sentidos. Por cierto así la velocidad de giro es fija? o se podría variar.
Hola!
No entiendo lo de que has sustituido el potenciometro de dentro por un puente en H, si no le quitas toda la electronica que yo sepa no necesitas un puente en H 😯 😯 8O.
Lo de centrar el potenciometro de dentro esta complicado. El potenciomentro de dentro lo puedes sustituir por un multivueltas de 5K y hacerle un agujero a la carcasa para poder ajustarlo a la posicion cero. Subo una foto. Con eso para controlarlo la frecuencia del PWM debe ser de +-50Hz y funcionaria como te han dicho antes.
Otra cosa, el micro es un 8051 de Atmel ¿verdad? Utilizas las interrupciones del timer, programas en C, con C51?, que frecuencia de reloj usas?... cuantos mas datos mejor.
Salu2!
Muchas gracias por las respuestas he encontrado por fin mi fallo. No era problema de los servos, sino simplemente que el micro no proporcionaba suficiente corriente para que se moviera el servo y necesita una simple resistencia de pull up y ya funciona.
Eso te pasa por utilizar el puerto 0 como salida..... a mi me pasó algo parecido hace tiempo y desde entonces solo lo utilizo como entradas 😉
Lo del timer te lo preguntaba por que a mi me pasó que la rutina de interrupcion del timer duraba mas que la temporizacion que utilizaba para el PWM (0,1ms) y entonces no me movia el servo 😳
Salu2!
Hola, de todos modos solo decirte que ese micro tiene un modulo de gereracion de pwm, llamado PCA, en los pines p1.3 al p1.7
te dejo un enlace con informacion interesante sobre este micro
http://www.depeca.uah.es/wwwnueva/docen ... -SE/lsed2/