Problema col controllo motore brushless trifase

Ciao,
Ho collegato uno stepper motor trifase preso da un Hard Disk vecchio ad Arduino, utilizzando 3 transistor pilotati in sequenza. Il motore si muove, però dopo circa 2 minuti arduino si riavvia, il motore ricomincia a muoversi per 10 secondi, poi arduino si riavvia, il motore riparte per 10 secondi, poi arduino si riavvia... e cosi via.. Qual'è il problema?
Allego lo schema fatto di fretta in paint, spero si capisca qualcosa:

Girovagando per i forum penso di aver capito che il problema è il diodo messo nel posto sbagliato, ma non so. Attendo il vostro aiuto. :relaxed:..
Lo sketch:

int transistordaattivare = 0;
int intervallo;
void setup()
{
  // put your setup code here, to run once:
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
  intervallo = 40000;
  Serial.begin(9600);
}

void loop()
{
  
  // put your main code here, to run repeatedly:
  if (transistordaattivare == 0)
  {
    digitalWrite(9,HIGH);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
    transistordaattivare = 1;
    Serial.println("Fase 0");
    delayMicroseconds(intervallo);
  } else if (transistordaattivare == 1)
  {
    digitalWrite(9,LOW);
    digitalWrite(10,HIGH);
    digitalWrite(11,LOW);
    transistordaattivare = 2;
    Serial.println("Fase 1");
    delayMicroseconds(intervallo);
  } else if (transistordaattivare == 2)
  {
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);
    digitalWrite(11,HIGH);
    transistordaattivare = 0;
    Serial.println("Fase 2");
    delayMicroseconds(intervallo);
  }
}

Non è uno stepper motor ma un brushless
Alimenta il motore con un alimentatore a parte

Ciao

flz47655:
Non è uno stepper motor ma un brushless
Alimenta il motore con un alimentatore a parte

Ciao

Ah grazie, pensavo fosse uno stepper visto che doveva essere comandato a "passi", alimentando un avvolgimento per volta.
Cosa intendi per alimentatore a parte? Ho bisogno di comandarlo con arduino e vorrei usare i suoi 5v. E' possibile?

Mi sa che il motore consuma troppa corrente e fa scattare il fusibile di Arduino.
Ciao Uwe

Il diodo è messo nella posizione corretta. Come ti hanno consigliato usa un alimentatore esterno in grado di fornire maggiore potenza (1Amper o più) il GND lo metti a GND di arduino e il +5V lo colleghi ai tre collettori, in questo modo lo comandi sempre con arduino ma la corrente per il motore proviene dall'alimentatore esterno.

Occhio che questa cosa si può fare solo perché le tensioni sono simili, se non lo sono i bjt potrebbero non riuscire a condurre con 5 volts in base.

Ciao.

MauroTec:
Occhio che questa cosa si può fare solo perché le tensioni sono simili, se non lo sono i bjt potrebbero non riuscire a condurre con 5 volts in base.
Ciao.

é viceversa se usi PNP collegati al positivo con una tensione maggiore di 5V non riesci con 5V a spegnere i transistori.

Metti il comune (centrostella al polo positivo e i tre avvolgimenti con 3 NPN a massa . Cosí puoi pilotare i Transitori con 0/5V e puoi mettere una tensione a tuo piacimento sul comune. Il polo negativo del alimenatore del motore devi collegare a massa Arduino.

Ciao Uwe

Metti il comune (centrostella al polo positivo e i tre avvolgimenti con 3 NPN a massa . Cosí puoi pilotare i Transitori con 0/5V e puoi mettere una tensione a tuo piacimento sul comune. Il polo negativo del alimenatore del motore devi collegare a massa Arduino.

Infatti, glielo avrei dovuto dire anche prima, ma non ci ho fatto caso, non mi sono reso conto cosa comporta quella connessione. L'emettitore sollevato da GND dalla RDC dell'avvolgimento di una fase comporta la necessità di fornire una maggiore tensione di base per portarlo in piena conduzione, e non buono ne efficiente, correggi lo schema come suggerito da uwe, sarebbe a dire come se ogni bobina di fase fosse un relè dove un capo di ognuno è connesso a VCC, l'altro capo ognuno al collettore di NPN con emettitore a GND.

Ciao.

MauroTec:

Metti il comune (centrostella al polo positivo e i tre avvolgimenti con 3 NPN a massa . Cosí puoi pilotare i Transitori con 0/5V e puoi mettere una tensione a tuo piacimento sul comune. Il polo negativo del alimenatore del motore devi collegare a massa Arduino.

Infatti, glielo avrei dovuto dire anche prima, ma non ci ho fatto caso, non mi sono reso conto cosa comporta quella connessione. L'emettitore sollevato da GND dalla RDC dell'avvolgimento di una fase comporta la necessità di fornire una maggiore tensione di base per portarlo in piena conduzione, e non buono ne efficiente, correggi lo schema come suggerito da uwe, sarebbe a dire come se ogni bobina di fase fosse un relè dove un capo di ognuno è connesso a VCC, l'altro capo ognuno al collettore di NPN con emettitore a GND.

Ciao.

Ciao.
Il motore ha solo 4 pin, 3 immagino siano un estremità delle 3 bobine, mentre l'altro dovrebbe essere il GND; sono tutti e tre a massa comune, come proseguo?

Penso proprio che la polarità è indifferente, cioè quello che hai connesso a GND lo connetti a VCC, le tre fasi come ti abbiamo descritto, ogni transistore commuta a GND la fase alimentandola.

VCC in questo caso proviene dall'alimentatore esterno o pacco di batterie.

Ciao.