Fundumoto L298P shield

Hi. New to all this stuff so please go easy.

I've just got one of these shields (photo attached). It's exactly what I need but there seems to be almost zero documentation anywhere.

Can anyone help with a data sheet or a link or something similar to get me on my way.

Thanks is advance

BertandBawbag,

I did a quick search (google) on

Fundumoto L298P

The fourth hit was a slightly useful pdf

http://elesson.tc.edu.tw/md221/pluginfile.php/4241/mod_page/content/10/L298_Motor_Shield_Manual.pdf

Anthony

Thanks Anthony,
I have already seen that one. Unfortunately, it is not the same board.

I can find plenty of images, places to buy the board and links to similar products but crucially, not the data sheets.

There are some guidelines on some of the sellers pages but these are all incomplete.

At worst I will just have to apply some trial and error.

Thanks for your time in any case.

I did some more searches. Based on the picture I think it's the same board. Hope so anyway.

http://blog.whatgeek.com.pt/arduino/l298-dual-h-bridge-motor-driver/

http://www.dfrobot.com/image/data/DRI0009/Arduino%20L298%20Shield%20Sch.pdf

http://www.robotoid.com/appnotes/circuits-l298-hbridge.html

Start with the last link. If that doesn't help write back and I'll do more searches. The more eyes looking the more likely something will be found.

Anthony

Hi, maybe this is what you are looking for:

http://www.droking.com/wp-content/uploads/2015/12/091035_L298P-Motor-Shield-Instruction.pdf

Check it out!

Hi There,
I was just wondering if you had any luck finding more info on this shield.
I am running into the same problem, no decent document or specs anywhere.
Not to mention having to digital write the buzzer low to turn it off. Thing was killing me, LOUD!
Please let me know.
Thanx,
John

Hi. Been a while since I looked at this. Got it functional without too much difficulty. Here are the pins if it helps.

const int left_motor_direction = 13;
const int right_motor_direction = 12;
const int right_motor_PWM = 10;
const int left_motor_PWM = 11;
const int pan_servo_pin = 9;
const int echoPin = 8;
const int triggerPin = 7;
const int buzzer = 4;
const int tilt_servo_pin = 6;
const int left_motor_IR_sensor_pin = 2;
const int right_motor_IR_sensor_pin = 3;

HI

I have purchased these Keyes/Fundumoto shields and trying to get it to work with bluetooth but there is very little information available about them. I hope someone can help.
I have found a very simple data sheet here but it does not address using Bluetooth with this shield

I am using an Arduino UNO with the shield (and have not had trouble with running DC motors or Servo or Distance sensor through the shield).
BUT I can't get the Bluetooth part of the shield to work, and I need them all to work together.

The datasheet says "Two-way bluetooth interface requires no wiring and you can plug directly" so does this mean that the voltage at the TX of the Shield has been stepped down from 5V to 3.5V or lower? I am not sure if all bluetooth modules require lower voltage at the Rx pin (so not sure if this "plug directly" also applies to the HC-05).
My HC-05 module (and I think HC-06 bluetooth modules also), can only accept 3.5V at their RX pin.
I have just plugged it in to the Bluetooth Interface (and hope it is not damaging anything), but still it is not working.
I can't get it to respond in AT mode.

I am not sure if my problem is that I am used to using the SoftwareSerial.h library, and I am not sure that it allows the use of the RX and TX pins? Could this be my problem?

I am still powering the shield from the USB of the computer. Is this perhaps the problem? But the Bluetooth module is flashing, so it is getting power.

Has anyone got a sketch that does not use Softwareserial to change to AT mode that I can test the RX and TX pins, or any other ideas on how to troubleshoot this problem. Please!

Hi,
I am also interested in making the L298P motor shield working with an HC06 plugin directly into it.

Did you find any answers to your problem?

Regards

HI

I have not been able to plug it directly in (using the RX and TX pins provided), but I have been able to get the HC-05 working successfully with the fundomoto board with it using pins 2 and 3.

I attach the code I used. Hope it helps.

However, I am really struggling to find out how to use the Fundomoto shield with the HC-SR04 distance sensor though.

If anyone can help with this I would really appreciate it!!!!

All motors work really well with other code but as soon as I add any kind of Ping functionality the B motor (connected to Pin 11 speed and Pin 13 direction) starts only going in reverse.

I am trying to do an obstacle avoidance program but something is interfering with one of those pins. I would say it is interfering with D13 (as this is the direction pin), but someone has suggested that it is interfering with the speed pin.
How do I stop this interference? I have stopped using any newPing.h library in case that was using timing pins that interfere, but I am using the function delayMicroseconds(), which might be using a timer on another pin?? I am not sure how timers work.

I cant change the pinouts of the motors as they are determined by the shield (as explained above)
Does anyone know what my problem could be here, and what I should do to solve it.

PLEASE, I am getting a bit desperate now (and short of time).

BlueToothLED.ino (2.2 KB)

I used the pins in my post above to do exactly what you are trying to do. Works perfectly.

Would definitely avoid using any kind of delay function. May not solve this problems but could well create others for you later on. I have suffered many times on this subject.

HI BertrandBawbag

Would it be possible to share your code which uses both the distance sensor and the Fundumoto motor control shield?
I am not sure why mine is getting stuck, but maybe because I have used delayMicrosenconds() in my code for sending out the 'ping' from the Ultrasonic sensor. How else do you write code for an Ultrasonic sensor without a delay?

I have attached my code below in case you can see why I am getting a conflict (probably at pin 10)
int measureDistance()
{
int result;

//Measure the distance with US distance sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
result = duration/58.2;
Serial.println(result);
return result;
}
// measureDistance END

Testing_ObstacleAvoidWithoutSM.ino (4.84 KB)

It’s been a while since I looked at this stuff but I think that if you look at the newping library, you’ll find that it deals with the ping duration for you.

I’ll have a look for the code tomorrow. Had a bad data loss a while back so may not have it anymore. If it there, will gladly post.

Hi
I am wondering if my problem might be a loss of power due to too many components powered up at once. I am running the robot off a 9v battery.

What kind of power is recommended for this kind of robot. Arduino can take up to 12V (but this becomes very clunky (8*1.5V batteries).
What do people normally use?

Also, I understand voltage, but not sure I understand the current being drawn from each of the components and how do I make sure the batteries I choose are able maintain that kind of draw on them. Most batteries I am looking at dont even give a current on the packaging.

Can someone please help me with this?

Thanks in advance.

I know that the thread is pretty dead but there is some useful information on the board here

http://rc.mired.org/2017/09/the-fundumoto-motor-shield.html

Thanks Jseed. I am sure this will help. I will contact the reviewer directly and find out if he can solve the problem.

Hi.

I have read all the documentation on the web around the Fundumoto board (discussed in the thread above) but still cant get my motors to work properly. PLEASE can someone help me.

The right motor (motor B) just spins in reverse no matter what instruction is given. This seems to me that pin 13 which is the direction for motorB is not giving the HIGH current as required to send the FORWARD direction. Could this be a timer problem (I am unfortunately a newbie and really don't understand the timers.)
Motor A works fine so this tells me the code is probably not the problem.
Please, does someone have some advice for me on this!!!

I attach the code:

#define SpeedA 10 //left motor is A
#define DirectionA 12
#define SpeedB 11 //right motor is B
#define DirectionB 13

#define MoveSpeed 150
#define SpeedAdjustment 0

void setup() {
delay(5000);
}

void loop() {
Forward(2000);
delay(500);
//Backward(2000);
delay(500);
//TurnRight(500);
delay(500);
//TurnLeft(1000);
delay(500);
//SpinRight(500);
delay(500);
//SpinLeft(1000);
delay(500);
}

/-------( DO NOT EDIT, THIS IS THE FUNCTIONS AREA FOR MOTOR CONTROL )--------------------/
void Forward(int howLong)
{
digitalWrite(DirectionA,HIGH);
digitalWrite(DirectionB, HIGH);
analogWrite(SpeedA, MoveSpeed);
analogWrite(SpeedB, MoveSpeed);

delay(howLong);
Stop();
}

/---------------------------/
void Backward(int howLong)
{
digitalWrite(DirectionA,LOW);
digitalWrite(DirectionB, LOW);
analogWrite(SpeedA, MoveSpeed);
analogWrite(SpeedB, MoveSpeed);
delay(howLong);
Stop();
}

/---------------------------/
void Stop()
{
digitalWrite(DirectionA,LOW);
digitalWrite(DirectionB, LOW);
analogWrite(SpeedA, 0);
analogWrite(SpeedB, 0);
}

/---------------------------/

void TurnLeft(int howLong)
{
digitalWrite(DirectionA,HIGH);
digitalWrite(DirectionB, HIGH);
analogWrite(SpeedA, 0);
analogWrite(SpeedB, MoveSpeed);
delay(howLong);
Stop();
}

/---------------------------/
void TurnRight(int howLong)
{
digitalWrite(DirectionA,HIGH);
digitalWrite(DirectionB, HIGH);
analogWrite(SpeedA, MoveSpeed);
analogWrite(SpeedB, 0);
delay(howLong);
Stop();
}

/---------------------------/

void SpinRight(int howLong)
{
digitalWrite(DirectionA,HIGH);
digitalWrite(DirectionB, LOW);
analogWrite(SpeedA, MoveSpeed);
analogWrite(SpeedB, MoveSpeed);
delay(howLong);
Stop();
}

/---------------------------/
void SpinLeft(int howLong)
{
digitalWrite(DirectionA,LOW);
digitalWrite(DirectionB, HIGH);
analogWrite(SpeedA, MoveSpeed);
analogWrite(SpeedB, MoveSpeed);
delay(howLong);
Stop();
}
/---------------------------/

//( THE END )**

HI anybody!

I am still trying to solve this problem.
I have a Fundumoto shield which is for controlling motors of all kinds. It uses the pins 10,11,12 and 13 for the motors speed and direction.

However as soon as I attach another component like a servo or a IR remote then the right motor stops working entirely. The right motor B uses pin 11 for speed an pin 13 for direction.
I am wondering if this could have anything to do with timers, and if there is any way around this.

The library I use for the IR remote is Ken Shirriff's library.

Is this perhaps what is interfering with my pin 11 or pin 13?

Please help. It has been months ago that I started this investigation and I really dont know where to go from here.

IR library uses timer2 which is needed for PWM on pins 3 and 11, if you manage to change it to use timer1 than the motor A would not work because timer 1 controls pins 9 and 10...

What I ended up using is IRLremote library from NicoHood, it doesn't support as much protocols but there is no headache with timer conflicts because it uses attachInterrupt. And it uses less memory so win-win.

For anyone struggling to find details about this shield I found another page with very detailed info L298P Motor Driver Shield - ProtoSupplies

Thank you IgorX

This sounds like very useful advice.
In the meantime I got around the problem by using an Arduino mega (not the UNO), which has more timer pins so that I had an extra timer for the third component.
I will definitely try Nico Hoods library.