mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Voice Coil Motor


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Andre R. (ltisystem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte einen Voice Coil Motor mit einem Arduino und einem Verstärker 
ansteuern. Der Verstärker kommt aus dem Akustikbereich und muss ja "nur" 
entsprechende Ströme/Spannungen lifern können. Die eigentliche Regelung 
möchte ich mit einem Nano/Atmega328p realisieren. Es sollen letztendlich 
Sinusschwingungen (eigentlich auch Multitones, also ein Signal welches 
mehrere Sinusfrequenzen enthält) gefahren werden.

Der erste Test war, mit einem Funktionsgenerator (FG) einen Sinus zu 
erzeugen, diesen in den Verstärker zu leiten und den Ausgang vom 
Verstärker dann zum VCM. Hat funktioniert, allerdings knallt der VCM 
immer an den grenzen an. Beim verringern der Spannung am FG wird der 
Nullpunkt der Bewegung verschoben, sodass eine Sinusbewegung mit 
abgeschnittenen Maxima zu beobachten ist.

Googlen führte mich dann dazu, dass das ganze geregelt werden muss, 
anstatt es nur anzusteuern. Glücklicherweise besitzt der VCM einen 
Hall-Sensor, der mir ein analoges Signal zwischen 0.5-4.5V abhängig der 
Position zurück gibt. Das ganze könnte man ja dann mit einem PID Regler 
verwirklichen. Da muss ich mich allerdings noch rein wurschteln. Der 
Playground hat ja aber schon ne PID Lib, die wwerde ich mir noch 
ansehen.

Jetzt bin ich aber beim Nachdenken auf das Problem gestoßen, dass der 
Motor für den Vorwärtshub eine positive und für den Rückwärtshub eine 
NEGATIVE Spannung/Strom (bezeichnung nicht ganz sauber) benötigt wird.

Meine Frage ist jetzt: Ist es möglich mit dem Arduino negative 
Spannungen zu erzeugen oder gibt es einen Trick, sodass der Arduino dem 
Verstärker etwas negatives gibt damit der Hub Rückwärts geht? Habe mir 
mal eine Ladungspumpe aufgebaut, sodass ich die 5V vom Arduino 
invertieren kann. Dachte mir dann so, dass ich dann detektieren muss ob 
jetzt vorwärts oder Rückwärts gefahren werden soll und dann 
dementsprechend das Steuersignal über den Ladungspumpenkreis geht und 
bei Vorwärtshub nicht über den Ladungspumpenkreis geht. Ich vermute, ich 
denke zu kompliziert.


Grüße

Autor: OPV (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PWM bei 50% -> 2.5 V - 2.5 V = 0 V

Oder einen weiteren Pin zum Invertieren nutzen, dann hast du ein Bit 
mehr.

https://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen#Verst.C3.A4rkergrundschaltungen

Autor: Andre R. (ltisystem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OPV schrieb:
> PWM bei 50% -> 2.5 V - 2.5 V = 0 V
>
> Oder einen weiteren Pin zum Invertieren nutzen, dann hast du ein Bit
> mehr.
>
> 
https://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen#Verst.C3.A4rkergrundschaltungen

vom prinzip her verstanden

heißt aber mein pwm muss zwischen -2.5V und +2.5V sein...wie bekomm ich 
aus dem arduino eine negative spannung?

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andre R. schrieb:
> wie bekomm ich
> aus dem arduino eine negative spannung?

Aus dem Arduino bekommst du keine negative Spannung.
Für die Vor- und Rückwärtsbewegung wirst du eine H-Brücke brauchen.
Wieviel Strom braucht dein Motor?

Autor: Andre R. (ltisystem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hubert G. schrieb:
> Andre R. schrieb:
>> wie bekomm ich
>> aus dem arduino eine negative spannung?
>
> Aus dem Arduino bekommst du keine negative Spannung.
> Für die Vor- und Rückwärtsbewegung wirst du eine H-Brücke brauchen.
> Wieviel Strom braucht dein Motor?

Habs grad gemessen: Der Motor zieht bei 20Hz ca. 500mA.

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.