Forum: Mikrocontroller und Digitale Elektronik Was bedeutet Enabled Driver?


von Zeitjäger  . (forgoden)


Lesenswert?

Hallo,

ich habe mir dieses Modul bestellt und bekommen
http://www.ebay.de/itm/180984278054?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

Es gibt diese Anschlüsse doch ich weiss nicht wo was wohin, da manual 
fehlt

V +                Power Input +
GND             Power Input -
EN                 Driver Enable, high enable, low off
RPWM          Forward PWM input, high active
LPWM          Reverse PWM input, active high
CT                 Current signal output,analog signal
VT                 Voltage signal output, analog signal



- Power Input dürfte 5V von Arduino ausreichen ?
- RPWM und LPWM wären dann die PWM Ausgänge von Arduino ?
- CT und VT in Analog Input von Arduino ?
- EN, was ist Driver Enable und womit wird es verbunden?
- welche Werte sollte ich bei der Programmierung für die PWM geben?

von Cyblord -. (cyblord)


Lesenswert?

Helmut vB schrieb:
> Hallo,
>
> ich habe mir dieses Modul bestellt und bekommen
> 
http://www.ebay.de/itm/180984278054?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
>
> Es gibt diese Anschlüsse doch ich weiss nicht wo was wohin, da manual
> fehlt
>
> V +                Power Input +
> GND             Power Input -
> EN                 Driver Enable, high enable, low off
> RPWM          Forward PWM input, high active
> LPWM          Reverse PWM input, active high
> CT                 Current signal output,analog signal
> VT                 Voltage signal output, analog signal
>
>
>
> - Power Input dürfte 5V von Arduino ausreichen ?

Na sicher, und da ziehst du dann die 50A? Da soll die Spannungsquelle 
für die Motoren hin. Meist ist das ein dicker Akku oder ein Netzteil. 
Wozu sonst einen 50A Treiber? Für einen 3V Solarmotor wirst das wohl 
nicht einsetzen oder?

> - RPWM und LPWM wären dann die PWM Ausgänge von Arduino ?
Ja.

> - CT und VT in Analog Input von Arduino ?
Ja wenn du die brauchst.

> - EN, was ist Driver Enable und womit wird es verbunden?
Damit schaltetst du die Treiberstufen ein. Da wird ein digitales Signal 
erwartet. Hi wird die Treiber aktivieren. Kannst du auch auf dauerhaft 
auf einen Pegel legen wenn du das nicht schalten willst.

> - welche Werte sollte ich bei der Programmierung für die PWM geben?
????

Gibts keine fertigen Arduino-Shields für Motoren? Arduino Nutzer und 
externe nicht Arduino gerechte HW vertragen sich meist nicht, wegen 
inkompetenz.

gruß cyblord

von Zeitjäger  . (forgoden)


Lesenswert?

ich seh auf meiner Motorentreiberkarte aber so ein Stift für V+ und GND. 
Die Adern sind dünn. Ich kann mir nicht vorstellen dass da 50A 
durchfliessen soll.

Jedoch sind auf der anderen Seite 4 Schraubklemmen, ich denke da kommt 
der 50A Strom.

Drauf steht:

M+
M-
B+
GND

trotzdem weiss ihc nicht wo was genau angeschlossen wird. Was ist B+ ?

cyblord ---- schrieb:
> Gibts keine fertigen Arduino-Shields für Motoren?

Ja hab ich auch aber die sind viel zu schwach. Also keine MOSFETs
ich möchte hier Akkuschraubermotoren steuern.

von Zeitjäger  . (forgoden)


Lesenswert?

ich glaube B+ ist + vom akku und GND - vom akku.

von Jürgen S. (jurs)


Lesenswert?

Helmut vB schrieb:
> ich glaube B+ ist + vom akku und GND - vom akku.

Ich glaube, allmählich kommst Du drauf.
Die dicken Anschlüsse für die Power.
Die dünnen Anschlüsse für die Steuerung.

Was mir gerade einfällt, hast Du den eBay Angebotstext gelesen:
> PID program source send by email.

Hast Du diese Programm-Sourcen erhalten? Vielleicht ergeben sich daraus 
neue Erkenntnisse, auch wenn der Source nicht direkt für Arduino ist?

Im übrigen würde ich mir ein Board raussuchen, das so ähnlich ist wie 
das von Dir gekaufte und über vergleichbare Anschlüsse verfügt. Eine 
kurze Google-Recherche findet:
http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=100_146&products_id=2179

Abgesehen davon, dass das Board direkt zum Arduino-Shield umgelötet 
werden kann, einfach durch Einlöten der Buchsenleisten und dass es zwei 
Kanäle ansteuert: Da sind auf der Seite viele Hinweise ("Basically the 
control is very easy."), auch speziell für Arduino: "For Arduin users" 
mitsamt Pinbelegungsvorschlag und Arduino-Library. Das würde ich mir 
jedenfalls mal näher ansehen, ob es nicht auch für Dein Board verwendbar 
ist. Die Bezeichnungen der Steueranschlüsse (EN, RPWM, LPWM) deuten 
jedenfalls ganz daraufhin.

von Zeitjäger  . (forgoden)


Lesenswert?

vielen dank! das hilft viel.

so wie's ausschaut brauch ich auch keine widerstände zwischen arudino 
und motorcontroller ? die control power +5V direkt an +5V an arduino ?

Sowohl in PID als auch der link von dir mit library für arduino finde 
ich keine vollständigen codes.

Welche Werte müsste ich für PWM geben?

wegen der Beschreibung hier:

- This driver module  can work under the PWM duty cycle of 0% -98%.
und bei mir:
- 5.Drive can work at 0%-98% of the PWM duty cycle, because the drive is 
NMOS circuit,
NMOS circuit features is not to 100% PWM, when PWM 100% of control 
circuit,
long time carries out the operation can lead to drive damage

Zum "faden" von led Lämpchen gibt es den Wert von 0 bis 255
müssten es also 0 bis 250 (98%) sein oder versteh ich was falsch?

von Karl H. (kbuchegg)


Lesenswert?

Helmut vB schrieb:

> - This driver module  can work under the PWM duty cycle of 0% -98%.
> und bei mir:
> - 5.Drive can work at 0%-98% of the PWM duty cycle, because the drive is
> NMOS circuit,
> NMOS circuit features is not to 100% PWM, when PWM 100% of control
> circuit,
> long time carries out the operation can lead to drive damage

Das ist China-Englisch für:

Schraub die PWM nicht höher als 98% im Dauerbetrieb. Du kannst schon 
auch mal auf 100% hoch gehen, aber bitte nicht zu lange, denn dann 
überhitzt der Treiber und brennt durch.

von Cyblord -. (cyblord)


Lesenswert?

Helmut vB schrieb:
> Sowohl in PID als auch der link von dir mit library für arduino finde
> ich keine vollständigen codes.
Code selber schreiben scheint für Arduino Nutzer eine völlig abartige 
Idee zu sein?

von Zeitjäger  . (forgoden)


Lesenswert?

doch selber coden kann ich schon wenn es sein muss.

aber die Frage ist wie PWM 100% im Code ausschaut?

Bei einen 8bit Integer wären 100% 255 und 98% 249 bzw. 250 ?

von Jürgen S. (jurs)


Lesenswert?

Helmut vB schrieb:
> so wie's ausschaut brauch ich auch keine widerstände zwischen arudino
> und motorcontroller ? die control power +5V direkt an +5V an arduino ?

Sieht ganz so aus. Aber Du musst immer die Stromstärke im Auge behalten: 
Wieviel mA zieht die Steuerung maximal? Und wieviel mA darfst Du Deinem 
Arduino-Board am 5V-Pin entnehmen? Wenn Du keine Werte aus einem 
Datenblatt dazu hast, musst Du mit einem Multimeter selbermessen (in 
verschiedenen Betriebszuständen), ob die Steuerung nicht zu viel Strom 
frisst.

>
> Sowohl in PID als auch der link von dir mit library für arduino finde
> ich keine vollständigen codes.

Jede Arduino-Library kommt mit einem "Example" (Beispiel) Code, so auch 
diese. Das Programmbeispiel kannst Du aus der Arduino-Software ganz 
einfach über den Menüpunkt "Beispiele" öffnen, nachdem die Library 
korrekt im Libraries-Verzeichnis installiert wurde. Findest Du das 
Beispielprogramm "MotorDemo" nicht?

> Welche Werte müsste ich für PWM geben?
>
> wegen der Beschreibung hier:
>
> - This driver module  can work under the PWM duty cycle of 0% -98%.
> und bei mir:
> - 5.Drive can work at 0%-98% of the PWM duty cycle, because the drive is
> NMOS circuit,
> NMOS circuit features is not to 100% PWM, when PWM 100% of control
> circuit,
> long time carries out the operation can lead to drive damage

>
> Zum "faden" von led Lämpchen gibt es den Wert von 0 bis 255
> müssten es also 0 bis 250 (98%) sein oder versteh ich was falsch?

So sehe ich das auch, aber ich würde es ggf. trotzdem erstmal mit den 
Werten aus dem Beispielprogramm "MotorDemo" probieren. Und mir dann 
ansehen, ob hohe PWM-Werte für hohe Motordrehzahlen stehen oder für 
niedrige. Das ist mir aus der Beschreibung nicht ganz klar, aber ich 
vermute mal, dass hohe PWM-Werte für niedrige Drehzahlen stehen.

Irgendwie scheint auch die Standard PWM-Frequenz der Arduino-Boards 
etwas zu klein zu sein für diese Art Motor-Boards, denn die Library 
manipuliert am Prescaler von timer0 herum, so dass die PWM-Frequenz des 
Boards erhöht wird (und in der Folge die delay-Zeiten auch geändert 
werden, Hinweis im Demoprogramm beachten!).

cyblord ---- schrieb:
> Helmut vB schrieb:
>> Sowohl in PID als auch der link von dir mit library für arduino finde
>> ich keine vollständigen codes.
> Code selber schreiben scheint für Arduino Nutzer eine völlig abartige
> Idee zu sein?

In der Tat ist es für die allermeisten Arduino Nutzer völlig abwegig, 
das Rad immer wieder neu zu erfinden und jeden Anwender ständig immer 
wieder neuen Code für immer wieder dieselbe Hardware schreiben zu 
lassen. Bei Arduino ist es mehr so, dass nur wenige Cracks neue 
Libraries schreiben, zu Hardware mit der sie sich bestens auskennen, und 
die übrigen Anwender verwenden den Code wieder und wieder. Wobei es 
jedem freisteht, eigene Änderungen und Verbesserungen einzubringen oder 
gar eigene Forks oder Rewrites schon vorhandener Libraries zu 
veröffentlichen - unter Arduino ist nicht nur das "Open Hardware" Design 
der Boards ein Standard, sondern auch das "Open Source" Prinzip bei 
Libraries für Standard-Hardware sehr verbreitet. Und zwar nicht mit 
Tipps wie "Lern erstmal C" und "Lies das Datenblatt", sondern man hilft 
sich auch mit wiederverwertbarem Code.

Außer durch Wiederverwendung von passendem Library-Code, den andere 
geschrieben haben, wäre es ja auch gar nicht möglich, dass mit Arduinos 
völlig Fachfremde wie Designer, Künstler und Hausfrauen eigene 
Mikrocontroller-Schaltungen entwerfen und programmieren.

von Karl H. (kbuchegg)


Lesenswert?

Jürgen S. schrieb:

> der Boards ein Standard, sondern auch das "Open Source" Prinzip bei
> Libraries für Standard-Hardware sehr verbreitet. Und zwar nicht mit
> Tipps wie "Lern erstmal C" und "Lies das Datenblatt", sondern man hilft
> sich auch mit wiederverwertbarem Code.

Alles schön und gut.
Aber wenn jemand eine Bestätigung dafür braucht, dass 98% bei einer 
8-Bit PWM entweder 250 oder 5 sind (je nachdem wie rum die Prozent zu 
lesen sind), dann hört sich der Spass auf. Dann weigert er sich einfach 
selbst zu denken - ob Vollgas am 0-Ende oder am 255-Ende der PWM liegt.

Da gibt man dann halt einfach mal einen PWM Wert von 30 vor, schliesst 
alles an, schaltet ein und dann sieht man schon, ob der Motor langsam 
oder schnell dreht.

Denn genau da besteht das 'Arduino-Problem'. Das nicht erkennen, wo das 
Sicherheitsnetz der fertigen Lib aufhört und wo die Eigenverantwortung 
anfängt und was man dann vom System trotz fertiger Libs wissen, kennen 
und anwenden können sollte.

Das hier, zum Beispiel
> Bei einen 8bit Integer wären 100% 255 und 98% 249 bzw. 250 ?
Ihm ist nicht klar, dass er nicht davon ausgehen kann, dass bei einem 
PWM Wert von 249 der Treiber 8 Stunden Dauerlauf schafft und bei 250 
nicht mehr. Ihm ist nicht klar, dass das fliessende Übergänge sind, die 
unter anderem auch von der Situation der Kühlung abhängen. Die 98% sind 
ja nicht: 98.0% geht noch, 98.1% geht nicht mehr.
Das sind Richtwerte! Feuere das ganze hoch, fahr auf 95% und schau dir 
an, was auf dem Treiber wie heiß wird. Wenns zu heiß wird - abdrehen! 
WEnn alles kalt bleibt, etwas höher gehen.

von Electronics'nStuff (Gast)


Lesenswert?

Hm, finde es immer ein bisschen kritisch, wenn totale Anfänger mit 50A 
rumspielen, aber das ist schließlich deine Sache.

Ahnung von Elektronik hast du eindeutig gar keine, sonst würdest du den 
Treiber wohl kaum mit dem Arduino speisen wollen.

Enable.. hm das Wort kann man googeln, dann findest du relativ schnell 
heraus, dass das wohl einschalten bedeutet oder aktivieren. Driver 
heisst Treiber also irgendwie ist das jetzt nicht so schwierig.

Klar, Arduino richtet sich an Anfänger aber was ein Datenblatt ist 
weisst du schon oder?

Alles mit fertigen Libs zusammenzuklatschen funktioniert fast nie, du 
wirst nicht ums beschreiben herumkommen.

Und ja, 98% von 255 sind tatsächlich 249.9. Allerdings wird das 
abgerundet, da du ja NICHT über 98% kommen solltest also nimm lieber 248 
oder 247.

Ich würde dir zudem raten, 2 zu bestellen, da dir garantiert einer mal 
abraucht.

Gruss

von Jürgen S. (jurs)


Lesenswert?

Electronics'nStuff schrieb:
> Hm, finde es immer ein bisschen kritisch, wenn totale Anfänger mit 50A
> rumspielen, aber das ist schließlich deine Sache.

Na ja, China-Elektronik und die Hersteller-Ratings. Das kennt man aus 
dem Audio-Bereich von "PMPO" Angaben für Verstärker: Anspruch und 
Wirklichkeit, zwei Welten prallen aufeinander.

Die 50 A für würde ich nur als sehr groben Anhalt betrachten, wie hoch 
das Teil bei maximaler Zwangskühlung (Aktivkühlung per Lüfter) belastet 
werden darf.

von Electronics'nStuff (Gast)


Lesenswert?

Jürgen S. schrieb:
> Die 50 A für würde ich nur als sehr groben Anhalt betrachten

Ja, ich finde sie auch sehr optimistisch.
Trotzdem werden die Ströme wohl in den 2-stelligen Ampèrebereich gehen.

Gruss

von amateur (Gast)


Lesenswert?

Ich schätze mal, dass die <100% wegen der "Hochstapler" sind.

Wird die Gate-Steuer-Spannung (High-Side) nämlich via getakteter 
Kondensatoren generiert, ist's bei 100% Puls-Pause mit der Takterei 
vorbei.

Und falls es so ist, reicht ein Puls-Pause-Verhältnis von Max – 1.

Genaueres: Siehe Datenblatt des Steuer-ICs.

von Zeitjäger  . (forgoden)


Lesenswert?

man kann nie genug sicher sein, da ich mich mit Elektronik nicht 
auskenne. Deshalb 1000 mal Fragen. Oft frage ich nach fertigem Code, da 
ich gekaufte Module lieber erst mit Demo-Code testen will, bevor ich 
eigenen Code schreibe. Ausserdem kann ich so schneller den Verkäufer 
bewerten. Ja und ich brauche bestätigung, weil Gefühl für Elektronik 
fehlt.

Da kein Demo-Code dafür gibt, habe ich trotzdem einen eigenen 
geschrieben der funktioniert:
1
int en = 13;
2
int lpwm = 11;
3
int rpwm = 10;
4
5
6
void setup() 
7
{ 
8
  pinMode(en, OUTPUT); 
9
  pinMode(lpwm, OUTPUT); 
10
  pinMode(rpwm, OUTPUT); 
11
} 
12
 
13
 
14
void loop() 
15
{ 
16
17
// motor starten
18
   digitalWrite(en, HIGH);
19
   analogWrite(lpwm, HIGH);
20
   analogWrite(rpwm, 110);
21
   delay(3000);
22
   digitalWrite(en, HIGH);
23
   analogWrite(lpwm, HIGH);
24
   analogWrite(rpwm, 210);
25
   delay(3000);
26
   
27
// ausschalten
28
   digitalWrite(en, 0);
29
   analogWrite(lpwm, HIGH);
30
   analogWrite(rpwm, HIGH);
31
   delay(3000);
32
33
}

Multimeter zeigt 0,15 A Strom zwischen Arduino und Motorenkarte

Folgende Erkenntnisse:

Der Strom zwischen 50A Motorkarte und Arduino benötigt man nur, wenn 
Arduino z.b. nicht vom PC per USB stromversorgt ist. Ansonsten reichen 
die Anschlüsse EN, LPWM, RPWM aus. Scheinbar...

korrigiert mich, wenn was nicht gut ist. Ich höre so Sachen wie Masse 
mit allem verbinden etc ?

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.