miércoles, 9 de noviembre de 2011

Motores DC con Pinguino




Montaje básico con un transistor para un motor pequeño de bajo consumo


Montaje utilizando en ULN2003. 


Puente H con el L298 la señal de enable esta conectada a 5V para habilitar permanentemente el motor. Vdd que hace referencia al voltaje de alimentacion del motor también esta a 5V para este ejemplo, en caso de requerir otro voltaje para el motor Vdd se conectara el voltaje requerido.

Aqui el terminal de enable se controla con la señal PWM de pinguino, esto es para manipular la velocidad del motor.

Este montaje corresponde al puente H utilizando los integrados LM386.

Para todos los montajes que corresponden al puente H, el sentido de giro se controla con los terminales 0 y 1 de pinguino.

Código correspondiente a los montaje con el L298 y LM386


void setup(){
 pinMode(0,OUTPUT);
 pinMode(1,OUTPUT);
}
void loop(){
 //giro en un sentido
 digitalWrite(0,HIGH);
 digitalWrite(1,LOW);
 delay(2000);
 //gira en el otro sentido
 digitalWrite(0,LOW);
 digitalWrite(1,HIGH);
 delay(2000);
 //para el giro motor
 digitalWrite(0,LOW);
 digitalWrite(1,LOW);
 delay(2000);
}


11 comentarios:

  1. conecte los lm386 como muestra el cuadro y cree el codigo para q los pines 0 y 1 como salidas pero el motor solo gira en un sentido ,como debe ser el codigo para que el motor gire en ambas direcciones?
    gracias

    ResponderEliminar
    Respuestas
    1. Actualice la publicación agregando el código correspondiente.
      Los lm386 son amplificadores utilizados en aplicaciones de audio, por eso son buenos manejando cargas inductivas como motores pequeños.
      También puedes consultar otra publicación un poco mas detallada, este es el enlace
      http://micropinguino.blogspot.com/2011/04/puente-h-con-el-lm386.html

      Eliminar
  2. me funciono muy bien,quisiera saber si puedo adaptarle un optoacoplador a la terjeta pinguino y esta a su vez un motor para q me lea las revoluciones a la cula gira ese motor?

    gracias

    ResponderEliminar
    Respuestas
    1. Si es posible, eso se hace con los temporizadores. En pinguino hay un ejemplo en la parte de la utilización de interrupciones.
      Voy a revisar el código y de tener algo concreto lo publico.

      Eliminar
  3. q pena molestarte pero haz encontrado algo sobre el optoacoplador.


    muchas gracias

    ResponderEliminar
  4. o si puedes decirme como hago el codigo para q la tarjeta lea las pulsaciones que le envie el optoacoplador

    gracias

    ResponderEliminar
    Respuestas
    1. De momento no he revisado, pero el codigo asociado a lo que tu necesitas es el que esta en los ejemplos pinguinoX3/examples/08.Interrupt/Counter.pde

      // Use timer 3 as a counter with external input
      // Jean-Pierre Mandon 2010
      // a 4,7k pull-up resistor is wired on pin 10

      unsigned int counts=0;

      void setup()
      {
      TMR3H=0; // reset the timer value
      TMR3L=0;
      T3CON=0b10000111; // configure timer 3 in 16 bits counter mode
      // Pin 10 and 11 became input
      // Signal need to be applied on Pin 10
      // every rising edge increment the timer 3 register
      Serial.begin(9600); // to debug
      }

      void loop()
      {
      counts=(TMR3H<<8)+TMR3L;
      Serial.print(counts,DEC);
      Serial.print("\n\r");
      }

      Eliminar
  5. buena tarde.
    con la funcion milli puedo hacerlo?

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. Claro que se pude hacer con millis, en la institución donde trabajo ya lo han hecho algunos estudiantes.
      Lo que se hace es contar el numero de transiciones de alto a bajo de encoder del motor y con la función millis medir el tiempo transcurrido desde que se empezó a contar las transiciones hasta que termina.
      Aquí hay algo sobre la función millis
      http://micropinguino.blogspot.com/2011/05/la-funcion-millis-en-pinguino.html

      Eliminar
  6. Hola.quiero alimentar el Pinguino 18f4550 por medio de una fuente de 5v 1,5a y le aplico +vcc al pin 32 y gnd al 31,y a la vez al l298 para un motor,pero el Pinguino no enciende(su led de power),ahora si lo alimento con USB y al puente H con esa fuente de 5v 1,5A, funciona.Podrían decirme si estoy en lo correcto y por qué no funciona?Gracias

    ResponderEliminar