Su uso de bastante simple, el módulo consta de 8 pines, de los cuales 4 están cubiertos con dos jumpers para selección de la salida activa, además tiene de siete bornes, cuatro para las conexiones de las salidas de los puente H y 3 más para potencia, una referencia negativa, la ya mencionada salida de 5V y la alimentación que puede ir de 6V a 12V. A continuación señalamos cada uno de los pines:
Donde vemos los 2 bornes correspondientes a salida 1 y 2, que es donde debemos conectar los elementos a controlar; los 3 bornes de potencia, donde vemos la salida de 5V que provee el módulo y los pines, donde vemos que IN1 y 2 corresponden a la entrada del puente H correspondiente a la salida 1, lo mismo para IN3 y 4 y la salida 2. También vemos los jumpers de ENA y ENB, los cuales al retirarlos desactivan el puente H de la salida correspondiente.
A continuación presentamos un ejemplo dónde se controla la dirección y la velocidad de un motor usando como driver el L298N y un Arduino UNO.
Esquema de conexión con Arduino UNO
Código Arduino UNO
int IN1 = 11;
int IN2 = 10; // definimos los pines
void setup() {
pinMode(IN1,OUTPUT); // definimos los pines como salida
pinMode(IN2,OUTPUT);
delay(100);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW); // damos valores iniciales a la salida
delay(1000);
}
void loop() {
for (int i=0 ; i < 256 ; i++) // el motor aumenta su velocidad
{
analogWrite(IN1,i);
digitalWrite(IN2,LOW);
delay(200);
}
for (int i=256 ; i > 0 ; i--) // disminuye la velocidad
{
analogWrite(IN1,i);
digitalWrite(IN2,LOW);
delay(200);
}
digitalWrite(IN1,LOW); // se detiene
digitalWrite(IN2,LOW);
delay(5000);
for (int i=0 ; i < 256 ; i++) // cambia de sentido y aumenta su velocidad
{
analogWrite(IN2,i);
digitalWrite(IN1,LOW);
delay(200);
}
for (int i=256 ; i > 0 ; i--) // disminuye nuevamente su velocidad
{
analogWrite(IN2,i);
digitalWrite(IN1,LOW);
delay(200);
}
digitalWrite(IN1,LOW); // el motor se detiene
digitalWrite(IN2,LOW);
delay(5000);
}
int IN2 = 10; // definimos los pines
void setup() {
pinMode(IN1,OUTPUT); // definimos los pines como salida
pinMode(IN2,OUTPUT);
delay(100);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW); // damos valores iniciales a la salida
delay(1000);
}
void loop() {
for (int i=0 ; i < 256 ; i++) // el motor aumenta su velocidad
{
analogWrite(IN1,i);
digitalWrite(IN2,LOW);
delay(200);
}
for (int i=256 ; i > 0 ; i--) // disminuye la velocidad
{
analogWrite(IN1,i);
digitalWrite(IN2,LOW);
delay(200);
}
digitalWrite(IN1,LOW); // se detiene
digitalWrite(IN2,LOW);
delay(5000);
for (int i=0 ; i < 256 ; i++) // cambia de sentido y aumenta su velocidad
{
analogWrite(IN2,i);
digitalWrite(IN1,LOW);
delay(200);
}
for (int i=256 ; i > 0 ; i--) // disminuye nuevamente su velocidad
{
analogWrite(IN2,i);
digitalWrite(IN1,LOW);
delay(200);
}
digitalWrite(IN1,LOW); // el motor se detiene
digitalWrite(IN2,LOW);
delay(5000);
}
Al subir este código verás al motor aumentar lentamente su velocidad en una dirección hasta su velocidad máxima y luego disminuirla lentamente hasta detenerse para finalmente girar en sentido contrario de la misma forma, repitiendo este comportamiento una y otra vez.
FIN DEL POST
0 comentarios:
Publicar un comentario