Aktor über PWM steuern

Hallo :slightly_smiling_face:
Ich stehe momentan vor einem Problem, bei dem ich ein wenig Hilfe bräuchte! :roll_eyes:

Zum generellen Plan:
Ich habe einen Aktor (Solenoid tubular type 12VDC 16.67N 10W - Transmotec) und ein Arduino UNO sowie ein Arduino Motor Shield (benutze gerade allerdings nur das UNO) und möchte diesen mithilfe von PWM steuern. Also ich möchte eine gewisse Stromstärke einstellen können und der Aktor soll dann ganz ausfahren und dort auch bleiben. Durch herunterdrücken des Aktors möchte ich dann ein Feedback des Drucks erlangen.

Um mich an die ganze Sache heranzutasten habe ich erst einmal folgendes Video mit einer LED ausprobiert, da hat auch alles gut funktioniert (Pulsweitenmodulation mit dem Arduino - YouTube).
Wenn ich dieses jedoch auf meinen Motor/Aktor projizieren möchte, funktioniert das ganze nicht.

Den dort verwendeten Code habe ich zu folgendem Code für meinen Aktor abgewandelt:

#define MotorPin  3
char prozent;

void setup()
{
  pinMode(MotorPin, OUTPUT);
}

void loop()
{
  // langsam heller werden lassen (prozent = Duty Cycle)
  for (prozent = 0; prozent <= 100; prozent++)
  {
    // setze die Pulsweite (zwischen 0 und 255)
    analogWrite(MotorPin, (255 * prozent / 100));
    delay(30);
  }

  for (prozent = 100; prozent >=0; prozent--)
  {
    analogWrite(MotorPin, (255 * prozent / 100));
    delay(30);
  }
}

Der Aktor bewegt sich auch, allerdings wirklich nur wenige Millimeter, man muss schon wirklich genau darauf achten.

Du kannst mit PWM keine Stromstärke einstellen.

Wie hast du denn deinen Aktor am Uno angeschlossen ?

Ok dann habe ich da etwas falsch verstanden. Ich weiß aber auf jeden Fall, dass ich es über die PWM machen muss!

Ich habe den Aktor an den digitalen Eingang 3 und an GND angeschlossen.

Dann lies dir mal genau das Datenblatt des Aktors durch.
Der braucht mehr Spannung wie der Uno dir liefert.
Und der benötigte Strom wird sicher den Uno nicht lange leben lassen.

Da wird bestimmt ein Transistor nötig sein.

Ich habe noch ein Labornetzgerät hier stehen, das habe ich mit 12V schon mal angeschlossen.
Mit dem Motor Shield habe ich es auch schon ausprobiert, allerdings mit dem selben Ergebnis.

Komme ich also um einen Transistor nicht rum?

Du sprichst in Rätseln.
Was für ein Netzteil ? Welchen Strom liefert das ?
Was für ein Motorshield ? Wie hast du das angeschlossen ?
Was für ein Ergebnis ?

Bitte mal genauere Informationen. Oder darf ich weiter raten ?

Entschuldigung..

Ich habe ein BASETech BT-305 und habe dieses mit 12V und 1,5A angeschlossen.
Das Motorshield habe ich auf das Arduino aufgesteckt und den Aktor dann genauso an die Pins 3 und GND angeschlossen.
Das bisherige Ergebnis ist, dass der Aktor sich hoch und runter bewegt, allerdings sehr langsam und es nutzt nicht den gesamten Hub aus...

Ich kenne das Motorshield nicht. Bitte einen Link posten.
Evtl. ist das ja nicht für deinen Magneten geeignet.

Das ist das Motor Shield: Arduino Motor Shield Rev3 | Arduino Official Store

Warum machst Du nicht da weiter, wo Du angefangen hast?

Was hat Dir denn da nicht gefallen? Da waren schon 44 Beiträge!!

Da du aber keinen Motor hast, vermute ich, es geht nicht mit dem Shield.
Ein Transistor sollte da reichen.

Evtl. können aber andere User mehr darüber sagen.

Ja ich war da auch soweit zufrieden und es der Aktor hat auf das Poti ja auch angesprochen.
Allerdings habe ich zwischenzeitlich gemerkt, dass das die falsche Herangehensweise ist.
Ich muss erstmal schauen, dass der Aktor so läuft wie ich das brauche und das man als Endergebnis den Aktor dann runterdrückt und den Widerstand am Finger merkt. Dafür brauche ich also erst einmal die PWM, deshalb habe ich das mit dem Poti nochmal zurückgestellt.

Vieleicht weil es ein Netzteil ist:
Controllable output voltage ................................ 0 - 30 V/DC
Controllable output current ................................. 0 - 5 A
Duration of uninterrupted operation ................... max. 8 h

Das man komischerweise nur 8 Stunden am Stück betreiben darf.

Wird zB vom großen C verkauft

Grüße Uwe

Das Problem ist das selbe wie vorher.
Es ist doch egal ob Du PWM mit Code oder mit Code und Poti machst.
Jetzt hast wenigstens ein Netzteil mit 12V. Ob das shield noch unbeschadet ist, solltest Du wissen und nicht schätzen.

Ich für meinen Teil fühle mich jedenfalls verarscht, wenn nach etlichen Posts erst garnichts mehr kommt und dann mit einem neuen Thraed genau da weiter gemacht wird.

Und ich habe schon befürchtet, mein Google ist kaputt.

Der TO schafft es mal wieder.....

Der Elektromagnet braucht 12V und 0,83A. Das kann kein Arduino-Pin liefern. so machst Du den Arduino kaputt. Die Ansteuerungselektronik braucht damit der Elektromagnet sie nicht kaputtmacht eine Freilaufdiode. (Diode antiparalell zum Magneten geschaltet).

Wo hast Du die 12V angeschlossen?

Arduino, Motorschield drauf und trotzdem den Elektromagneten an pin 3 angeschlossen?

Prinzipiell kann ein L298, wie auf dem genannten Motorshield verbaut schon einen Elektromagneten ansteuern aber dort ist der L298 etwas komisch beschaltet/angesteuert.
Auch braucht es eine Ansteuerung der Pin DIR A und BREAK A
Auch ist der L298 ein sehr alter Treiber der wegen der BJT Ausgangsstufen bei 1A zwischen 1,7 und 3,2V abfallen und somit viel weniger am Magneten ankommt.

Ohne Eingriffe auf dem Motorshield schließt der L298 den Elektromagneten bei jedem LOW Teil der PWM kurz und entmagnetisiert ihn so. Schau Dir mal das Schaltbild an. https://www.arduino.cc/en/uploads/Main/arduino_MotorShield_Rev3-schematic.pdf

VIel Einfacher ist ein einfacher LL-MOSFET mit Freilaufdiode.
Grüße Uwe

Ich hatte doch immer geantwortet, als dann aber keine Antwort mehr kam wollte ich auch nicht wieder nachfragen und nerven.

Danke für die ausführliche Antwort. Scheinbar habe ich also die falschen Komponenten um das zu Erreichen, was ich vorhabe. Macht die Sache für mich nicht einfacher, da mir die ganze Materie nicht besonders leicht fällt.

Also zusätzlich noch ein MOSFET mit Diode besorgen und das ganze dann nochmal versuchen? Habe solch ein Video dazu gefunden: Arduino und MOSFET steuern Gleichstrommotor - YouTube

Wieso zusätzlich ?
Das Motorshield brauchst du nicht, nur zum Arduino den Mosfet und eine Freilaufdiode. So hatten wir dir das geschrieben. Und Schaltungen mit dem LL-Mosfet (N-Channel) gibt es massenweise im Web, da brauchst du die komischen Videos nicht.
Meist sind die eh Müll.
Leider fehlt im obigen Bild die Freilaufdiode. Wenn ich später am PC sitze, poste ich noch ein korrektes Bild. Dies z.B.:
N_LL_Mosfet_GND

Danke für die Antwort!
Ich werde mir dann jetzt erstmal einen solchen MOSFET und eine Diode besorgen.
Hoffe, dass mein Problem damit dann behoben ist und es mit dem PWM dann klappt.