mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mini-Motor mit PWM direkt an AVR-Portpins


Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Leser,

vor Kurzen war ein Frage hier aufgetaucht, das Thema finde ich aber 
gerade nicht wieder. Es ging darum, einen kleinen Gleichspannungsmotor 
stromsparend und möglichst ohne H-Brücke an einen Controller anzubinden.
Weil ich neugierig war, habe ich es mal ausprobiert und bin zu dem 
Ergebnis gekommen, daß man einen kleinen Motor, der mit 30...40 mA 
Betriebsstrom auskommt, direkt zwischen zwei PWM-Pins des AVR hängen 
kann. Im Beispiel habe ich einen Tiny13 verwendet, eine 8-Bit PWM mit 
20Hz programmiert, was für den Zweck völlig ausreichend ist. OCR0A bzw. 
OCR0B werden wechselseitig geladen. Das heißt, wenn der Motor in die 
eine Richtung laufen soll, wird OCR0A auf meientwegen 100 geladen, 
während OCR0B=0 ist und für die Gegenrichtung gilt der umgekehrte Fall. 
Bedingung für die Funktion ist, dass beide Motoraugänge nie bei 
laufendem Motor auf Eingang geschaltet werden. Und man sollte auch nicht 
die Laufrichtung umkehren, wenn der Motor noch läuft.

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und man sollte den Motor auf keinen Fall belasten...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich nicht. Der OP des anderen Themas meinte auch, daß der Motor 
nur ab und an kurz drehen soll - vielleicht, um eine bewegte Anzeige 
oder ähnliches zu realisieren. Eine Überlast kann man zusätzlich durch 
Messen der Portpins feststellen und den Ausgang abschalten.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das läuft dann aber wohl unter "Absolute Maximum Ratings" mit 
verminderter Lebensdauer.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht in diesem Fall. Der Motor zieht gerade 20mA. Anlauf erfolgt mit 
Softstart, also auch nicht mehr Strom. Die Anwendung ist eben nur für 
kleine Motoren und wo es auf verlustarme Anschaltung des Motors geht. 
Gerade bei Spannungen um oder unter 3V ist mit externen ICs / diskreten 
H-Brücken nicht mehr viel los.

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Trotzdem bleibt die Spule im Motor eine Induktivität...
Mich würde mal interessieren wie es am Oszi aussieht, habe den Verdacht 
das dort kurze Spikes auftauchen die recht hohe Spannungen haben.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Tim T. (tim_taylor)

>Trotzdem bleibt die Spule im Motor eine Induktivität...

Das ist ihr gutes Recht.

>Mich würde mal interessieren wie es am Oszi aussieht, habe den Verdacht
>das dort kurze Spikes auftauchen die recht hohe Spannungen haben.

Die ESD-Schutzdioden, welcher fast jeder Digital-IC hat wirken hier als 
Freilaufdioden. Da gibst keine Spikes.

MFG
Falk

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ausgänge des AVR sind MOSFET-Push-Pull Endstufen mit entsprechenden 
Body-Dioden, also eine vollwertige H-Brücke. Die Induktionsspitzen 
werden daher zur Betriebsspannung abgeleitet und so entschärft. Die 
Ausgänge müssen daher immer als Ausgänge geschaltet sein.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner wrote:

> Die ESD-Schutzdioden, welcher fast jeder Digital-IC hat wirken hier als
> Freilaufdioden. Da gibst keine Spikes.

Ja, genau so ist es. Habe ich schonmal gemacht, funktioniert wunderbar. 
Bei kleinen Betriebsspannungen ist es teilweise auch garnicht möglich 
mehr als 40mA aus einem Pin zu holen, da der Transistor einfach zu 
hochohmig ist (3V, 40mA -> 75Ohm -> 2x 37,5Ohm, da ist der Ausgang 
ziemlich sicher hochohmiger.)
Wenn ein Pin zu wenig Strom liefern kann, kann man auch mehrere parallel 
schalten.
Man darf dann nur keinen Fehler in der Software machen und muss alle 
Pins gleichzeitig umschalten.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehler in der Software? Wie kommst Du denn darauf ;-) ?

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die internen Clampdioden als Freilaufdioden sind ja gut und schön, aber 
in diesem Fall wirken die Transistoren (D-S-Widerstand), denn einer der 
beiden Transistoren jedes Brückenzweigs ist ja immer durchgeschaltet. 
Der Induktionsstrom fließt also nicht über die Clamp-Dioden, sondern 
über die Laststrecke des jeweils eingeschalteten FETs.

Ja, ich habe auch schon Elektromotoren direkt an den AVR-Pins gehabt, 
allerdings ohne PWM. Es handelte sich um die kleinen Getriebemotoren aus 
den Kassenrollen-Aufwicklern, die es vor ein paar Jahren für 3,95 DM bei 
Pollin gab.

~

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, Sorry Jungs, aber für "echten" Einsatz würde ich lieber vier 
kleine SOT23 Transistoren da reindengeln, statt den Motor mit den 
Portpins zu schalten.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
>> Mich würde mal interessieren wie es am Oszi aussieht, habe den
>> Verdacht das dort kurze Spikes auftauchen die recht hohe Spannungen
>> haben.
>
> Die ESD-Schutzdioden, welcher fast jeder Digital-IC hat wirken hier
> als Freilaufdioden. Da gibst keine Spikes.

Wobei Atmel in der Appnote AVR182 schreibt:

  "It is not recommended that the clamping diodes are conducting more
  than maximum 1 mA ..."

Das ist nicht gerade viel, wenn man den Motor mit 20mA oder gar 40mA
laufen lässt.

Travel Rec. schrieb:
> Die Ausgänge des AVR sind MOSFET-Push-Pull Endstufen mit
> entsprechenden Body-Dioden, also eine vollwertige H-Brücke.

Da wäre ich vorsichtig. Die Body-Dioden können nur dann als Freilauf-
dioden dienen, wenn der Substratanschluss jedes Ausgangs-MOSFETs
niederohmig mit dessen Source und damit mit GND bzw. VCC verbunden ist.
Aber wo steht geschrieben, dass dies so so ist?

Was dagegen spricht: Welchen Sinn hätten sonst die Clamping-Dioden, die
dann ja parallel zu den Body-Dioden liegen würden und somit redundant
wären? Oder sind die Clamping-Dioden und die Body-Dioden vielleicht ein
und dasselbe? Wenn das aber so wäre, wieso empfiehlt Atmel dann, sie nur
mit maximal 1mA zu belasten? Da die Body-Dioden als parasitäre Effekte
aus dem Halbleitermaterial des MOSFETs bestehen, sollten sie auch etwa
den gleichen maximalen Strom vertragen, in diesem Fall also 40mA.

> Die Ausgänge müssen daher immer als Ausgänge geschaltet sein.

Wenn die Body-Dioden tatsächlich als Freilaufdioden verwendet werden
können, sind sie immer da, auch wenn der Pin nicht als Ausgang
geschaltet ist.

> Die internen Clampdioden als Freilaufdioden sind ja gut und schön,
> aber in diesem Fall wirken die Transistoren (D-S-Widerstand), denn
> einer der beiden Transistoren jedes Brückenzweigs ist ja immer
> durchgeschaltet. Der Induktionsstrom fließt also nicht über die
> Clamp-Dioden, sondern über die Laststrecke des jeweils eingeschalteten
> FETs.

Für kurze Zeit schon, nämlich während des Umschaltens des Ausgangs, wo
beide MOSFETs nicht oder nur schwach leitend sind. Aber dein Einwand ist
natürlich in sofern richtig, dass dadurch die Clamping-Dioden deutlich
kürzer leitend sind, so dass sie wahrscheinlich wesentlich mehr als das
o.a. 1mA vertragen, die wohl als Dauerstrom zu verstehen sind.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Also, Sorry Jungs, aber für "echten" Einsatz würde ich lieber vier
>kleine SOT23 Transistoren da reindengeln, statt den Motor mit den
>Portpins zu schalten.

@Simon: Bei kleinen Versorgungsspannungen unter 3V hast Du damit die 
Brille auf ;-)

@yalu: Ich habe mit die Spannungsverläufe mal angesehen, sie bleiben 
innerhalb Vcc+0.6 und GND-0.6V. Wie bereits geschrieben, ist einer der 
beiden Ausgänge ist immer logisch Null, der andere wechselt im 
PWM-Rhythmus zwischen 0 und 1.

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> der andere wechselt im PWM-Rhythmus zwischen 0 und 1.

Also das, was bei H-Brücken "aktiver Freilauf" genannt wird.

Im 1:87-Modellbau wird auch gerne der IRF7389 (2 Stück als H-Brücke) 
eingesetzt, da sind auch bei 3,6V akzeptable Ströme möglich.

~

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber nicht bei 3.0V und weniger. Den IRF7389 kenne und verwende ich 
auch. 2 davon sind u.U. aber schon größer als der Controller und 
eventuell sogar größer als der anzusteuernde Motor ;-)

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne Widerspruch zur Kenntnis genommen...

~

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Besser hier?

@Travel Rec. (travelrec)

Ich bin auf der Suche nach meinem alten Thread ,weil über 
Weichenansteuerung gesprochen wurde, auf diesen hier gestoßen.


Das war meine Experimentier Grundlage, habe aber nicht weitergemacht.
Beitrag "Parallel schalten von Ports"

So wie ich aus euren Meinungen erkennen kann ,werde ich es etwas 
konkreter
mit einer Eigenbauweichen Ansteuerung versuchen.

...über Rs232 oder vielleicht mit DMX werden die Weichen 
geschaltet(hoffentlich werde ich es noch erleben)

Grüße

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.