Hallo liebes Forum,
ich habe einen alten Festplattenmotor und möchte diesen mit einem
Arduino UNO ansteuer. ich habe einen der 4 Anschlüsse an GND
angeschlossen und die anderen 3 jeweils an Pin 9, 10 und 11. Der Code
ist fogendermaßen:
1
int pin_mot1 = 9;
2
int pin_mot2 = 10;
3
int pin_mot3 = 11;
4
5
6
void setup()
7
{
8
pinMode(pin_mot1,OUTPUT);
9
pinMode(pin_mot2,OUTPUT);
10
pinMode(pin_mot3,OUTPUT);
11
}
12
13
void loop()
14
{
15
digitalWrite(pin_mot1,HIGH);
16
delay(2000);
17
digitalWrite(pin_mot1,LOW);
18
19
digitalWrite(pin_mot2,HIGH);
20
delay(2000);
21
digitalWrite(pin_mot2,LOW);
22
23
digitalWrite(pin_mot3,HIGH);
24
delay(2000);
25
digitalWrite(pin_mot3,LOW);
26
}
Leider summt der Motor nur vor sich hin. Eigenlich müsste eine Spannung
ausreichen. Durch einfaches Anlegen einer Spannung von 3,3V mit einem
Kabel springt der Motor immer in die nächste Position.
Danke im Voraus
HeMu
Vielleicht ist es ein bipolar anzuschließender Schrittmotor. Dann wäre
"ein Anschluß fest an Gnd" sicher nicht die richtige Wahl.
Dem µC würde ich den Wicklungsstrom allerdings in keinem Fall direkt
zumuten.
Danke für ihre schnelle Anworten
Der Strom des arduinos reicht aus, da ich es ja geschafft habe, den
Motor "manuell" anzusteuern. Dies habe ich mit dem 3,3V Anschluss des
Arduino geschafft. Währe es besser, das ganze mit Transistoren zu
steuern?
HeMu L. schrieb:> Währe es besser, das ganze mit Transistoren zu> steuern?
'Wäre' :-P
Ja, auf jeden Fall- Erstens erzeugt der Motor beim Abschalten der
Spulenspannungen Spannungspitzen, die direkt zurück in den MC auf dem
Arduino Board gehen und diesen zerstören können und zweitens benötigt
der HDD Motor wesentlich mehr Strom als die max. 40mA, die ein AVR
liefern kann.
Da es aber genug Beispiele für kleine Motorendstufen und Arduino gibt,
solltest du danach einfach mal suchen.
Und du solltest PWM benutzen. Je nach Drehzahl des Motors darfst du
nicht einfach volle Ströme an die Wicklungen anlegen, da der Motor sonst
richtig warm wird und uneffektiv läuft. Schau mal nach 'sensorlosem
BLDC', um das Prinzip zu verstehen. Der MC braucht eine Rückmeldung vom
Motor, um die SPulen richtig zu kommutieren.
HeMu L. schrieb:> Leider summt der Motor nur vor sich hin. Eigenlich müsste eine Spannung> ausreichen. Durch einfaches Anlegen einer Spannung von 3,3V mit einem> Kabel springt der Motor immer in die nächste Position.
Strom!
Der Motor zieht viel mehr Strom als die 20mA, die Du aus einem
Arduino-Output herausziehen darfst!
Mach noch mehr solche Experimente, und alle diese Pins:
int pin_mot1 = 9;
int pin_mot2 = 10;
int pin_mot3 = 11;
werden Dir abrauchen.
Das ist eine gesteuerte selektive Zerstörung von drei Ausgängen des
Mikrocontrollers, was Du da als Experiment laufen hast.
HeMu L. schrieb:> Der Strom des arduinos reicht aus, da ich es ja geschafft habe, den> Motor "manuell" anzusteuern. Dies habe ich mit dem 3,3V Anschluss des> Arduino geschafft.
der 3,3V Anschluss liefert natürlich mehr Strom als ein uc-Ausgang,
da muss ein Treiber dazwischen und das Programm für einen BLDC ist auch
etwas umfangreicher!
Walter schrieb:> da muss ein Treiber dazwischen
Das ist vollkommen richtig.
Ich würde es als Treiber mal mit einem Darlington-Array Chip wie
ULN2003A oder ULN2803A probieren. Die drei Arduino-Pins an drei Eingänge
des Darlington-Treibers hängen und mit den Ausgängen den Motorstrom
schalten lassen.
> und das Programm für einen BLDC ist auch etwas umfangreicher!
Nein, das Programm ist schon OK, um eine Festplatte so zum Drehen zu
bringen, dass man es sehen kann. Mit Delayzeiten bis runter zu 100ms
sollte es einwandfrei klappen, dass der Motor Schritt für Schritt
steppt. Langsam, aber dreht sich.
Natürlich kann er mit diesem Programm die Platte nicht bis auf ihre
Nenndrehzahl beschleunigen, das funktioniert so natürlich nicht.
Der Beitrag ist zwar schon etwas her aber die Antworten stimmen. Der
Motor einer Festplatte zieht deutlich mehr Strom als das Board ausgeben
kann. Das Einfachste wäre, wenn man die Festplatte an ein Netzteil
hängen würde. Da reicht dir schon ein billiges aus ebay.
(Nicht vergessen den Stecker für das Mainboard kurz zuschließen;) )
H4wK schrieb:> Das Einfachste wäre, wenn man die Festplatte an ein Netzteil> hängen würde. Da reicht dir schon ein billiges aus ebay.> (Nicht vergessen den Stecker für das Mainboard kurz zuschließen;) )
Das ist natürlich Unsinn. Einen Festplattenmotor kann man nicht einfach
'an ein Netzteil anschliessen', denn ein BLDC braucht eine Elektronik,
die die Weiterschaltung der Spulen erledigt. Da BLDC keine Sensoren
haben, wie z.B. Kopftrommel- oder Capstanmotore aus Videorecordern, ist
der Trick, aus der Gegen-EMK (auch BMF genannt) die Lage des Rotors zu
bestimmen.
H4wK schrieb:> Der Beitrag ist zwar schon etwas her aber die Antworten stimmen.
Na deine Antwort ist zumindest, trotz 2 Jahren Bedenkzeit, völliger
Quatsch.
Ein handelsüblicher Festplattenmotor ist ein BLDC und läuft ohne dazu
passende Ansteuerung gar nicht vernünftig.
Lies halt erst mal was, bevor du antwortest.
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.10.1
Paul R. schrieb:> Nur kurz gefragt: Gibt's die Motoren auch mit internem Controller?
Zumindest ein externes IC haben sie alle. Ob das dann direkt am Motor
sitzt, oder über ein Kabel mit ihm verbunden ist, unterscheidet sich
allerdings.
Wie wäre es denn, wenn man das IC + den Motor rausrupft ( dann hat man
auch eine Ansteuerung die passt) und später den Controller mit I2C,
UART, Widerstandsgrab oder sonstwas ansteuert? Wäre das nicht viel
einfacher? ( Diese Methode setzt das Vorhandensein einer derartigen
Schnittstelle natürlich voraus)
Paul R. schrieb:> und später den Controller mit I2C,> UART, Widerstandsgrab oder sonstwas ansteuert?
Das könnte nur gehen, wenn du die Unterlagen des IC hast und dass ist
gerade bei Festplatten so gut wie unmöglich. Ausserdem sind die HDD
heute so hoch integriert, das wichtige Teile der Motorkontrolle in einem
BGA oder LQFP mit 100 und mehr Anschlüssen verbuddelt sind - keine
Chance.
Motorendstufen und die Ansteuerung sind ja auch keine Hexerei, sondern
einfache Technik, die man mit ein paar kleinen MOSFet für so einen Motor
hinkriegen kann. Im einfachsten Fall sind das 3 N-Kanal und 3 P-Kanal
Mosfet und ein kleiner MC a là Mega88-328.
Der Festplattenmotor ist insofern eine Herausforderung, als das er keine
Sensoren hat und deswegen auf eine Rückmeldung der BMF über AD-Wandler
oder -Komparator angewiesen ist.
Hallo liebe Gemeinde :)
mich interessiert dieses Thema auch,
angenommen der Festplattenmotor würde einen
Hallsensor als Positionsgeber verpassst bekommen,
wäre dann die Regelung von Amplitude und Frequenz einfacher?
Grüsse aus B
der Marc