lunes, 13 de agosto de 2012

control de motores DC (parte 1)

... y controlando la velocidad de giro

Llevo tiempo sin postear, pero por varias buenas razones. Más que nada he estado retomando mis
escasísimos conocimientos en electrónica, para unos cuantos proyectos con RaspberryPi que tengo en mente. Primero tenemos que controlar un motor DC de jugete (6v), veamos como se hace.

Si lo as intentado, te habrás dado cuenta y si no lo has intentado, te lo digo yo. Si conectas un motor pequeño, de estos que se usan para los coches teledirigidos de los niños, o para otras pequeñas cosas, al pin de 5v y al de tierra del RaspberryPi, este se apaga, no es capaz de alimentarlo ni de alimentarse. Mala cosa si queremos construir alguna chorradilla sin tener que usar relés con alimentación a parte. Así que rebuscando entre la caja de componentes electrónicos reciclados, encontré unos transistores para circuitos integrados:

No voy a entrar ahora en lo que consiste un transistor (básicamente porque no lo se), pero lo que si se es que sirven como interruptor y/o amplificador. Así que me curro el siguiente circuito con el RaspberryPi:

Fácil y sencillo, ahora probamos con wiringpi:
gpio -g mode 18 out
gpio -g write 18 1
y ahí está!! girando como un campeón y sin se que apague el RaspberryPi. Pero ahi no queda todo, podemos controlar la velocidad, gracias al PWM del pin GPIO18:
gpio -g mode 18 pwm
gpio -g pwm 18 910
y gira despaciiiiiito despaciiiiito. Si aumentamos el PWM:
gpio -g pwm 18 1023
gira al 100% de la velocidad, así que sin resistencias ni condensadores podemos decir que:
PWM 910 = 5% de velocidad
PWM 1023 = 100% de velocidad
Así que gracias a nuestro amigo el transistor, tenemos un amplificador la mar de baratito. En el siguiente post de motores, veremos como controlar además de la velocidad, el sentido de giro, y lo mismo hasta me curro un circuito integrado ...

12 comentarios:

  1. Buenas, no se como es el sistema raspberryPi, yo uso AtMega para mis proyectos, pero te comento, al 5% que tu tienes, que equivale en el PWM al 80% o mas, como verá, pierdes mucha resolución, unos 900 pasos de pwm perdidos y esto se debe a que no usas un control de corriente.
    Con el control de corriente el motor puede ir girando lentamente y aun tendrá fuerza, sin embargo, de la forma que tienes, el motor a 910 de pwm, pierde casi toda la fuerza al colocarque cualquier mínima resistencia que lo frene.

    Un saludo !! Voy a seguir bicheando tu blog que lo he visto desde el facebook de Miguel Gil, que ponía que era el blog de un amigo.

    ResponderEliminar
    Respuestas
    1. Hola, gracias por la información. Para el tercer post sobre motores dc usaré un control de corriente, ya lo tenía buscado, pero gracias de todas formas.

      Eliminar
  2. Hola! Quiero ponerle un ventilador pequeño a la cajita que le estoy haciendo a mi raspberry (una que compre en el chino de madera y quiero modificar, si quieres luego te paso como queda). La cosa es que tengo un ventilador con 3 pines y quiero controlar la velocidad, tengo uno conectado a 5v, otro al gnd y otro al gpio18, y siguiendo tus instrucciones no hace nada. ¿sabes como podría hacer?
    P.D: no tengo apenas idea de electronica.

    ResponderEliminar
    Respuestas
    1. Hola, en mis instrucciones aparece un transistor ¿tienes alguno para probar? Los colores de los cables de tu ventilador son rojo, amarillo y negro verdad?

      Eliminar
    2. Hola, no tengo transistor, y efectivamente son de esos colores los cables. Esta semana me voy a comprar un transistor y te cuento.

      Eliminar
  3. Estaria bien poner fotos del hecho rulando y tal para al menos saber donde hay que pinchar el motor

    ResponderEliminar
  4. El transistor que por lo que pusiste es de tipo NPN (te lo digo porque lo busque no por lo que lo sepa) tendría tener unos valores de tension (V) y de intensidad(A) superiores al de los que ofrece RPI y a los que pide el motor no?

    ResponderEliminar
    Respuestas
    1. eh ... el transistor que probé venia en un kit de arduino ... desconozco por completo sus especificaciones.

      Eliminar
  5. tengo una pregunta todos los gpios se pueden poner en modo pwm o solo se puede hacer con el 18?

    Salu2.

    ResponderEliminar
    Respuestas
    1. el 18 es el único por harware, pero puedes poner más por software, como explico en http://rsppi.blogspot.com.es/2013/01/control-pwm-por-software.html

      Eliminar
  6. Hola, estoy con un proyecto y el motor pide 9 voltios, por obligación toca con fuente externa o con los transistores son capaces de alimentar con la raspberry gracias

    ResponderEliminar
  7. Hola, estoy con un proyecto y el motor pide 9 voltios, por obligación toca con fuente externa o con los transistores son capaces de alimentar con la raspberry gracias

    ResponderEliminar