Download Puente H: cambio de giro y velocidad de motores DC.

Document related concepts
no text concepts found
Transcript
Puente H: cambio de giro y velocidad de
motores DC.
Por William David Galvis
26 Marzo del 2014
Puente H:
El puente en H lleva su nombre gracias al aspecto físico del esquema básico de los
interruptores usados para direccionar la corriente en un sentido o en el otro (figura 1),
este cambio en la dirección de la corriente hace que el motor cambie el sentido del giro.
Calle: 41 No. 51 15, local 141, Teléfono: 232 77 84, E-Mail: www.microkitselectronica.com
Centro Comercial Paseo Bolívar, Carabobo con los Huesos, Medellín Antioquia, Colombia.
1
2
Imagen 1
Imagen 2
Los interruptores en las imágenes 2a y 2b pueden ser reemplazados por relés, contactores
(eléctricos de potencia) o transistores, para hacer el diseño más compacto se han
fabricado circuitos integrados que funcionan como puente en H con mayores
configuraciones para su funcionamiento. Uno de ellos es el L298N.
Este circuito integrado soporta cargas inductivas tales como relés, motores DC, motores
paso a paso y solenoides. La corriente que fluye por la carga no debe exceder los dos
amperios por canal, esta corriente a su vez sale del puente a un pin de sensado, donde se
debe conectar una resistencia externa para determinar la intensidad de la corriente, ésta
se llama resistencia de sensado A (para el motor A, RSA) y lo mismo sería para el motor B,
RSB
El circuito tiene dos puentes, el puente A (para el motor A) y el puente B (para el motor B),
cada puente es controlado por tres compuertas, por ejemplo para el puente A, In1, In2 y
EnA (Enable A).
El máximo voltaje de operación para los motores es de 46 voltios DC.
Calle: 41 No. 51 15, local 141, Teléfono: 232 77 84, E-Mail: www.microkitselectronica.com
Centro Comercial Paseo Bolívar, Carabobo con los Huesos, Medellín Antioquia, Colombia.
3
Imagen 3
Imagen 4
Calle: 41 No. 51 15, local 141, Teléfono: 232 77 84, E-Mail: www.microkitselectronica.com
Centro Comercial Paseo Bolívar, Carabobo con los Huesos, Medellín Antioquia, Colombia.
Las dos entradas de habilitación EnA y EnB habilitan o deshabilitan por completo el puente
respectivo independientemente del estado de las señales de entrada In1 e In2 que se
encargan de indicar el sentido del giro del motor, lo mismo ocurre para el puente B.
Si se quiere controlar la velocidad del motor en cualquiera de los dos puentes basta con
energizar y des energizar el pin de control del puente (Enx), este voltaje promedio
incrementará o disminuirá la cantidad de voltaje que le llega al motor, provocando su
aceleración o desaceleración, este control se hace con los pines de PWM del Arduino.
Imagen 5
La función analogWirte():
Esta función escribe un valor analógico en un pin (PWM), esta puede ser usada para
controlar la luminosidad de un led o la velocidad de un motor
Sintaxis: analogWrite(pin, valor)
Parámetros a ingresar en la función:
pin: Es el pin en el cual se quiere generar la señal PWM.
Calle: 41 No. 51 15, local 141, Teléfono: 232 77 84, E-Mail: www.microkitselectronica.com
Centro Comercial Paseo Bolívar, Carabobo con los Huesos, Medellín Antioquia, Colombia.
4
valor: El ciclo de trabajo deseado comprendido entre 0 (siempre apagado) y 255 (siempre
encendido).
Programa # 1: Produce una señal donde se conecta el LED, cuyo voltaje promedio es
proporcional al valor leído en el pin donde está conectado el potenciómetro.
/* Programa tomado de:
http://arduino.cc/es/Reference/analogWrite#.UzZHcIVAeiw */
int ledPin = 9;
int analogPin = 3;
int val = 0;
// LED conectado al pin digital 9
// potenciómetro conectado al pin 3
// variable en el que se almacena el dato leído
void setup()
{
pinMode(ledPin, OUTPUT);
}
// sets the pin as output
void loop()
{
val = analogRead(analogPin);
// lee la tensión en el pin
analogWrite(ledPin, val / 4); // los valores de analogRead van desde 0
// a 1023 y los valores de analogWrite van desde 0 a 255, por eso //
ajustamos el ciclo de trabajo a el valor leído dividido por 4.
}
Imagen 6. Circuito para prueba del programa uno.
Calle: 41 No. 51 15, local 141, Teléfono: 232 77 84, E-Mail: www.microkitselectronica.com
Centro Comercial Paseo Bolívar, Carabobo con los Huesos, Medellín Antioquia, Colombia.
5
¿Qué similitud tiene este programa con el programa uno de la guía anterior? El cual
consistía en variar el tiempo de encendido y apagado del LED con el valor análogo medido
en el potenciómetro.
Si los dos programas hacen lo mismo ¿Qué programa es más eficiente?
Programa #2
/* Programa para KITL298.
Usa Tres funciones para marcha, paro y reversa de
dos motores DC.
Creado: Octubre del 2013
por William Galvis.
Este programa es de domino público. */
/*Directivas de preprocesamiento asignan un nombre a un pin del Arduino
en vez de una variable en memoria.*/
#define
#define
#define
#define
#define
#define
ena 9 // 2
enb 10 // 7
ain1 3
ain2 4
bin1 5
bin2 6
void setup() {
/* se definen como salida los pines que van a controlar
los dos puentes A y B del puente en H para los dos motores*/
pinMode(ena, OUTPUT);
pinMode(enb, OUTPUT);
pinMode(ain1, OUTPUT);
pinMode(ain2, OUTPUT);
pinMode(bin1, OUTPUT);
pinMode(bin2, OUTPUT);
}
void loop() {
marcha (255,255);
// Motor A y Motor B a máxima velocidad.
delay(2000);
// el vehículo marcha dos segundos.
pare();
// paro los motores antes de hacer cualquier cambio brusco.
reversa(126, 126); // luego de parar se invierte el giro de los motores
// para que este ande en reversa a la mitad de la velocidad.
delay(2000);
// el vehículo en reversa dos segundos.
pare();
// paro los motores antes de hacer cualquier cambio brusco.
}
Calle: 41 No. 51 15, local 141, Teléfono: 232 77 84, E-Mail: www.microkitselectronica.com
Centro Comercial Paseo Bolívar, Carabobo con los Huesos, Medellín Antioquia, Colombia.
6
void marcha(int a, int b)
{
analogWrite(ena,a);
analogWrite(enb,b);
digitalWrite(ain1, HIGH);
digitalWrite(bin1, HIGH);
//___________________________
digitalWrite(ain2, LOW);
digitalWrite(bin2, LOW);
}
void pare (void)
{
digitalWrite(ena, LOW);
digitalWrite(enb, LOW);
digitalWrite(ain1, LOW);
digitalWrite(bin1, LOW);
digitalWrite(ain2, LOW);
digitalWrite(bin2, LOW);
delay(300);
}
void reversa(int a, int b)
{
analogWrite(ena,a);
analogWrite(enb,b);
digitalWrite(ain2, HIGH);
digitalWrite(bin2, HIGH);
//________________________
digitalWrite(ain1, LOW);
digitalWrite(bin1, LOW);
}
REFERENCIAS
imagen 1:
http://blutintegrado.blogspot.com/2012/05/puente-h.html
imagen 3
http://www.bristolwatch.com/L298N/
Puente H: cambio de giro y velocidad de motores DC. by William Galvis is licensed under a Creative
Commons Reconocimiento-CompartirIgual 3.0 Unported License.
Calle: 41 No. 51 15, local 141, Teléfono: 232 77 84, E-Mail: www.microkitselectronica.com
Centro Comercial Paseo Bolívar, Carabobo con los Huesos, Medellín Antioquia, Colombia.
7