programma arduino non parte

salve a tutti, ho creato un programma di base per far muovere un motore passo passo da 5 fili, invio il programma(che si carica al 100%)ma non succede nulla...qualcuno sa dirmi il perchè?...ho alimentato il circuito con i 5v di arduino, sono troppo pochi?
CARATTERISTICHE
-arduino uno
-motore mitsumi M42SP(ricavato da una stampante), 5 fili: 4 rossi e uno biano, cercando le fasi con il tester mi compare che la fase in comune è il filo centrale rosso e non quello bianco diverso dagli altri..il motore funziona a 12v, 025A per fase
-ponte h ULN2004AN

Senza un disegno dei collegamenti o una foto e senza il codice dello sketch è impossibile indovinare cosa non va.

Ecco i collegamenti

Stai prelevando i +3.3V al posto dei +5V!

Comunque, il motore lavora a 12V, quindi anche i 5V sono insufficienti.

Sulla foto non hai inserito il ULN2004 nella Bradbord ma solo appogiato.
Il ULN2004 é fatto per essere pilotati da circuiti CMOS che funzionano da 6V a 15 V. Molto probabilmente non funziona con Arduino. Per l' Arduino devi usare un ULN2003.
Il motore a vuoto funzionerá con 5V ma é meglio alimentarlo esternamente collegando il polo negativo con GND di Arduino.

Ciao Uwe

Ok, allora provo ad inserire di più l'integrato, e lo alimento con un alimentazione esterna...appena lo faccio vi posto la foto per vedere se è giusto il collegamento...in teoria arduino riconosce questo integrato, l'ho già visto utilizzato da altre parti!! :slight_smile:

Quelli usavano tutti il ULN2003. In parole duemilatre e non duemilaquattro.
Se veramente usano il ULN2004 stanno sbagliando.

Ciao Uwe

montato uln2003 e questa volta l'ho attaccato bene!!..:)..ora il motore parte ma fa solo un passo in avanti e uno indietro, come mai?
ecco il programma:

/*
movimento motore 5 fili
*/

int motorPin1 = 8;
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 500;

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}

void loop() {
  digitalWrite(motorPin1, HIGH);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(delayTime);
}

/*

Ciao.
Per favore, modifica il tuo precedente post includendo il codice con i tag CODE.
Vedi come fare al punto 7 → http://forum.arduino.cc/index.php?topic=149082.0

mi verrebbe da pensare, che tu abbia erroneamento collegato le fasi del motore...

ricordo che vanno collegate nella "sequenza" giusta, sbagliarne anche una sola, fa si che il motore non giri o abbai comportamenti molto curiosi!

p.s. sai quanta corrente assorbe sto motore? non vorrei che ne assorbisse troppa e andasse a caricare un pò l'usb (anche se 500ma non son pochi :wink: )

sisi ma era solo per piccole prove questa alimentazione, poi lo alimento con una sua alimentazione!! :slight_smile:

si ma quella ara solo mic uriosità, la cosa fondamentale è..sei certo di aver collegato le fasi correttamente...

(pe ersempio A, B, C, D e non B,A,C,D...perche basta uan sbagliata e funziona male o per nulla)

no =(...come faccio a vedere se le fasi sono nell'ordine giusto? A+B+A-B-?

omanda da un miliardo di dollari... non so vedi se trovi in rete i datasheet e li sicuro ce scritto... sennò vai a tentativi.

ma devi essere certo che cio che sta prima al motore faunzioni perfettamente... poi pazienza, tempo e tanta buona volontà :disappointed_relieved:.. ma sapere l'esatto ordine delle fasi è fondamentale

se il tuo è come penso un unipolare

dovari collegare A+, B+,C+, D+ ai relativi mosfet

mentre A-,B-, C- D- assieme tra loro e metterli a +vcc (quale sai vcc non so occhio!!) almeno questo ricavo da quanto detto da te e dal programma che hai scritto, poi se il motore è ancora differente (ma a occhio non credo) bisognarebbe agire diversamente.

questa sera provo a scambiare un pò i fili del motore....da quello che ho rilevato con il tester il filo comune è quello centrale che ha intensità uguale con tutti gli altri fili..:wink:

ottimo, allora quello dovrebbe essere il comune, ora non ti resta che scoprire la sequenza! con il meto a caso se non trovi info on-line (guarda sul connettore o dove entrano i fili se ce scritto qualcosa... non si sa mai, a volte si è anche fortunati!!) facci sapere l'esito...

...oppure (ma è piu fine la cosa) puoi scriverti un programma che cambia in automatico le sequenze (fa fare un pò di passi, poi cambia, altri passi (ovviamente che ti scriva via seriale cosa sta facendo) cosi fa lui tutto il :smiley:

=( =( =( =(scambiando i fili non ho trovato nulla, più che altro non ci capisco più nulla :)..qualche idea? :sweat_smile:

manda una buona foto del motore inquadrando dove escono i fili.

cyberhs:
Stai prelevando i +3.3V al posto dei +5V!

Mi pare di no, il 5° pin, sulle schede R3, è il pin 5V, il pin 3V3 è il 4°, che non è usato. Occhio alla prospettiva della foto :wink: