Forum: Mikrocontroller und Digitale Elektronik Voice Coil Motor


von Andre R. (ltisystem)


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

von OPV (Gast)


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

von Andre R. (ltisystem)


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?

von Hubert G. (hubertg)


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?

von Andre R. (ltisystem)


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.

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.