Ciao a tutti, purtroppo non possedendo il datasheet del motorino dell'hard disk che posseggo mi affido a voi. Il motorino in questione (quindi come presumo avendo letto da un altro post, il motore sarà brushless), ha quattro pin che escono.
Il mio intento è semplicemente collegarlo al mio arduino (r3) e comandarne la velocità con un potenziometro. Non conosco tensione e amperaggio supportato, ma credo che si eguaglino a quelli di altri hd (+5V 0,72A +12V 0.52A).
Qualcuno riuscirebbe a darmi una mano per il circuito ed il programma?
Purtroppo mi ritrovo solo il motorino in mano, apparteneva ad un hard disk di un server Proliant. quindi non raggiunge i soliti 7500 giri ma 10000rpm. In giro ho letto che il motore dovrebbe essere un trifase asincrono e che il quarto polo è ovviamende gnd
di arduino ne capisco poco ma sò che nel modellismo aereo vengono usati sia i motori dei lettori CD che quelli degli HD per far volare piccoli aereomodelli, e son sicuro che per tale scopo andavano fatte delle modifiche perchè per quelle esigenze andavano collegati da triangolo a stella o viceversa la mia memoria non ricorda ....
Ma che Arduino riesca a "pilotare" un motore brussless di quel tipo non credo perchè su quel tipo di motore si collegano ESC (acceleratore elettronico modellistico ) dai 10 ai 15 A....
In quest'altro video il tizio posta anche il codice da lui utilizzato. Qualcuno riuscirebbe a darmi una mano per i collegamenti?
ps il codice non viene verificato correttamente dal compilatore
*/
#include (Servo.h)
Servo myservo;
int val; //Value for motor speed.
int analogPin = 3; //Potentiometer on pin 3
int servoPin = 9; //ESC on pin 9
int armValue=20; //"ZERO" position for arming ESC. As some wont arm with a '0' value from the arduino. (may need to experiment)
void arm(){ //Arming sequence of sending a minimum or 'joystick zero' for 2 seconds to simulate radio gear is ON and operational. myservo.write(armValue);
delay(2500); //Delay for the ESC to activate. (may need to experiment)
}
void setup() { Serial.begin(9600);
myservo.attach(servoPin); arm();
}
void loop(){
int val = analogRead(analogPin); //Make a analogue reading. This is from 0-1023
val = map(val, 0, 1023, armValue, 180); //Scale input to use it with the servo ie from the arming value to 180.
myservo.write(val); //Send servo position - Motor speed to ESC.
Serial.println(val); delay(100);
}