Forum: Mikrocontroller und Digitale Elektronik 12 Volt DC Motor über WS2811 Chip steuern


von K. G. (k_g)


Lesenswert?

Hallo verehrte Foristen,

bin noch neu im Thema und deshalb auf Eure Expertise angewiesen. Für 
Eure Unterstützung und Anregungen deshalb an dieser Stelle schon mal 
einen herzlichen Dank.

Wie bei den bekannten LEDs-Stripes möchte ich eine einfache Verdrahtung 
mehrerer DC-Motoren erreichen. Die bekannten 16-Kanal PWM Platinen auf 
PCA9685 Basis (wie z.B. 
[https://www.digikey.de/de/products/detail/sunfounder/TS0185/18668613 
Link]  möchte ich ausdrücklich nicht nutzen, da diese für mein Vorhaben 
schon von der Motorspannung und -leistung (12 Volt DC; 1,7 Ampere 
Dauerstrom; vermutlich deutlich höherer Anlaufstrom, externe Kühlung ist 
gegeben) und eben auch hinsichtlich dem Verdrahtungsaufwand nicht 
geeignet sind. Die Ansprüche an die Steuerbarkeit der Motoren sind 
gering - es muss kein High-End Motorcontroller werden.

Auch die Entwicklung einer eigenen Platine kommt langfristig durchaus in 
Betracht! Hierzu gab es bereits mal einen interessanten 
Beitrag "WS2811 Zweck entfremden"]]. Leider wurde die 
Herangehensweise darin letztendlich aber nicht geschildert.

Wie könnte man sich dem nähern?
- WS2811 Chips 
(https://pixel-imperium.de/ws2811-rgb-led-12mm-pixel-platine-5v)
- H-Brücken (wie z.B. 
https://www.amazon.de/Duales-MOSFET-Schaltmodul-400W-High-Power/dp/B092D3YZK3/ref=sr_1_20?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=33MPXYXS9B0XG&keywords=i2c+pi+motor&qid=1703698690&s=industrial&sprefix=i2c+pi+motor%2Cindustrial%2C77&sr=1-20)
- was noch?

Ginge das? Und wie verdrahten und ansprechen? Mir ist ist im ersten 
Schritt wichtig was die Grundbausteine dazu sein würden und ob jemand 
von Euch sowas entwickeln könnte.

Besten Dank Karlheinz

: Bearbeitet durch User
von Daniel D. (danielduese)


Lesenswert?

Würde ich nicht empfehlen.
Nimm besser Shiftregister und verkette diese, dann hast du auch nur 3 
bis 4 Steuerleitungen über die sich alle Motoren ansprechen lassen. Wenn 
du ohnehin eigene Platinen machen lässt, kannst du natürlich deine 
H-Brücken mit Mosfets bauen.

: Bearbeitet durch User
Beitrag #7568085 wurde vom Autor gelöscht.
von K. G. (k_g)


Lesenswert?

Lieber Daniel,

besten Dank für den interessanten Tipp. Werde ich mir gleich noch 
genauer ansehen, was es damit auf sich hat. Vielleicht die bessere 
Lösung?

Hier wollte ich noch einen Link teilen, den ich gestern vergessen hatte 
- leider recht kurz geraten, aber jemand hatte mal ein Video über eine 
Motorsteuerung mit einem WS2811 + L298N auf Youtube hochgeladen: 
https://www.youtube.com/watch?v=9UADsbATeQQhttps://www.youtube.com/watch?v=9UADsbATeQQ

Grüße Karlheinz

von Rainer W. (rawi)


Lesenswert?

K. G. schrieb:
> L298N

Ein L298 ist technologiemäßig ein Dinosaurier aus der Famile der 
Motorsteuer-ICs mit relativ hohen Spannungsverlusten und besteht im 
Wesentlichen aus zwei H-Brücken mit BJTs.
Ob ein L298 für deinen Motor in Frage kommt, hängt vom Anlaufstrom ab. 
Bei einem Motor mit 1.7A dürfte der allerdings ziemlich sicher 
zweistellig sein und damit weit außerhalb der Reichweite des ICs.

von K. G. (k_g)


Lesenswert?

Guten Morgen Rainer,

Dank für Deinen Input. Welcher Chip wäre "zeitgemäß" oder zumindest 
geeigneter?

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

K. G. schrieb:
> Leider wurde die Herangehensweise darin letztendlich aber nicht
> geschildert.

Mit den WS2812 koenntest Du einen diskreten Optokoppler aufbauen. D.h. 
die LED strahlt auf einen Phototransistor. Dann waere es galvanisch 
getrennt.
Es waere auch über den Stromverbrauch der LED ein Schalttransistor 
anzusteuern moeglich.

Sowas wuerde man bauen als Erklaermodell zur Motorsteuerung und so 
langsam drehen lassen, dass das blinken, was das Schalten eines 
Transistors anzeigt, noch mit den Augen verfolgt werden kann. Die Farbe 
kann man noch hinzunehmen um das Taktverhaeltnis darzustellen. Rot fuer 
10%, blau fuer 90%, usw. fuer den DC Motor.

von Rahul D. (rahul)


Lesenswert?

K. G. schrieb:
> Dank für Deinen Input. Welcher Chip wäre "zeitgemäß" oder zumindest
> geeigneter?

ein MOSFET.
Mit dem WS2811 kannst du in der einfachsten Schaltung nur die Drehzahl 
in eine Richtung steuern.

von K. G. (k_g)


Lesenswert?

Danke Rahul, tatsächlich würde der Motor nur in eine Richtung gesteuert 
werden müssen. Drehzahlbereich ca. 40-100%.

von Rahul D. (rahul)


Lesenswert?

Zum Thema "Grundlagen zum Gleichstrommotor":
https://spacehal.github.io/docs/motor/basics

von Michael B. (laberkopp)


Lesenswert?

K. G. schrieb:
> tatsächlich würde der Motor nur in eine Richtung gesteuert werden
> müssen. Drehzahlbereich ca. 40-100%.

Kommt alle her, Salami ohne Ende !

K. G. schrieb:
> vermutlich deutlich höherer Anlaufstrom,

Finde den erst mal raus als xxx. Salamischeibe, dann kann man weiter 
sehen.

Und erkläre vielleicht, warum grosse Motoren unbedingt die 
kleinstmögliche Elektronik in Form eines WS2811 benötigen. Bei den 
Störungen die ein Motor verursacht, und dem Spannungsabfall die dessen 
Stromaufnahme auf den Leitungen bewirkt. Und dann noch ungeregelter PWM 
Drehzahlsteuerung.

von Rahul D. (rahul)


Lesenswert?

Zum Thema "Grundlagen zum Gleichstrommotor":
https://spacehal.github.io/docs/motor/basics

Michael B. schrieb:
> Finde den erst mal raus als xxx. Salamischeibe, dann kann man weiter
> sehen.

Ohmscher Widerstand im Stillstand x Betriebsspannung...

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

K. G. schrieb:

> Danke Rahul, tatsächlich würde der Motor nur in eine Richtung gesteuert
> werden müssen. Drehzahlbereich ca. 40-100%.

Dann würde ich das trotzdem keinesfalls mit WS2811+L298N machen. Denkbar 
ungeeignet. L298 bietet wenig Strom und ist sehr ineffizient, WS2811 ist 
relativ "zickig" bezüglich der Ansteuerung und braucht eine zusätzliche 
5V-Versorgung, die ebenfalls über den Bus verteilt werden müsste.

Nö, da nimmt man natürlich Schieberegister mit Latches, die 12V abkönnen 
und dann steht einem automatisch eine riesige Vielfalt hocheffizenter 
MOSFETs für den Leistungsteil zur Verfügung, die auch bei knapp 20A 
Kurzzeit-Spitzenstrom noch nicht ernsthaft in's Schwitzen geraten.

Als Schieberegister bietet sich z.B. CD4094B an. Ist zwar bezüglich der 
FET-Ansteuerung strommäßig etwas schwach auf der Brust, was hier aber 
bei entsprechender Wahl der FETs eher zum Vorteil gereicht. Dämpft die 
unerwünschten Stromtransienten und hält damit die Störabstrahlung in 
einem beherrschbaren Rahmen.

von Frank K. (fchk)


Lesenswert?

K. G. schrieb:

> Wie bei den bekannten LEDs-Stripes möchte ich eine einfache Verdrahtung
> mehrerer DC-Motoren erreichen.

In der Industrie nimmt man gerne serielle Busse wie z.B. CAN und 
versieht jeden Antrieb mit einem Controller. Dann hast Du nur 
Stromversorgung (in der Industrie meist 24V, bei größeren Leistungen 
auch 48V) und Daten.

Für Dich würde LIN in Frage kommen. Das ist billig und einfach - quasi 
ein bidirektionaler UART mit 19200 bps mit 12V oder 24V Pegel. Ein 
dreiadriges Kabel von Antrieb zu Antrieb würde reichen. (12V, GND, 
Daten).

Du bräichtest einen kleinen Controller wie z.B. AVR16DD20 oder 
PIC24F04KL100 (die klassischen AVRs kommen mit LIN nicht gut zurecht)

https://ww1.microchip.com/downloads/aemDocuments/documents/MCU16/ProductDocuments/DataSheets/PIC24F16KL402-Family-Data-Sheet-DS30001037D.pdf
https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/AVR32-16DD20-14-Prel-DataSheet-DS40002413.pdf

sowie einen LIN-Transceiver mit eingebautem Spannungsregler wie z.B.

https://www.onsemi.com/download/data-sheet/pdf/ncv7428-d.pdf

Dazu die Motorsteuerung, und das wars.

fchk

von Dietrich L. (dietrichl)


Lesenswert?

Rahul D. schrieb:
> Ohmscher Widerstand im Stillstand x Betriebsspannung...

eher I=U/R

von K. G. (k_g)


Lesenswert?

Wow - das ist doch doch was (zumindest für nen nicht so technisch 
versierten wie mich) und darum ging es mir ja vor allem. Dafür Euch 
allen schon mal herzlichen Dank für Euren umfangreichen Input.

Dann also wohl ein Schieberegister... Den Motor versuche ich mal 
professionell wegen Anlaufstrom messen zu lassen - mit meinem kleinen 
Multimeter komme ich da eher nicht weit um die Anlaufstromspitze zu 
messen.

von Rahul D. (rahul)


Lesenswert?

Frank K. schrieb:
> In der Industrie nimmt man gerne serielle Busse wie z.B. CAN und
> versieht jeden Antrieb mit einem Controller. Dann hast Du nur
> Stromversorgung (in der Industrie meist 24V, bei größeren Leistungen
> auch 48V) und Daten.

über die genaue Anwendung wurde doch noch gar nicht gesprochen.

von K. G. (k_g)


Lesenswert?

Dank für den Hinweis - es soll im Unterhaltungsbereich eingesetzt 
werden. Also hohe Anforderungen an die allgemeine und die 
Ausfallsicherheit. Ein professionelles Bussystem, das man z.B. über 
einen Nvidia Jetson steuern kann. Aktuelle Basis ist noch ein einfacher 
Raspberry Pi über I2C.

von Dietrich L. (dietrichl)


Lesenswert?

K. G. schrieb:
> Den Motor versuche ich mal
> professionell wegen Anlaufstrom messen zu lassen - mit meinem kleinen
> Multimeter komme ich da eher nicht weit um die Anlaufstromspitze zu
> messen.

Doch, das geht ganz einfach: Motor blockieren und Strom messen.
Allerdings sollte das nicht zu lange dauern, damit der Motor nicht 
überhitzt.

von Frank K. (fchk)


Lesenswert?

K. G. schrieb:
> Dank für den Hinweis - es soll im Unterhaltungsbereich eingesetzt
> werden. Also hohe Anforderungen an die allgemeine und die
> Ausfallsicherheit. Ein professionelles Bussystem, das man z.B. über
> einen Nvidia Jetson steuern kann. Aktuelle Basis ist noch ein einfacher
> Raspberry Pi über I2C.

Orin Nano hat einen CAN-FD integriert. Dafür brauchst Du nur einen 
passenden Transceiver, z.B. MCP2562FD.

https://www.microchip.com/en-us/product/mcp2562fd

Bei CAN statt LIN wäre z.B. der hier eine gute Wahl:

https://www.microchip.com/en-us/product/dspic33ck256mp502

Dazu eben ein passender Transceiver und eben die Leistungselektronik für 
den Motor. Beispielsweise

https://www.st.com/en/motor-drivers/l6205.html

2.8A Dauerstrom, 5.6A Peak, bis 52V Betriebsspannung.

gar kein Problem.

fchk

von Daniel D. (danielduese)


Lesenswert?

Da die Stromversorgung für die Motoren unbedingt von der Steuerung zu 
trennen ist spielt es keine Rolle welche Spannung die Steuerung hat, 
kann also 3.3V sein. Die Signale werden von Platine zu Platine 
durchgereicht und steuern dort einen MOSFET an, um den Motor mit den 12V 
zu versorgen (gepulst).
Ich empfehle sogar je Platine einen Miniprozessor im Bereich 80Cent, 
dann kann das gewünschte Protokoll einfach verarbeitet und an das 
nächste Modul weitergereicht werden und diverse Fallbacks eingebaut 
werden. Für erhöhte Ausfallsicherheit kann auch eine Ardressierung der 
Module gewählt werden, damit diese parallel an einem Bus hängen, aber 
wohl eher nicht i2c. Das wird bei größerer Anzahl/ Entfernung versagen. 
Eher CAN Bus. Buffer zwitschendurch einbauen geht natürlich auch. 
Adressierung: Wenn ein Modul ausfällt, funktionieren die anderen dann 
auch. Die Module könnten sich beim Start selbst Adressieren, in der 
verbauten Reihenfolge.

Bitte schreibe mal noch dazu, was die Motoren antreiben sollen. Ich 
vermute in deinem Fall sind Schrittmotoren wesentlich besser geeignet.

von Harald W. (wilhelms)


Lesenswert?

Dieter D. schrieb:

> Mit den WS2812 koenntest Du einen diskreten Optokoppler aufbauen. D.h.
> die LED strahlt auf einen Phototransistor. Dann waere es galvanisch
> getrennt.

Warum nicht gleich einen normalen OK?

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Harald W. schrieb:
> Warum nicht gleich einen normalen OK?

Das wäre auch möglich. In dem Falle habe ich es so allgemein gehalten, 
dass theoretisch der Satz auch die Variante RGB-LED plus Chip vergossen 
mit einschließt.

Infos zu W2811:
https://wiki.mobaledlib.de/hilfestellungen/ws2811

von K. G. (k_g)


Lesenswert?

Daniel D. schrieb:
> Für erhöhte Ausfallsicherheit kann auch eine Ardressierung der
> Module gewählt werden, damit diese parallel an einem Bus hängen, aber
> wohl eher nicht i2c. Das wird bei größerer Anzahl/ Entfernung versagen.
> Eher CAN Bus. Buffer zwitschendurch einbauen geht natürlich auch.
> Adressierung: Wenn ein Modul ausfällt, funktionieren die anderen dann
> auch. Die Module könnten sich beim Start selbst Adressieren, in der
> verbauten Reihenfolge.

Hallo Daniel, klingt super interessant. Automatische Adressierung am 
Anfang und Überspringen von etwaig defekten Einheiten. Wie würdest Du 
das angehen?

> Bitte schreibe mal noch dazu, was die Motoren antreiben sollen. Ich
> vermute in deinem Fall sind Schrittmotoren wesentlich besser geeignet.

Damit habe ich auch schon geliebäugelt - von Anfang an volle Kraft und 
super regelbar, aber IP68 ist wichtig da es sich um Pumpen handelt und 
bei Steppern die (teure) Ausnahme - müsste ich dann auch selber machen. 
Habe die Dinger mal vermessen und mit meinem Multimeter folgendes 
herausbekommen:

- 20,03 kOhm Spulenwiderstand
- unter Volllast 1,410 Ampere als Maximalstrom
- 16,8 Watt
- bei Blockade überraschenderweise nur 0,626 Ampere.

Besten Dank an alle für Euren super interessanten und hilfreichen Input

von Frank K. (fchk)


Lesenswert?

K. G. schrieb:

> - 20,03 kOhm Spulenwiderstand

Das glaube ich nicht. Falsche Einheit vielleicht?

> Automatische Adressierung am Anfang und Überspringen von
> etwaig defekten Einheiten. Wie würdest Du das angehen?

CAN macht sowas, weil es eben ein Bus ist. 2 Adern für Strom, zwei für 
Signal. Adressvergabe entweder manuell (Codierschalter) oder per 
Seriennummern-EEPROM:

https://www.microchip.com/en-us/product/at24mac402

Lies einfach, was ich geschrieben habe. Wie gesagt: In der Industrie ist 
das normal.

fchk

von Dietrich L. (dietrichl)


Lesenswert?

K. G. schrieb:
> - 20,03 kOhm Spulenwiderstand
> - unter Volllast 1,410 Ampere als Maximalstrom
> - 16,8 Watt
> - bei Blockade überraschenderweise nur 0,626 Ampere.

Das ist, wie Frank K. schon andeutete, sehr komisch.

Hast du eine Typenbezeichnung, Datenblatt, Link zu diesem Motor?
Vielleicht ist das kein "einfacher" DC-Motor, sondern es ist noch 
Elektronik dabei. Und das kann, je nachdem was du steuern willst, auch 
noch Probleme machen.

: Bearbeitet durch User
von Daniel D. (danielduese)


Lesenswert?

K. G. schrieb:

>> Schrittmotoren
> Damit habe ich auch schon geliebäugelt -
> von Anfang an volle Kraft und  super regelbar

Bei Motoren ist 50% dann halt nur relativ, weil die 100% nur ungefähr 
definiert sind.
Jeder Motor läuft unterschiedlich schnell entsprechend ist die 
Pumpleistung bei 100% zweier Motoren unterschiedlich.
Bei einem Steppermotor ist sie immer definiert - z.B. 10 
Umdrehungen/sec.

V.a. wenn du den Wasserstrahl schnell verändern willst, wird der Motor 
im Vergleich zum Stepper lahm reagieren. Das erwäge also unbedingt bevor 
du teure Schaltungen baust und das Ergebnis nachher am Motor scheitert.

> Automatische Adressierung am Anfang und Überspringen
> von etwaig defekten Einheiten. Wie würdest Du das angehen?

Im CAN Bus werden alle Module über IDs angesprochen, also "Adressiert". 
Jedes Modul greift mit dem von Frank genannten MCP2562 alle Signale ab. 
und reicht diese an einen Prozessor mit CAN Protokoll weiter. Der 
wiederum steuert den MOSFET an (denke mal das ist die günstigere Lösung 
als mit dem o.g. DSC)

Eine zusätzliche Steuerleitung von Platine zu Platine könnte verwendet 
werden, damit jeder Prozessor den nachfolgenden ansprechen kann. Über 
dies Leitung wird die Durchnummerierung beim Start realisiert und 
erkannt. Diese Methode würde voraussetzen, dass bei Inbetriebnahme alle 
Module arbeiten. Diese Leitung wäre zwar störanfällig im Vergleich zum 
CAN Bus, da es aber nur um das langsame Durchnummerieren am Anfang geht 
dürfte das nicht ins Gewicht fallen.

Wenn im Betrieb eine Platine ausfällt ist das aufgrund der Adressierung 
ja nicht schlimm. Muss eine Platine ersetzt werden, muss das System halt 
neu gestartet werden, um durchnummeriert zu werden.

Franks Vorschlag mit DIP-Schalter/Jumpern um die Adresse festzulegen 
wäre die üblichere Alternative.

von Daniel D. (danielduese)


Lesenswert?

Mach mal noch vorsichtshalber ein Foto von den Motoren. Die haben nur 
ein rotes und ein schwarzes Kabel? Oder ist da noch eine PWM 
Signalleitung dabei?

von K. G. (k_g)


Lesenswert?

Hallo Frank, Dietrich und Daniel,

während ich noch dabei bin mich durch Frank's Input zu arbeiten, habe 
ich nochmals nachgemessen. Eigentlich hätte ich auch eher 20 Ohm 
erwartet, aber es steht bei meinem Auto-Multimeter definitiv 20 kOhm. 
Das könnte an der Pumpe bzw. deren Aufbau liegen. Der Rotor hat keine 
Kontakte - definitiv kein 3T-Anker-Motor oder sowas. Habe mich schon 
gewundert wie das genau funktioniert, aber letztendlich hängt man nur 12 
Volt DC dran - nur zwei Kabel mit Plus/Minus. Keine Datenleitung.

Wird wohl so sein, dass da eine eigene Elektrik noch unter der 
Motorhaube steckt. Der Rotor scheint ein reiner Magnet oder so zu sein. 
Mit dem Pololu Motoron Board M3H550 
[https://www.pololu.com/product/5071] kann ich die Drehzahl im Bereich 
60-100% regeln. Daniel mag Recht haben - Stepper ist doch mal zu 
prüfen... Besten Dank an alle.

von Udo S. (urschmitt)


Lesenswert?

K. G. schrieb:
> - 20,03 kOhm Spulenwiderstand
> - unter Volllast 1,410 Ampere als Maximalstrom
> - 16,8 Watt
> - bei Blockade überraschenderweise nur 0,626 Ampere.

Hört sich eher nach einem BLDC incl. elektronischer Kommutierung statt 
nach einem klassischen bürstenbehafteten DC Motor an.

von Harald W. (wilhelms)


Lesenswert?

K. G. schrieb:

> - 20,03 kOhm Spulenwiderstand
> - unter Volllast 1,410 Ampere als Maximalstrom

Die sind dann vermutlich zum Direktanschluss
an 28kV gedacht?

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Harald W. schrieb:
> Die sind dann vermutlich zum Direktanschluss
> an 28kV gedacht?

Das erscheint mir etwas viel. Üblich wären noch 6kV:
https://www.menzel-motors.com/de/6000v-6kv/

von Daniel D. (danielduese)


Lesenswert?

> Mit dem Pololu Motoron Board M3H550
> [https://www.pololu.com/product/5071] kann ich die Drehzahl im Bereich
> 60-100% regeln.

Dann denke ich mal, ist die Pumpe auch nur zum Ein- und Ausschalten bei 
100% Leistung konstruiert worden. Meine Empfehlung: nimm eine 
peristaltische Pumpe mit Stepper, BLDC oder zumindest mit Getriebe > 
1:300 dass der Motor entlastet ist.

Das Bussystem wäre gleich nur käme ein Motortreiber oder H-Brücken dazu.

: Bearbeitet durch User
von Henriette C. (henriette)


Lesenswert?

Nimm doch einfach den Wasserdruck aus der Leitung und steuere nur 
Ventile an???
(müssten halt Ventile sein, die sich regeln lassen, aber das kann man ja 
3D Drucken... z.B. Silikonschlauch mit einem unrunden Rad quetschen)

: Bearbeitet durch User
von Henriette C. (henriette)


Lesenswert?

Gibt N20 Motoren mit Getriebe und Encoder-Rad, die sind stark und sehr 
günstig. Und das ganze wäre mehr als IP68, weil geschlossenes System.

von Henriette C. (henriette)


Lesenswert?

> Nimm doch einfach den Wasserdruck aus der Leitung

Vielleicht gibts aber auch einen Schokobrunnen...

von Daniel D. (danielduese)


Lesenswert?

Henriette C. schrieb:
> Vielleicht gibts aber auch einen Schokobrunnen...

Dann bräuchte man nur noch eine Exzenterschneckenpumpe, um den 
Schokodruck aufzubauen!

von Harald W. (wilhelms)


Lesenswert?

Henriette C. schrieb:

>> Nimm doch einfach den Wasserdruck aus der Leitung
>
> Vielleicht gibts aber auch einen Schokobrunnen...

Wird der dann über einen Schokostecker angeschlossen?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.