Controladora de 12 servos con PIC 16F84A

boton_electronica.pngPor qué no explotar al máximo las capacidades de este PIC y poner casi todos pines de  los puertos E/S a pilotar servos.

Utilizando un software similar al que describo en mi anterior articulo lo podemos conseguir. Aquí de momento expongo el diseño del circuito que voy a utilizar. En un posterior articulo incluiré el software.

El PIC 16F84 tiene 8 pines en el puerto B y 5 pines en el puerto A. En total tenemos 13 pines de entrada salida. Mi idea es utilizar el máximo de pines para pilotar servos, pero al menos necesito uno de ellos para que funcione de entrada de recepción de datos.  Ya sea de un PC o de otro PIC. De modo que reservando un pin, tendremos otros 12 para manejar servos. Mi idea inicial es conectarlo al PC mediante el puerto serie.

He seleccionado el pin 4 del puerto A, que se corresponde con la patilla 3 del integrado. El resto de pines del puerto A, del 0 al 3 serán pines de salida para servos.

Utilizaré el 16F84A versión 20 Mhz para sacarle el máximo partido.

Con todo lo comentado, el esquema muestra el resto de manera bastante clara.

Para conectarlo al puerto serie del PC añado al esquema el transistor para adaptar niveles que ya mostraba en mi articulo sobre la adaptación de niveles RS-232 <-> TTL de Marzo de 2010.

El siguiente esquema muestra el circuito completo:

Esquema de la controladora de 12 servos

Algunas notas adicionales sobre el esquema:
– En el se puede ver que existe una resistencia de 0 Ohms. Simplemente se trata de un puente que vi necesario a la hora de diseñar la placa.
– Los jumpers para los servos son los conectores que aparecen a la derecha.
– La alimentación de los servos y de la lógica se ha separado para evitar que el ruido de los servos afecte al micro.
– La asignación de los pines del 16F84 hacia la tira de pines no es aleatoria. Se han asignado de manera que cada pin del micro tenga enfrente el pin de la tira de pines. De este modo es mas sencillo enrutar las pistas.

El diseño está realizado en Eagle 5.3.0. Si alguien está interesado que me pida los archivos.

El resultado es el siguiente, «renderizando» la placa en 3D:

Circuito resultante visto en 3D

El software para manejar los servos lo pondré en el siguiente articulo.

[reditado 2013/09/18] Ya está disponible en la pagina de descargas los esquematicos y diseño de placa, así como el programa en un fichero asm.

Autor: Sphinx

Robotics enthusiast

23 opiniones en “Controladora de 12 servos con PIC 16F84A”

    1. Hola Luis Enrique.
      Tu pregunta está abierta a muchas respuestas. Con la controladora de este post del blog no creo que puedas controlar 16 servos, puesto que como ves en el titular se pueden controlar 12. Exiten otras controladoras que pueden manejar más servos. En este blog menciono que con el controlador Pinguino ver18F2550 puedes controlar hasta 18 servos simultaneamente. Echale un ojo.
      Si esto no te resulta comodo o fácil de manejar, te sugiero busques otras controladoras para manejar esa cantida de servos que deseas. Hay muchas en el mercado.
      Saludos, Sphinx.

      Me gusta

    1. Hola Cesar,
      He actualizado la página y he puesto los ficheros de eagle junto con el fichero asm en el area de descargas. Puedes encontrarlo allí con el nombre de este mismo artículo del blog.
      Saludos,
      Sphinx.

      Me gusta

  1. no encuentro programa en asm de ensamblador para manejar el pic 16f84a,
    con la tarjeta de control de 12 servos, por favor enviar al correo si es posible.Gracias

    Me gusta

  2. hola, me gusto mucho tu diseño, ¿me podrias pasar el programa en ensamblador? me seria de gran ayudar, porque aun no se programar bien y lo modificaria porque solo quiero usar 6 servos, o asi lo puedo usar? gracias 🙂

    Me gusta

  3. disculpame t hago una consulta, vos m podrias mandar el programa q hiciste con MPLAB a mi correo? porq estoy intentando armar un peqeño brazo robot con servos y qiero programar el pic q va en la plaqetita q vos pusiste en este post…

    mi msn: rubiofilipelli@hotmail.com

    desde ya muchas gracias…!

    Me gusta

  4. hola amigo oye una pregunta puedo usar el pic 16f84a para el codigo que esta ya echo???? solo quiero controlar 5 servos y que programa puedo utilizar para controlar los movimientos de los servos espero su pronta respuesta muchas gracias

    Me gusta

    1. Hola Lázaro, Este programa es para el 16F84A, por tanto sí, puedes utilizarlo, no veo el por qué no. Puedes controlar 5 servos con él. Claro, hasta 12. como dice el artículo. Pero me da la sensación de que no estoy entendiendo tu pregunta. A qué te refieres cua do dices «qué programa puedo utilizar para controlar los movimientos de los servos…» ¿ Te refieres a un programa de PC ?
      Dame más datos a ver si te puedo ayudar.

      Me gusta

  5. ola yo quisiera crear un controlador de 8servos si alguien me podria ayudar para poder construirlo con puerto serial, el circuito impreso y los circuitos ayuda es que el esquema que aparese en esta pagina me complica

    Me gusta

    1. Hola Sebastian, controladores de 8 servos los puedes encontrar a montones por internet. Te paso este enlace a la página de mi amigo Julio Montagut. Es muy bueno y está muy bien explicado: http://www.jvmbots.es/index.php/controlador-de-8-servos.html . Pero si este esquema que te muestro en esta página te parece complicado, no creo que el otro te lo parezca menos. Yo creo que no lo es tanto.
      Si me dices qué es lo que te parece complicado del esquema…? Te recomiendo que para probarlo, utilices una protoboard, y una vez lo tengas visto y comprobado, intentes hacer la placa.
      Saludos,
      Sphinx.

      Me gusta

  6. wenas, esta genial tu placa controladora siempre he querido armarme una,
    me queda una duda si, podria construir exactamente la misma placa pero para un pic16f628a que es el que tengo,seran los mismos pines?
    saludos y gracias de antemano

    Me gusta

Deja un comentario