Motor bremsen mit L298N Modul von SainSmart - möglich?

Hallo,

Ist es möglich einen DC-Motor mit dem L298N Motor Treiber Modul von SainSmart zu bremsen?

Ich habe einen Arduino Uno Rev 3, die 4WD Roboterplatform von SainSmart und das oben genannte L298N Modul.

Ich bin davon ausgegangen dass wenn ich beide Einganspins eines Motors auf LOW (oder HIGH) setze der Motor kurzgeschlossen wird und dadurch abgebremst wird, leider funktioniert das nicht.

Ist es mit dem L298N Modul überhaupt möglich einen Motor abzubremsen? und wenn ja was mache ich falsch?

Viele Grüße

Simon

hier noch der Programmcode:

int foreward = HIGH;
int backward = LOW;

int MRa = 7; //conected to pin in1 on the L298N Module
int MRb = 8; //conected to pin in2 on the L298N Module
int MLa = 2; //conected to pin in4 on the L298N Module
int MLb = 4; //conected to pin in3 on the L298N Module

int speedLeft = 3; //conected to pin ENA on the L298N Module
int speedRight = 9; //conected to pin ENB on the L298N Module



void setup()
{
 pinMode(MRa, OUTPUT);
 pinMode(MRb, OUTPUT);
 pinMode(MLa, OUTPUT);
 pinMode(MLb, OUTPUT);
 
 pinMode(speedLeft, OUTPUT);
 pinMode(speedRight, OUTPUT);
}


void loop()
{
drive(foreward, 100);
delay(10000);
brake();
delay(5000);
}



void drive(int Direction, int Speed)
{
 digitalWrite(MLa, Direction);
 digitalWrite(MLb, !Direction);
 digitalWrite(MRa, Direction);
 digitalWrite(MRb, !Direction);

 analogWrite(speedLeft, Speed);
 analogWrite(speedRight, Speed);
}

void brake()
{
 digitalWrite(MLa, HIGH);
 digitalWrite(MLb, HIGH);
 digitalWrite(MRa, HIGH);
 digitalWrite(MRb, HIGH);

 analogWrite(speedLeft, 255);
 analogWrite(speedRight, 255);
}

Seite 6: https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf

Setzte mal den Enable Pin auf High statt da PWM zu machen

Enable auf Low bremst den Motor auch aber auf andere Weise: http://forum.arduino.cc/index.php?topic=235720.0

Enable muß auf HIGH (5V) sein damit der Motor angesteuert wird, Die Pin-Brücken zwischen EN und +5V auf dem Driver machen das automatisch. Wenn Du IN1 und IN2 auf die Gleiche Pegel gibst da wird der Motor kurzgeschlossen. Wenn Du zusätzlich EN benutzt muß dieses Pin während des Bremsen auf HIGH sein. Ein PWM moduliert die Bremswirkung. Grüße Uwe

Hallo,

vielen Dank für die schnellen Antworten.

bei PWM den Wert 255 einstellen müsste doch die gleiche Wirkung haben wie die Jumper oder?

habe dann versuchsweise mal die Jumper wieder drauf gemacht, habe aber keinen klaren Unterschied bemerkt.

Der Arduino und das L298N Modul haben getrennte Stromkreise. Ich habe natürlich Masse vom Motorstromkreis mit einem Massepin auf dem Arduino verbunden, das sollte ja reichen oder?

So habe jetzt eben das ganze nochmal ohne Bremse getestet also EN jeweils auf LOW und und die beiden anderen Pins jeweils auf HIGH und LOW, wie beim fahren, dabei musste ich feststellen das der Roboter so eindeutig noch ein (wenn auch eher kleines) Stück weiter rollt.

Dann ist die Wirkung dieser Motorbremse wohl eher ziemlich gering? Somit ist es dann wohl am sinnvollsten einfach mit einzuberechnen dass der Roboter noch ein Stück weiterrollt?

zum Schluss noch eine Frage: Wenn ich die Jumper drauf lasse kann ich dann die Geschwindigkeit der Motoren per PWM jeweils über den Pin steuern der sonst auf HIGH ist während entsprechend der andere auf LOW ist, so das ich insgesamt nur 4 Pins benötige (dafür alle mit PWM)?

Nochmal vielen Dank für die Hilfe.

Viele Grüße Simon