problema stepper: torna indietro!

Ragazzi sto impazzendo, ho provato lo schema ufficiale dal sito arduino:

con un mio stepper unipolare. Per la prova ho usato un ULN2003, che tra l' altro scalda tantissimo...e ho alimentato il motore con un alimentatore switching a 5v 2,5A. Appena alimento tutto il motore parte, e gira correttamente, poi ad un certo punto torna indietro..cosa sbaglio?
Ecco il video:

Dove sbaglio? ho acquistato inoltre un driver da futura elettronica, ha diversi jumper, non aveva istruzioni, e nessuno ha saputo dirmi come utilizzarlo..nel video si vede, è posizionato vicino al motore, qualcuno può aiutarmi?

ULN2003 pilota al massimo 500mA per canale e, anche se non ho trovato una indicazione precisa nel datasheet, penso che la corrente massima possa arrivare a 2A complessivi.

Lo stepper che usi è abbastanza grosso ed il suo assorbimento credo si avvicini ad 1A (se non di più).

E' normale che ULN2003 scaldi tanto e probabilmente dopo alcuni secondi qualche avvolgimento non funzioni più quindi il rotore giri a scatti.

Devi pilotare lo stepper con un transistor/MOSFET di potenza (uno per avvolgimento)

Questo shield:
http://www.futurashop.it/ codice "Cod. 7100-MOTORSHIELD_FE"

Ci sono un pò di spiegazioni e anche uno sketch Arduino.
Shield per Arduino basata sul driver doppio full bridge L298P in grado di pilotare sia motori DC che passo-passo. La scheda, compatibile con Arduino Duemilanove, Arduinouno, Arduinomega, ecc... dispone di una morsettiera per il collegamento di due motori e di pin strip maschio/femmina che consentono l’inserimento in cascata di altre schede. L’alimentazione per i motori può essere fornita dall’esterno (7÷46 Vdc) o direttamente dalla scheda Arduino. Ciascuno dei due canali d’uscita dello shield è in grado di fornire una corrente massima 2 A, ciò permette di pilotare due motori DC da 2 A ciascuno o un motore passo-passo bipolare con un assorbimento di 2 A per fase. Dimensioni: 69,85 mm x 54,60 mm.
USARE LO SHIELD
La prima cosa da fare prima di utilizzare lo shield è definire mediante i jumper DIRB, PWMB, DIRA, PWMA quali sono i pin di Arduino dedicati rispettivamente al controllo della direzione (DIR) e velocità (PWM) dei due canali B ed A. La figura 1, ad esempio, mostra la scelta dei pin 13 per DIRB, il pin 11 per PWMB, il pin 7 per DIRA e il pin 6 per PWMA. Oltre a questo è necessario selezionare la sorgente di alimentazione dei motori (esterna = EXT o interna = INT) tramite il jumper JP1. Nel nostro caso la sorgente EXT è quella collegata ai morsetti PWR mentre quella interna è rappresentata dalla scheda Arduino. La figura 2 mostra, ad esempio, la scelta della sorgente EXT quale fonte di alimentazione dei motori. I LED bicolore (verde/rosso) LD1 e LD2, montati a bordo scheda, indicano con la loro accensione il senso di rotazione dei motori collegati alla scheda.

7100-MOTORSHIELD_FE.jpg

ti ringrazio, l' avevo visto anche io, ma per esempio, a cosa servono i jumper DIRB, PWMB, DIRA, PWMA ?

robyr1:
ti ringrazio, l' avevo visto anche io, ma per esempio, a cosa servono i jumper DIRB, PWMB, DIRA, PWMA ?

Ma lo hai letto l'articolo in Pdf ?

certo, l' ho letto, ma purtroppo è proprio questa parte che non capisco:

La prima cosa da fare prima
di utilizzare lo shield è definire
mediante i jumper DIRB,
PWMB, DIRA, PWMA quali
sono i pin di Arduino dedica

ti rispettivamente al controllo
della direzione (DIR) e velo

cità (PWM) dei due canali B
ed A. La figura 1, ad esempio,
mostra la scelta dei pin 13 per
DIRB, il pin 11 per PWMB, il
pin 7 per DIRA e il pin 6 per
PWMA

  1. Per pilotare un motore stepper, hai bisogno di tutti e due i canali, A e B
  2. Ogni canale ha bisogno di due segnali. PWM ( c0ntrollo di velocita ) e DIR ( direzione )

nello sketch di esempio vengono impostati
int pwm_a = 3;
int pwm_b = 9;
int dir_a = 2;
int dir_b = 8;

Ma se tu questi pin li avessi gia' occupati per qualche altra cosa, potresti variarli.
E' a questo che servono i Jumper. A collegare fisicamente il Pin scelto da sketch con il piedini interessato sulla Motor Shield

Non puoi usare la libreria stepper.h

I pin PWR sono collegati ai pin Enable del L298 e i pin DIR sono collegati una volta direttamente al entrata di un mezzo ponte e l' altra volta col transistore invertito al altra entrata del mezzo ponte.
In pratica piloti in contemporanea tutti due le entrate del Ponte H contemporanemente.

Collega i pin PWM a +5V e i 2 pin DIR con la seguente sequenza:
DirA H L L H
DirB L L H H

Ciao Uwe

cyberhs:
ULN2003 pilota al massimo 500mA per canale e, anche se non ho trovato una indicazione precisa nel datasheet, penso che la corrente massima possa arrivare a 2A complessivi.

Ti sbagli. Guarda il grafico a pagina 5 figura 10 e 11 http://www.doyoung.net/video/DATASHEET/PDF/ULN2003.pdf

4 uscite possono comutare al massimo ca 250mA contemporaneamente.

Ciao Uwe

Caspita sono ancora più confuso!! come farò a far girare sto motore??? Rinuncio al driver della futura elettronica, troppo complesso!! Altre soluzioni? so youtube vedo tanti video di gente che utilizza dei semplici ULN2003!! e i motori sono grossi come il mio!

E' un peccato non usare lo shield. A questo link mi sembra ci sia un tutorial proprio sul tuo:

scusa, ma il chip dello shield e l'altro chip sono praticamente identici nel funzionamento, non è che uno è magico e fa tutto da solo. (anzi, lo shield è semplifica!)

Quindi testa bassa e rileggi i consigli di Uwe con il datasheet sotto mano

Scusate, il progetto al quale mi riferisco è esattamente questo:

Ho provato ma gira a scatti poi si ferma...il tipo mi dice che probabilmente è un problema di stepper, se lo alimento con i 5v di arduino non va...quindi dovrei applicare una tensione (e una corrente) più alta direttamente al pin 8. Dallo schema però vedo che il pin8 è anche collegato ai 5v di arduino, a questo punto devo scollegare i 5v di arduino e collegare la mia tensione esterna? qui c'è lo schema:

nid69ita:
E' un peccato non usare lo shield. A questo link mi sembra ci sia un tutorial proprio sul tuo:
Motor Shield FE e motore bipolare - Mauro Alfieri Wearable Domotica Robotica Elettronica, Robotica e Domotica
Motor Shield FE e motore bipolare - controllare gli step - Mauro Alfieri Wearable Domotica Robotica Elettronica, Robotica e Domotica

Secondo me in queste pagine sbagliano alla grande nella implementazione della sequenza di implementazione dela sequenza di ecitazone delle 2 bobbine.

Ciao Uwe

uwefed:
nella implementazione della sequenza di implementazione dela sequenza

Uh... :sweat_smile:
Uwe, stasera mi sa che hai abbondato con la cena, vero? :wink: :stuck_out_tongue_closed_eyes:

non tutte le ciambelle nascono col buco. 8) 8)

Ragazzi ho risolto!! bastava scollegare l' alimentazione 5v di arduino al pin 8 dell' IC, e applicare 5v 2A da un altro alimentatore, FUNZIONA!!

colega il GND dell'altro alimentatore al gnd arduino!