Problema con Driver DRV8825


salve tutti.

sto creando una sorta di robot/ macchinina telecomandata  e sto usando questi motori nema 17 come ruote, con una batteria 12v e 7.2 ah per alimentarli.

inizialmente utilizzavo come driver easydriver 4.4, ma mi hanno fatto giustamente notare che questi driver fornivano solo 750 ma contro 1.7a richiesti dai motori, cosi ho deciso di passare ai driver drv8825.

il problema è che ora, con lo stesso codice che utilizzavo prima, le ruote non partono più. non riesco capire se è un problema di codice che va adattato per nuovi driver, oppure se ho sbagliato qualcosa nei collegamenti dei cavi.

ho seguito questa immagine per collegamenti quindi:

- pin step e dir collegati ai pin 4 e 5 di arduino
- pin sleep e reset collegati 5v
- pin vmot e gnd collegati al polo positivo e negativo della mia batteria
- pin b2 b1 a1 a2 collegati ai 4 cavi dei miei stepper
- pin fault vuoto
- pin gnd collegato ovviamente gnd
- gli altri pin vuoti

penso che collegamenti vadano bene ma se qualcuno ha qualche accorgimento ben venga, non capisco perchè le ruote con lo stesso codice non vadano più (prima con vecchi driver andava)

questo è il codice:

code: [select]
#include <accelstepper.h>
#include <softwareserial.h>

int rx = 3;
int tx = 2;
int speeda1 = 0;
int speeda2 = 0;
int signa2 = 1;
int signa1 = -1;
char y;

softwareserial bluetooth(rx, tx);
accelstepper stepperanteriore2(accelstepper::driver, 11, 12);
accelstepper stepperanteriore1(accelstepper::driver, 5, 4);


void setup()

  serial.begin(9600);
  bluetooth.begin(9600);
  stepperanteriore1.setmaxspeed(4000);
  stepperanteriore2.setmaxspeed(4000);
  stepperanteriore1.setspeed(0);
  stepperanteriore2.setspeed(0);

}

//////////////////////////////////metodo per il calcolo della velocità e direzione dei motori

void speed (int signa1, int signa2) {   
    stepperanteriore1.setspeed(signa2 * speeda1);
    stepperanteriore2.setspeed(signa1 * speeda2);
}

void loop()

/////////////////////////////////////rilevazione del bluetooth

  char c;
  while(bluetooth.available()) {
    c = bluetooth.read();

    switch (c) {
     
      case '4':  //avanti
        delay(500);
        signa2 = 1;     
        signa1 = -1;
        speeda1 = 200;
        speeda2 = 200;
        speed(signa1, signa2);
      break;

      case 'r':    //indietro
        delay(500);
        signa2 = -1;
        signa1 = 1;
        speed(signa1, signa2);
      break;

      case 's':   //stop
        signa1 = 0;
        signa2 = 0;     
        speed(signa1, signa2);
      break;

      case '1':   //modifica velocità
        if (speeda1 >=1000) { speeda1 = 500;} else { speeda1 += 250; }
        if (speeda2 >=1000 ) { speeda2 = 500;} else { speeda2 += 250; }
      break;

      case '2':   //curva destra
        speeda1 = 250;
        speeda2 = 1000;
        speed(signa1, signa2);
      break;

      case '3':   //curva sinistra
        speeda1 = 1000;
        speeda2 = 250;
        speed(signa1, signa2);
      break;
       
    }
  }
  stepperanteriore1.runspeed();
  stepperanteriore2.runspeed();
}


ringrazio in anticipo chiunque mi aiuterà :)

hai regolato il trimmer che limita la corrente massima?


Arduino Forum > International > Italiano > Hardware (Moderator: leo72) > Problema con Driver DRV8825


arduino

Comments

Popular posts from this blog

Error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode - Raspberry Pi Forums

class MPU6050 has no member named begin

missing filename after '-o'