Let's Make Robots!

Question about L298N on a Arduino powered Bigtrak

HI,

I'm in the middle of my first project , This is my setup

1. Bigtrak Jr (PCB removed , using 2 motors ,2 encorders and the chasis)

2. Arduino Uno R3

3. Dual H Bridge DC Stepper Motor Drive Controller Board Module L298N for arduino

 

I  need to turn the vehicle by rotating wheels on opposite directions . I modified the blink code , and surprisingly  works!

But I'm not sure if I'm doing this right because it was simple than I thought. Can someone with better knowledge confirm this please?

 

/*

  Blink

  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.

 */

// Pin 13 has an LED connected on most Arduino boards.

// give it a name:

int led = 13;

int led2 = 10;

// the setup routine runs once when you press reset:

void setup() {                

  // initialize the digital pin as an output.

  pinMode(led, OUTPUT);     

pinMode(led2, OUTPUT);     

 

}

 

// the loop routine runs over and over again forever:

void loop() {

  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)

  digitalWrite(led2, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(2000);               // wait for a second

  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW

  digitalWrite(led2, LOW);

  delay(1000);               // wait for a second

}

 


pic of 
L298N

 

arduino 10 --> In1

arduino 11 --> In2

arduino 12 --> In3

arduino 13 --> In4

 

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Thanks,

I'm trying to figure out if this is this the right way to aproach this , Obviously it works . For example below code rotates the robot 2 seconds one way and then turn it the other way for 2 seconds.

 

I can see what's the logic is here

In1 ,In2 belongs to one motor and In3,In4 belonds to the other.

In1=HIGH will turn that wheel clockwise , In2 =HIGH will turn it anti clockwise

 

I did lot of googling but all most all the searches with L298 chip gives me results with a different board .In those examples you have to supply 'A enable' ,'B enable' from arduino as well . On this board there are two jumpers on those pins . 

 

int led1 = 10;

int led2 = 11;

int led3 = 12;

int led4 = 13;

 

// the setup routine runs once when you press reset:

void setup() {                

  // initialize the digital pin as an output.

pinMode(led1, OUTPUT);     

pinMode(led2, OUTPUT);     

pinMode(led3, OUTPUT);     

pinMode(led4, OUTPUT);     

 

}

 

// the loop routine runs over and over again forever:

void loop() {

  digitalWrite(led1, HIGH);   

  digitalWrite(led3, HIGH);   

  delay(1000);               

 

  digitalWrite(led1, LOW);    

  digitalWrite(led3, LOW);

  delay(1000);               

 

  digitalWrite(led2, HIGH);   

  digitalWrite(led4, HIGH);   

  delay(1000);               

 

  digitalWrite(led2, LOW);    

  digitalWrite(led4, LOW);

  delay(1000);               

 

}

 

 

 

Thank you

Maxhirez's picture

If it's doing what you want, why worry? The thing is if it is then you really lucked out and might have wired something very unconventionally.  If you're trying on the other hand to figure out why it works and build on that as a foundation for learning Arduino robot programming, then you're really looking down a blind alley.

There are several problems here.  One is that your sketch doesn't tell pins 11 or 12 what to do, which means they default to input, or high-impedance.  Moreover, there's no way of telling what is really wired to what with the information you've given us here.  Another is that an h-bridge like this usually requires 3 Arduino pins to run each motor (two with an inverter cheat) but this image looks like one supplied by the seller-it doesn't actually reveal where Arduino pins 10-13 are connected on your 298 unit.  A fourth is that it's unclear what you mean when you say "it works."  Does it turn right for two seconds, then left for two seconds then start over?  If so, is it happening because both tracks are spinning in opposite directions, or is one track moving and the other fixed?  Is something else entirely happening?

Before someone else says it, I'm going to encourage you to search a few more tutorials on the subject via mother Google.