Motorsteuerung

Hallo zusammen.

ich möchte bei einem DC-Motor die Drehzahl regeln.
Kann ich über einen Pulldown-Widerstand den PWM-Port beim Hochfahren auf Null ziehen, um ein ungewolltes Anfahren des Motors zu vermeiden?

Wäre 1k5 ok?

Danke für die Beantwortung dieser Anfängerfrage.

Grüße vom Hausknecht

Welche Leistungselektronik verwendest Du zum Ansteuern des Motors? Läßt diese den Motor tatsächlich anfahren, wenn der Ausgang des Arduinos noch hochohmig ist? Ich halte das für unwahrscheinlich, daher die Frage.

Damit willkommen im Forum :slight_smile:

Ich verwende ein Modul "DC 6~90V 15A Drehzahlregler".
Der Motor läuft für etwa 1 sec. an.
Den PWM-Port habe ich im void setup als erstes als Ausgang definiert und auf 0 gesetzt.

Wie löst man das Problem? Die Ports scheinen beim Einschalten auf high zu gehen. Ich könnte mit einem Transistor den Port vom Drehzahlregler trennen und erst nach dem Hochfahren verbinden.

Ich vermute, da gibt es aber eine viel einfachere Lösung.

Hausknecht:
Ich verwende ein Modul "DC 6~90V 15A Drehzahlregler".

Ein Link wäre aussagekräftiger, denn da gibt es weltweit sicherlich mehr als einen Typ, oder?

Hausknecht:
Die Ports scheinen beim Einschalten auf high zu gehen.

Nein, sie gehen auf hochohmigen Eingang. Welchen Port an welchem Arduino verwendest Du? Bitte zeige Deinen Testsketch.

Das Problem ist von LOW-schaltenden Relais bekannt. Da setzt man den Pin HIGH und erst dann auf OUTPUT. Kannst Du ja mal probieren, hat aber eigentlich nichts mit PWM zu tun.

Mit dem Link einfügen hab ich Schwierigkeiten. Der Link füllt eine halbe Seite.
Wenn du in der Bucht nach "DC 6~90V 15A Drehzahlregler" suchst, dann erscheint er.

Ich verwende einen Nano und D3 liefert das PWM-Signal für den Drehzahlregler.

Resette ich den Nano, dann messe ich am D3 kurzzeitig 0,8 V. Auch wenn ich den Nano ganz von allen Anschlüsse löse ist das so.

Das reicht, um den Motor zu drehen. Ich bräuchte beim Hochfahren 0 V. Mit dem Programm hat das nach meiner Meinung nichts zu tun.
I

Hausknecht:
Mit dem Link einfügen hab ich Schwierigkeiten. Der Link füllt eine halbe Seite.

Soll er doch; Ist kein Problem.

Hausknecht:
Mit dem Programm hat das nach meiner Meinung nichts zu tun.
I

Dein Wort in Gottes Ohr.

Grüße Uwe

https://www.ebay.de/itm/DC-6-90V-15A-Motordrehzahl-Drehzahlregler-Steuermodul-Motor-Kontroller-Schalter/142876991885

Das ist ein Link. Es reicht der Teil von "https" bis vor das Fragezeichen.

Quelle

Ich sehe ein Poti, aber keinen Eingang für PWM, wo hast Du den Arduino angeschlossen?

Hausknecht:
Wäre 1k5 ok?

Wir können das Pferd aber auch von der anderen Seite her aufzäumen: So ein Pulldown-Widerstand wird den Arduino-Ausgang nicht zerstören. Also probiere es aus :slight_smile:

Eine Rückmeldung fände ich gut.

Vielen Dank für eure Hilfe.
Dieses Modul wird über eine Steuerspannung zwischen 0 und 5 V gesteuert. Ob die 5 V über ein Poti erzeugt , oder über einen PWM-Port bereitgestellt wird, ist unerheblich.

Wenn ich ein x-beliebiges Beispielprogramm starte, dann habe ich auch an dem Port D3 eine kleine Spannung von etwa 0,8 V.
Also solange ich den Port nicht auf 0 setze liegt diese kleine Spannung an.

Da ich in meinem Programm viele Bibliotheken einbinde, dauert es viele, viele Millisekunden, bis der Port zurückgesetzt wird.

Gibt es eine Möglichkeit ganz am Anfang eines Sketches den Port auf 0 zu setzen (noch bevor ich Bibliotheken einbinde)?
Den analogWrite-Befehl hat bei mir ganz am Anfang des Programms zu einer Fehlermeldung geführt.

Hausknecht:
Gibt es eine Möglichkeit ganz am Anfang eines Sketches den Port auf 0 zu setzen (noch bevor ich Bibliotheken einbinde)?

Die Bibliotheken werden beim Compilieren eingebunden, mit dem Verhalten zur Laufzeit hat das nichts zu tun.

Nach Reset bremst der Bootloader, der auf ein neues Programm wartet, bis das im Speicher vorhandene startet. Du könntest den Bootloader entfernen. Der PullDown wäre aber einfacher.

Hausknecht:
Vielen Dank für eure Hilfe.
Dieses Modul wird über eine Steuerspannung zwischen 0 und 5 V gesteuert. Ob die 5 V über ein Poti erzeugt , oder über einen PWM-Port bereitgestellt wird, ist unerheblich.
.....

Da bist du aber schwer im Irrtum.
Ein Poti liefert in diesem Fall eine reine Gleichspannung, was der PWM-Ausgang nicht macht.
Das sagt schon der Name "PWM".

Dieser liefert eine gepulste Spannung von 5 Volt und ist damit für dein Modul direkt nicht zu verwenden.

Hallo Dieter,
in der Beschreibung des Moduls steht:

Der DC-Motor-Drehzahlregler ermöglicht die Drehzahlregelung eines Gleichstrommotors mit einer pulsweitenmodulierten (PWM) Gleichspannung.

Ich nehme an, dass im Modul die Rechteckspannung durch einen Kondensator geglättet wird.

Die Drehzahlregelung funktioniert auch anstandslos.
Das Problem ist nur die kurze Zeit beim Starten, bis der Ausgang auf 0 gesetzt wird.

@Agmue ich könnte mir aber vorstellen, dass durch die Bibliotheken irgend welche Initialisierungsroutinen durchführen, die Zeit kosten - aber das ist nur eine Vermutung von mir. Den Bootloader wollte ich nicht entfernen, sonst könnte ich nicht einfach mal schnell ne Änderung aufspielen.

Ich versuchs mit einem pulldown-Widerstand und werde berichten.

Vielen Dank für eure Hilfe.

Grüße Hans

Hausknecht:
Hallo Dieter,
in der Beschreibung des Moduls steht:

Der DC-Motor-Drehzahlregler ermöglicht die Drehzahlregelung eines Gleichstrommotors mit einer pulsweitenmodulierten (PWM) Gleichspannung.

Ich nehme an, dass im Modul die Rechteckspannung durch einen Kondensator geglättet wird.
.....

Ok, wenn es dann auch funktioniert.
Dann schalte doch einfach eine Silizium-Diode in Reihe, damit wird die Spannung um 0,7 Volt reduziert.
Da siehst du, ob es funktioniert.

Hi

Zum eBay-Link, ich mache Das immer so:
url=http://www.ebay.de/i/-Auktionsnummer-

Zu Deinem Problem:
Versuche einen Pull-Down, also einen Widerstand, Der zwischen Pin und GND liegt.
Dieser zieht Dir den Pegel nach GND runter (deshalb auch der Name: pull(zieh)down(runter) ...).
Wähle Diesen nicht zu klein, da Dieser die ganze Zeit Strom nach GND ableitet - bei 5V und 1K wären Das immerhin 5mA.

MfG

Hausknecht:
Vielen Dank für eure Hilfe.
Dieses Modul wird über eine Steuerspannung zwischen 0 und 5 V gesteuert. Ob die 5 V über ein Poti erzeugt , oder über einen PWM-Port bereitgestellt wird, ist unerheblich.

Wenn ich ein x-beliebiges Beispielprogramm starte, dann habe ich auch an dem Port D3 eine kleine Spannung von etwa 0,8 V.
Also solange ich den Port nicht auf 0 setze liegt diese kleine Spannung an.

Da ich in meinem Programm viele Bibliotheken einbinde, dauert es viele, viele Millisekunden, bis der Port zurückgesetzt wird.

Gibt es eine Möglichkeit ganz am Anfang eines Sketches den Port auf 0 zu setzen (noch bevor ich Bibliotheken einbinde)?
Den analogWrite-Befehl hat bei mir ganz am Anfang des Programms zu einer Fehlermeldung geführt.

Daß Du statt dem Poty ein PWM Signal einspeisen kannst das weißt vieleicht Du; in der Beschreibung des Moduls steht das nicht.

Ein Include einer Bibliothek verbraucht keine Einschaltzeit im Sketch.
Im setup() kannst Du als erstes das Pin als Ausgang definieren und auf LOW legen. Das ist der früheste Moment wo du das machen kannst. Vorher ist der Pin ein Ausgang und die Spannung hängt von der Außenbeschaltung ab.

Du sparst einige Sekunden wenn Du den Bootloader auf dem Arduino löscht. (upload über ISP mit ISP-Programmierer oder ein anderer Arduno mit ISP-Sketch).
Grüße Uwe

uwefed:
Daß Du statt dem Poty ein PWM Signal einspeisen kannst das weißt vieleicht Du; in der Beschreibung des Moduls steht das nicht.

Ein Include einer Bibliothek verbraucht keine Einschaltzeit im Sketch.
Im setup() kannst Du als erstes das Pin als Ausgang definieren und auf LOW legen. Das ist der früheste Moment wo du das machen kannst. Vorher ist der Pin ein Ausgang und die Spannung hängt von der Außenbeschaltung ab.

Du sparst einige Sekunden wenn Du den Bootloader auf dem Arduino löscht. (upload über ISP mit ISP-Programmierer oder ein anderer Arduno mit ISP-Sketch).
Grüße Uwe

In der Beschreibung steht:

Der DC-Motor-Drehzahlregler ermöglicht die Drehzahlregelung eines Gleichstrommotors mit einer pulsweitenmodulierten (PWM) Gleichspannung.

Das verstehe ich so, dass das Modul auch durch ein PWM-Signal gesteuert werden kann. Und es funktioniert ja auch.

Morgen versuche ich den PullDown-Widerstand.

Grüße Hans

Also ich würde es auch so verstehen das die Steuerung PWM zum Motor ausgibt und nicht mit PWM angesteuert wird, aber es scheint ja grundsätzlich zu funktionieren.( könnte an dem einen Elko liegen)

Generell würde ich aber den Beschreibungen nicht blind vertrauen wenn es Produkte außerhalb von Deutschland geht. Beim Übersetzen ins Deutsche passieren oft Fehler, ich hatte schon mal was bestellt was laut Beschreibung "explodiert" obwohl eigentlich "expandiert" gemeint war. :stuck_out_tongue_closed_eyes:

Gruß

Hausknecht:
@Agmue ich könnte mir aber vorstellen, dass durch die Bibliotheken irgend welche Initialisierungsroutinen durchführen, die Zeit kosten - aber das ist nur eine Vermutung von mir.

So betrachtet, schließe ich mich Deiner Vermutung an. Das könntest Du umgehen, in dem Du ohne IDE programmierst, denn dann hast Du das Verhalten nach Reset voll unter Kontrolle. Das habe ich aber nur wegen der Vollständigkeit erwähnt, obwohl ich einen kenne, der sowas macht.

Ihr habt recht, ich saß auf dem Schlauch. In der Beschreibung des Drehzahlreglers steht, dass der Motor mit einer Rechteckspannung gespeist wird. Nicht wie ich annahm, dass man die Steuerspannung per PWM erzeugen kann. Aber es funktioniert und das ist die Hauptsache.

Ich hab 1k als PullDown angebracht und es funktioniert genau so, wie ich wollte.

Problem gelöst - super.

Vielen Dank, dass Ihr Euch die Zeit genommen habt und mir weiter geholfen wurde.

Grüße Hans

Scherheinz:
Also ich würde es auch so verstehen das die Steuerung PWM zum Motor ausgibt und nicht mit PWM angesteuert wird, aber es scheint ja grundsätzlich zu funktionieren.( könnte an dem einen Elko liegen)

Es gibt viele Lieferanten für dieses Modul. Bei einem anderen sieht man die Unterseite der Platine. Der große Elko hängt an der Betriebsspannung des Moduls. Der 2. Elko hängt direkt an der Betriebsspannung für den IC. Das eine Dreibein das zu den andere 2 um 90 Grad verdreht ist, ist ein Spannungsregler. Am Ausgang hänngt der Elko.

Das es funktioniert, ist bei niedrigen PWM Frequenzen eigentlich logisch. Intern erzeugt das Ding 16kHz PWM.
Wenn ich jetzt von außen mit einem niederfrequenten Signal komme und das eben kurz 5V und dann wieder 0V hat, bringt das 16 kHz PWM Signal eben 100% am Ausgang und dann wieder 0%. Das interne PWM Signal wird damit mehr oder weniger deaktiviert.

Gruß, Jürgen