Reduzierte Motorleistung bei Verwendung des Motorshields

Hallo zusammen,

nach ein paar Arduino-Projekten wollte ich mich nun einem Projekt mit dem Motor-Shield widmen. Dabei will ich stromgeregelt zwei Pumpen ansteuern.

Die Pumpen haben eine Nennspannung von 12V und eine Stromaufnahme von max. 700 mA.

Bei der Umsetzung habe ich folgendes bemerkt:
Betreibe ich die Pumpe über das Motor-Shield und übergebe am PWM-Pin den Wert 255 (dauerhaft an, max. Leistung), ist die Leistung der Pumpe stark reduziert. Das Wasser plätschert nur leicht aus dem angeschlossenen Schlauch.
Betreibe ich die Pumpen direkt am 12V-Netzteil (also ohne Arduino,bzw. Motor-Shield oder anderer Ansteuerung dazwischen), spritzt das Wasser sehr kräftig aus dem Schlauch.

Woran kann die Differenz liegen?

Versorgt wird das Ganze über den Rundstecker des Arduino. Die Spannung am Motor-Shield habe ich während des Betriebs mit einem Multimeter gemessen und keine Spannungseinbrüche festgestellt (Messpunkt Vmot gegen GND).

Ich hoffe ihr könnt mir hier weiterhelfen.
Alternativ könnte ich natürlich das Motor-Shield gegen ein Relais austauschen und auf die Stromregelung verzichten, aber das möchte ich eigentlich vermeiden. Alleine schon wegen der techn. Herausforderung :).

Viele Grüße
Johannes

Verwendete Pumpen:

Verwendetes Motor Shield:

Huba90:
Versorgt wird das Ganze über den Rundstecker des Arduino.

Willst Du damit ausdrücken, dass Du die Pumpen über den Arduino versorgst?
Welchen MOSFET benutzt Du (Link)?

Gruß Tommy

Tommy56:
Willst Du damit ausdrücken, dass Du die Pumpen über den Arduino versorgst?
Welchen MOSFET benutzt Du (Link)?

Gruß Tommy

Er hat

Huba90:
Verwendete Pumpen:
Wasserpumpe mit Gummihalterung GAOTU, 12 V-

Verwendetes Motor Shield:
Arduino Motor Shield Rev3 — Arduino Official Store

geschrieben.

@Huba90
Auf dem Shield ist ein L298, ein uraltes IC mit NPN Leistungstransistoren. Der Spannungsabfall an den Ausgangstransitoren ist bis zu 3V.

  1. Miß mal die Spannung an der Pumpe (zB an den Ausgangsklemmen des Shields)
  2. wenn die Pumpen nur in eine richtung drehen soll dann nimm einen Logic-Level N Mosfet zB IRLZ44.

Grüße Uwe

Erstmal danke für die Rückmeldungen.
Ich habe gerade den Spannungsverlauf an den Motorkontakten mit einem Oszilloskop gemessen (siehe Anhang).

Anscheinend gibt es tatsächlich einen Spannungsabfall von ca. 1,5V.

Edit:
Hier noch der Code mit dem ich getestet habe:

unsigned char PWM;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(PIN_BUTTON1,INPUT_PULLUP);
  pinMode(PIN_PUMPE1_PWM,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(!digitalRead(PIN_BUTTON1))
    PWM=255;
  else
  {
    PWM=0;
  }
  analogWrite(PIN_PUMPE1_PWM,PWM);
  //Serial.println(map(analogRead(A0),0,1023,0,2000));
}

Ist der Spannungsverlauf plausibel bei einem PWM-Signal mit DC=1?

Viele Grüße
Johannes

1,5V sind noch wenig. Ich habe mit mehr erwartet.
Nimm einen MOSFET.
Grüße Uwe

Hi

Was ist damit?

uwefed:
2) wenn die Pumpen nur in eine richtung drehen soll dann nimm einen Logic-Level N Mosfet zB IRLZ44.

MfG

Hallo

das was man auf dem Oscar Bild sieht ist etwa 50% des PWM Signals. bei 100% ist der Pegel fast ständig auf dem H Wert.

wie sieht das Signal von A0 aus

So, jetzt hab ich's:
ich hab den DIR_A-Pin auf einen festen Pegel gesetzt, jetzt klappts auch mit der Leistung und der Spannungsverlauf am Motor ist dauernd auf 10V. Der Pin hat anscheinend getoggelt.

Den Tipp mit dem MOSFET nehm ich mir für zukünftige Projekte aber gerne zu Herzen :slight_smile:

Mfg
Johannes