Pages: [1]   Go Down
Author Topic: Problema col controllo motore brushless trifase  (Read 95 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.  smiley-slim..
Lo sketch:
Code:
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);
  }
}
« Last Edit: April 21, 2014, 04:20:47 pm by WolfReverse » Logged

Parma
Offline Offline
Edison Member
*
Karma: 19
Posts: 2322
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Ciao
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 236
Posts: 20273
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 2810
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

BZ (I)
Online Online
Brattain Member
*****
Karma: 236
Posts: 20273
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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
Logged

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 2810
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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?
Logged

0
Offline Offline
Faraday Member
**
Karma: 24
Posts: 2810
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Pages: [1]   Go Up
Jump to: