Forum: Mikrocontroller und Digitale Elektronik Mehr Strom für Motor


von Julian H. (xxxmicroxxx)


Lesenswert?

Hallo liebe community,
Ich habe ein Problem:

Wenn ich versuche mit diesem Code:

$regfile = "m88def.dat"
$crystal = 8000000

Config Portb.0 = Output

Do

Portb.0 = 1

Loop
End


Einen Motor anzutreiben, dreht er sich nicht, da er nicht genug strom 
hat.

Wie kann ich nun dem Port mehr strom zuweisen?

Schon mal danke im Vorraus für euere Hilfe.

von Andreas M. (elektronenbremser)


Lesenswert?

Amper hochskillen!?

von Dr. Sommer (Gast)


Lesenswert?

Du musst halt die Beitrag "Amper hoch skillen?"

von Julian H. (xxxmicroxxx)


Lesenswert?

ich bin ziemlich neu auf dem Gebiet!

und wie geht das ?

von Andreas M. (elektronenbremser)


Lesenswert?

2 Dumme, ein Gedanke :-)

Eine Led leuchtet am Ausgang?

von Eumel (Gast)


Lesenswert?

Mit einem Transistor. Vergiss die Freilaufdiode nicht und berechne den 
Basiswiderstand richtig.

von Julian H. (xxxmicroxxx)


Lesenswert?

Gibt es keinen Befehl in Bascom wie ich das machen kann?

oder kann ich einfach eine zusätzliche Batterie in den Stromkreislauf 
setzen?

von Eumel (Gast)


Lesenswert?

Julian R. schrieb:
> Gibt es keinen Befehl in Bascom wie ich das machen kann?
>
> oder kann ich einfach eine zusätzliche Batterie in den Stromkreislauf
> setzen?

Hast du mal das Datenblatt deines Controllers gelesen? Da steht drin 
wieviel Strom der liefern kann.

von Dr. Sommer (Gast)


Lesenswert?

Julian R. schrieb:
> Gibt es keinen Befehl in Bascom wie ich das machen kann?
>
> oder kann ich einfach eine zusätzliche Batterie in den Stromkreislauf
> setzen?

Der Ausgangsstrom wird alleine durch die Hardware-Konstruktion des 
Controllers bestimmt und ist oft 20mA oder 40mA. Du brauchst wie oben 
schon gesagt einen Transistor.

Andreas M. schrieb:
> 2 Dumme, ein Gedanke :-)
Mist, zu langsam :o)

von Stephan H. (stephan-)


Lesenswert?


von c-hater (Gast)


Lesenswert?

Julian R. schrieb:

> Einen Motor anzutreiben, dreht er sich nicht, da er nicht genug strom
> hat.
>
> Wie kann ich nun dem Port mehr strom zuweisen?

Du mußt drei Vaterunser für den Port beten. Dann dafür sorgen, daß der 
Port sich jeglicher fleischlichen Gelüste entsagt (wenn nicht möglich, 
hilft allerdings auch eine zwischenzeitliche Beichte des Ports, 
allerdings nur, wenn der Port katholisch ist, sonstige Konfessionen 
müssen mit ihren Sünden weiterleben).

von Der Lolf (Gast)


Lesenswert?

Und wenn der Chip anfängt sich in Rauch aufzulösen war der Port 
islamistisch veranlagt :)

von Julian H. (xxxmicroxxx)


Lesenswert?

Kann mir mal jemand einen Schaltplan Schicken?

von anderes ich (Gast)


Lesenswert?

>Kann mir mal jemand einen Schaltplan Schicken?


http://embedded-lab.com/blog/wp-content/uploads/2010/12/Circuit_SingleTransistorDCMotor.png

Gut gemeinter Rat: fang mit einer LED an, und nicht mit einem Motor. Und 
lerne vorher mal ein paar Grundlagen.

von Julian H. (xxxmicroxxx)


Lesenswert?

Das mit der Led klappt ja
und töne kann ich auch erzeugen

nur mit dem Motor ..... :(

von Marc (Gast)


Lesenswert?

Julian R. schrieb:
> Portb.0 = 1

' Skill up tha Ampere
PowerB.0 = 3A ' Give power with 3 Ampere

Wo ist das Problem?

von Julian H. (xxxmicroxxx)


Lesenswert?

Überlaste ich so nicht die Usb buchse?

von Marc (Gast)


Lesenswert?

Julian R. schrieb:
> Überlaste ich so nicht die Usb buchse?

Config USBPower = 5A, SteadyState, FuseEnabled

von Julian H. (xxxmicroxxx)


Lesenswert?

Sorry das ich dich nochmal frag Aber wie meinst du jetzt?`


so?:

$regfile = "m88def.dat"
$crystal = 8000000

Config Usbpower = 3a , Steadystate , Fuseenabled
Config Portb.0 = Output
Do

Portb.0 = 3


Loop
End

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

@Julian

du wirst grade mächtig gefoppt.

NEIN, man kann nicht einfach irgendein Befehl absetzen, und dann rinnt 
mehr Strom aus der Controller-Leitung.

Auch du wirst trotz aller gut gemeinten Befehle nur Buchstaben in den 
Schnee pinkeln können, und nicht den ganzen Schneemann wegspritzen. Da 
kommt halt nicht mehr raus aus der Leitung...

Beispiel verstanden?

von Julian H. (xxxmicroxxx)


Lesenswert?

hm  ok

von Harald W. (wilhelms)


Lesenswert?

Julian R. schrieb:
> Gibt es keinen Befehl in Bascom wie ich das machen kann?

Troll?

von Harald W. (wilhelms)


Lesenswert?

Der Lolf schrieb:

> Und wenn der Chip anfängt sich in Rauch aufzulösen war der Port
> islamistisch veranlagt :)

Oder katholisch. Bei denen raucht es auch öfter in der Kirche...

von Dennis (Gast)


Lesenswert?

Wegstaben Verbuchsler schrieb:
> du wirst grade mächtig gefoppt.

Blödsinn. Jetzt lass ihn mal nicht so in die Leere laufen.

Julian R. schrieb:
> Gibt es keinen Befehl in Bascom wie ich das machen kann?

Doch schon. Dafür ist ja Bascom bestens geeignet. Wie Marc es oben ja 
schon geschrieben hat:

-> Config USBPower = 5A, SteadyState, FuseEnabled

Damit sagst du deinem Rechner, er soll Richtung USB-Port einfach mehr 
Strom schicken (5A), warten bis er benötigt wird (SteadyState) und eine 
Sicherung aktivieren, falls mal der Strom zu hoch sein sollte. Läuft bei 
uns in der Firma auch so.

Alternativ gibt es auch noch den USBPower_Strong -Befehl, aber hier auf 
der Arbeit habe ich leider keinen Datenblatt dabei um die Werte 
rauszusuchen. G**gle müsste aber helfen. Oder nimm einfach den 
USBPower-Befehl, der geht definitiv.

-> PowerB.0 = 3A

Dieser Befehl gibt an PortB.0 maximal 3A aus. Wenn das nicht reicht, 
einfach 4 oder 5A hinschreiben.

von anderes ich (Gast)


Lesenswert?

Warum kommen solche Beiträge eigentlich vermehrt an Freitag Nachmittagen 
vor?

von Harald W. (wilhelms)


Lesenswert?

anderes ich schrieb:

> Warum kommen solche Beiträge eigentlich vermehrt an Freitag Nachmittagen
> vor?

Weil das "t" und das "r" von Troll im Wort Freitag steckt?

von Gerd (Gast)


Lesenswert?

Das Ohmsche Gesetz hilft bestimmt.

Eine der drei Varianten ist die richtige.

von Julian H. (xxxmicroxxx)


Lesenswert?

Wenn ich das jetzt richtig verstanden habe (und ihr nicht nur spaß dran 
habt wie ich im dunkeln tappe)  Dann sollte meine code jetzt so 
aussehen:



$regfile = "m88def.dat"
$crystal = 8000000


Config Usbpower = 5a , Steadystate , Fuseenabled
Config Portb.0 = Output
Do

 PowerB.0 = 3A

Loop
End

von Otto (Gast)


Lesenswert?

Hallo,

der Portpin kann max  20mA - mehr geht nicht.

Gruß Otto

von Cyblord -. (cyblord)


Lesenswert?

Nochmal für dich:
> Der Ausgangsstrom wird alleine durch die Hardware-Konstruktion des
> Controllers bestimmt und ist oft 20mA oder 40mA. Du brauchst wie oben
> schon gesagt einen Transistor.

Alles andere ist Verarschung. Und wenn du jetzt nochmal per Code den 
Strom hochdrehen willst dann bist du wohl einfach nur ein Troll.

Ersetze das Relais durch deinen Motor:

http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

gruß cyblord

von Julian H. (xxxmicroxxx)


Lesenswert?

Ok Danke

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Julian R. schrieb:
> Wenn ich das jetzt richtig verstanden habe

was war denn an meinem obigen Satz mißverständlich?

Wegstaben Verbuchsler schrieb:

> NEIN, man kann nicht einfach irgendein Befehl absetzen, und dann rinnt
> mehr Strom aus der Controller-Leitung.

von Julian H. (xxxmicroxxx)


Angehängte Dateien:

Lesenswert?

Diese Schaltung funktioniert zwar
Aber nicht so wie sie soll .
Der Motor läuft immer und auch wenn der microkontroller keinen Strom 
hat.
Sagt mir bitte was ich anders machen muss damit der Motor nur läuft wenn 
auch ein Signal aus dem Port kommt.

von Eumel (Gast)


Lesenswert?

Julian R. schrieb:
> Diese Schaltung funktioniert zwar
> Aber nicht so wie sie soll .
> Der Motor läuft immer und auch wenn der microkontroller keinen Strom
> hat.
> Sagt mir bitte was ich anders machen muss damit der Motor nur läuft wenn
> auch ein Signal aus dem Port kommt.

Einen Schaltplan zeichnen.

von Julian H. (xxxmicroxxx)


Lesenswert?

Und woran Liegts?

von Eumel (Gast)


Lesenswert?

Julian R. schrieb:
> Und woran Liegts?

Mach einen Schaltplan dann kann ich es dir sagen.

von iTroll (Gast)


Lesenswert?

Julian R. schrieb:
> Überlaste ich so nicht die Usb buchse?

Da hast du natürlich recht. Mehr als 0.1A darf man da (offiziell) nur 
auf Antrag rausholen und bei 0.5A ist (eigentlich) Schluß. Für mehr 
Strom brauchst du eine zusätzliche Stromversorgung und einen 
Treiber, der den Strom schalten kann.

von Hmm (Gast)


Lesenswert?

Schau Dir doch mal die Links an die gepostet wurden...

Und "Arduino Gleichstromotor" in Google eintippen sollte auch ned so 
schwer sein. Damit würde man z.B. sowas finden: 
http://www.arduino-tutorial.de/2010/06/motorsteuerung-mit-einem-transistor/

Im Arduino Forum wurde das Thema sicher auch noch nie behandelt...

Wenn man gar keinen Plan hat könnte man sich auf Ebay auch ein Motor 
Shield für den 10er kaufen.

von Julian H. (xxxmicroxxx)


Lesenswert?

Was ist den jetzt an meiner Schaltung falsch?
ich hab alles so verbunden wie in: 
http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

von Eumel (Gast)


Lesenswert?

Julian R. schrieb:
> ich hab alles so verbunden wie in:

Hast du nicht, sonst würde es funktionieren.

von .... (Gast)


Lesenswert?

1. Wahrscheinlich hast du ein 12V Relais, das geht meistens nicht bei 5V
2. Tausch mal das komische Batterie->USB dingens gegen ein USB-netzteil

von Julian H. (xxxmicroxxx)


Lesenswert?

währe ansonsten alles richtig ?

von Spess53 (Gast)


Lesenswert?

Hi

>währe ansonsten alles richtig ?

Ich sehe keinen Widerstand. Was ist das für ein Transistor.

Glaubst du ernsthaft, das dir das bei dem Bild sagen kann.

MfG Spess

von Julian H. (xxxmicroxxx)


Lesenswert?

Aber ist es vom grundprinzip richtig, dass ein kleines Stromsignal dem 
Transistor sagt, dass er den Großen externen Strom jetzt zu dem Motor 
durchlassen kann?

von Max (Gast)


Lesenswert?

Irgendwie fehlt bei dem Foto von de mAufbau auch die Verbindung der 
Masse vom µC mit der Masse vom Transitor/Motor-Kreis.

von Julian H. (xxxmicroxxx)


Lesenswert?

Und wie muss ich das dann verbinden?

von Spess53 (Gast)


Lesenswert?

Hi

>Aber ist es vom grundprinzip richtig, dass ein kleines Stromsignal dem
>Transistor sagt, dass er den Großen externen Strom jetzt zu dem Motor
>durchlassen kann?

Ja. Aber nur mit dem richtigen Transistor und der richtigen Schaltung.

Bei deiner fehlt, wie gesagt, der Basisvorwiderstand und wenn ich das 
richtig sehe die Verbindung Controller-Masse zu Batteriemasse.

MfG Spess

von Joe (Gast)


Lesenswert?

Motor, Controller und Batterie benötigen eine gemeinsame Masse !!!

Zeichne ein vollständiges Schaltbild !!

von Michael (Gast)


Lesenswert?

Hmm schrieb:
> Und "Arduino Gleichstromotor" in Google eintippen sollte auch ned so
> schwer sein. Damit würde man z.B. sowas finden:
> http://www.arduino-tutorial.de/2010/06/motorsteuerung-mit-einem-transistor/

Wozu wurden eigentlich Schaltzeichen und Schaltpläne erfunden?

von Spess53 (Gast)


Lesenswert?

Hi

>Wozu wurden eigentlich Schaltzeichen und Schaltpläne erfunden?

Musste wahrscheinlich auch den Fähigkeiten von Arduinobenutzern 
angepasst werden.

MfG Spess

von Julian H. (xxxmicroxxx)


Angehängte Dateien:

Lesenswert?

Hier:

von Otto (Gast)


Lesenswert?

Es fehlt ein Basiswiderstand - der Motor muss zwischen Kollektor und 
Plus liegen - der Emitter an GND

von Gerhard W. (gerhard86)


Lesenswert?

Dir wurde doch oben ein Schaltplan gezeigt wie das zu verbinden ist, du 
behauptest du hättest es genau so gemacht und jetzt postest du eiskalt 
was völlig anderes?

Auf die Art ist das bestenfalls ein Linearregler der dem Motor bei 3,3V 
Logikspannung ca 2,5V anlegt, falls der Transistor es aushält.

von Technik_Freak (Gast)


Angehängte Dateien:

Lesenswert?

Es fehlt außerdem eine Freilaufdiode am Motor, sonst würde der 
Transistor beim Ausschalten des Motors, durch die Induktionsspannung 
zerstört werden.

von Eumel (Gast)


Lesenswert?

Julian R. schrieb:
> Hier:

Mach es selber und nimm nicht irgendein Bild aus dem Internet.

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.