DVR8825 Stepper Driver e Arduino

Salve ragazzi,
sto tentando di pilotare un motore passo-passo Nema!7 (1,7A e 200 passi/giro) con il driver DVR8825 collegato ad Arduino.

Lo schema che segue è quello consigliato da Pololu (vedi allegato)
e il codice usato quello consigliato da questo post del 2016: [Risolto] DRV8825 + Motore Passo Passo + Codice di Esempio - Generale - Arduino Forum

Alimento il motore con un alimentatore esterno 12Volt 1,5A.

Il motore non si muove ma in compenso il DVR8825 nonostante il dissipatore si surriscalda di parecchio.

Ho provato a regolare la vref ma nulla (sono al terzo DVR8825 che provo e forse brucio!)

Cosa mi consigliate?

Grazie
Dugajimi

DRV8825.png

Nella foto allegata mancano i collegamenti in nero a causa del sottofondo nero.

Per primo l'alimentatore é sottodimensionato. Se imposti 1,7A deve avere almeno 2,5A.

Poi un DV8825 non puó rompersi; limita lui la corrente del motore.
Non sara mica che gli dai una tensione alternata come alimentazione motore?

Ciao Uwe

uwefed:
Nella foto allegata mancano i collegamenti in nero a causa del sottofondo nero.

Intanto grazie per la risposta.
Non sò come mai non si vede ma si tratta del solito schema preso dal sito della pololu: Pololu - DRV8825 Stepper Motor Driver Carrier, High Current

uwefed:
Per primo l'alimentatore é sottodimensionato. Se imposti 1,7A deve avere almeno 2,5A.

Poi un DV8825 non puó rompersi; limita lui la corrente del motore.
Non sara mica che gli dai una tensione alternata come alimentazione motore?

No nessuna tensione alternata. Ho provato anche con un alimentatore 24V e 2A e anche in questo caso non parte. Ora provo con l'alimentatore 12V 20A.

se hai usato lo sketch della risposta #5
io ho qualche dubbio che queste 2 istruzioni facciano quello che si spera :slight_smile:

#define PAUSE_FOR_RPM(x) ( 300000 / x )

delayMicroseconds ( PAUSE_FOR_RPM ( rpm ) - STEP_PAUSE );

Patrick_M:
se hai usato lo sketch della risposta #5
io ho qualche dubbio che queste 2 istruzioni facciano quello che si spera :slight_smile:

#define PAUSE_FOR_RPM(x) ( 300000 / x )

delayMicroseconds ( PAUSE_FOR_RPM ( rpm ) - STEP_PAUSE );

Anche usando il codice della libreria stepper driver non ottengo niente

/*
 * Microstepping demo
 *
 * This requires that microstep control pins be connected in addition to STEP,DIR
 *
 * Copyright (C)2015 Laurentiu Badea
 *
 * This file may be redistributed under the terms of the MIT license.
 * A copy of this license has been included with this distribution in the file LICENSE.
 */
#include <Arduino.h>

// Motor steps per revolution. Most steppers are 200 steps or 1.8 degrees/step
#define MOTOR_STEPS 200
#define RPM 120

#define DIR 8
#define STEP 9
#define ENABLE 13 // optional (just delete ENABLE from everywhere if not used)


 #include "DRV8825.h"
 #define MODE0 10
 #define MODE1 11
 #define MODE2 12
 DRV8825 stepper(MOTOR_STEPS, DIR, STEP, ENABLE, MODE0, MODE1, MODE2);


// #include "BasicStepperDriver.h" // generic
// BasicStepperDriver stepper(DIR, STEP);

void setup() {
    /*
     * Set target motor RPM.
     */
    stepper.begin(RPM);
    stepper.enable();
    
    // set current level (for DRV8880 only). 
    // Valid percent values are 25, 50, 75 or 100.
    // stepper.setCurrent(100);
}

void loop() {
    delay(1000);

    /*
     * Moving motor in full step mode is simple:
     */
    stepper.setMicrostep(1);  // Set microstep mode to 1:1

    // One complete revolution is 360°
    stepper.rotate(360);     // forward revolution
    stepper.rotate(-360);    // reverse revolution

    // One complete revolution is also MOTOR_STEPS steps in full step mode
    stepper.move(MOTOR_STEPS);    // forward revolution
    stepper.move(-MOTOR_STEPS);   // reverse revolution


    delay(5000);
}

allora guardando il circuito che hai usato.... non sono connessi i pin enable, m0, m1, m2
ma nello sketch vengono usati per cui chiedo: hai modificato le connessioni come indicato?

e la vref l'hai impostata a circa 0,7-0,8V?

Patrick_M:
allora guardando il circuito che hai usato.... non sono connessi i pin enable, m0, m1, m2
ma nello sketch vengono usati per cui chiedo: hai modificato le connessioni come indicato?

No anche Enable e Mo, M1, M2 sono connessi.

Francamente non ci capisco più nulla.
Ho bruciato due integrati DVR8825 alimentandoli con alimentatore 12V-20A (fumo!). Sono sicuro della tensione avendo controllato col tester.
Non capisco veramente perchè. Non è che mi sono stati venduti per DVR8825 e sono qualcos'altro? Visto che non c'è scritto nulla?

dvr8825-00001.jpg

dvr8825-00002.jpg

dvr8825-00003.jpg

Sei sicuro che non hai invertito la polaritá dei 12V?
Non so indovinare se hai aquistato il prodotto che chiedevi o sei stato fregato. Dove hai comprato i pezzi?
Ciao Uwe

uwefed:
Sei sicuro che non hai invertito la polaritá dei 12V?
Non so indovinare se hai aquistato il prodotto che chiedevi o sei stato fregato. Dove hai comprato i pezzi?
Ciao Uwe

Sono certo anche di non aver invertito le fasi (o almeno credo).

I DVR8825 li ho comprati da Amazon

sicuro che il dissipatore non tocchi alcuni componenti sotto innescando un cortocircuito?

dugajimi:
I DVR8825 li ho comprati da Amazon

Prego link al prodotto.
Fai una foto di come hai collegato l'alimentazione al modulo.
Ciao Uwe

uwefed:
Prego link al prodotto.
Fai una foto di come hai collegato l'alimentazione al modulo.
Ciao Uwe

Link prodotto: https://www.amazon.it/gp/product/B078XJ3HX3/ref=oh_aui_detailpage_o02_s01?ie=UTF8&psc=1

Nella foto fo staccato il motore per fare vedere meglio

prova a verificare con questi collegamenti...

l'unica cosa che vedo è che hai messo in comune i negativi di arduino e dello stepper, forse meglio di no

a questo punto mi sa che è solo regolazione di vref

Se l' alimentazone é giusta allora hai messo il condensatore elettrolitico alla rovescia. La banda bianca di lato normalmente é il negativo.


Fai una foto dove si vede la polaritá della morsettiera del alimentatore.
Dovresti comunque collegare la terra al morestto di terra del alimentatore.

Ciao Uwe

occhio di falco :smiley:

Funziona!
Bisognava mettere a massa anche l'alimentatore come suggerito da uwefed.
Grazie uwefed adesso a posteriori sembra semplice ma invece non lo era e il mio errore mi è costato due DVR8825 bruciati.
Grazie anche a Patrick_M e a tutti gli altri.

Ora non mi rimane che regolare bene la vref.
Domanda: Essendo la corrente massima assorbita da ciascuna fase di 1.7A la vref deve essere vref = 1.7/2 = 0.7 diminuita del 30%?

e poi: la vref va misurata con motore collegato e alimetazione 12 Volt collegata oppure no?
(La maggior parte delle guide spiega la regolazione della vref per le schede delle stampanti 3d e questo mi crea confusione).

Grazie ancora

dugajimi:
Funziona!
Bisognava mettere a massa anche l'alimentatore come suggerito da uwefed.

Sono sorpreso. Consideravo questo consiglio come misura di sicurezza contro contatti accidentali con la 230V AC ma non una misura necessaria per il funzionamento. Se adesso funziona meglio cosí.
Ciao Uwe