Avvolgere con Arduino

Programmare una avvolgitrice

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Arcturus
    Triplocrusco

    Group
    Mastro Avvolgitore and Peer
    Posts
    5,612
    Location
    San Lorenzo in Campo marche

    Status
    Offline
    Ciao a tutti. Ho da poco completato la realizzazione meccanica di una avvolgitrice
    con motori passo passo e del relativo controllo Arduino che pilota due driver A4988.
    Adesso devo fare il programma. il primo scoglio è che i motori vanno a 1/2 passo
    anche se i tre pin del A4988 dedicati sono tutti scollegati e quindi il motore dovrebbe andare a passo intero.
    Qualcuno può aiutarmi. Poi avrò bisogno anche per proseguire con il programma eh eh !!
     
    Top
    .
  2.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Member
    Posts
    1,561

    Status
    Offline
    Ciao, non sono molto pratico dei vari controller di arduino, ma cercando in rete ho trovato qualche informazione in piu. Il datasheet dell' A4988 mi sembra abbastanza leggibile. L'integrato monta anche il doppio ponte per pilotare direttamente un piccolo motore passo passo. Probabilmente sfruttando tutta la corrente max (output drive capacity of up to 35 V and ±2 A) bisogna raffreddarlo con dissipatore e ventilatore. bye1
     
    Top
    .
  3.  
    .
    Avatar

    Arcturus
    Triplocrusco

    Group
    Mastro Avvolgitore and Peer
    Posts
    5,612
    Location
    San Lorenzo in Campo marche

    Status
    Offline
    Non è una questione di potenza è che va a 1/2 step invece che uno step intero.
    Mi spiego meglio. Il motore è da 200 passi giro ma per fare un giro completo
    devo dare 400 impulsi.

    const int pinDir = 6;
    const int pinStep = 7;
    const int pinDir_1 = 8;
    const int pinStep_1 = 9;
    const int numStepMotore = 200; //E' il numero di step per rotazione del motore
    const float razio = 10.36;// E' il rapporto di riduzione del riduttore IL RAPPORTO REALE DEL RIDUTTORE E'5,18
    const int rapporto = 6;// E' il rapporto dei giri del secondo albero rispetto al mandrino
    const int numGiri = 50;// Numero di giri impostati per ogno strato
    const int velIni = 3000;// velocità iniziale per la rampa
    const int velFin = 180;// velocità finale per la rampa
    const int rampa = 20;// incremento rampa
    const long numPassi = numStepMotore * numGiri * razio;// numero passi totali occorrenti per il n.giri impostato

    long passiFatti = 0;
    int dir = HIGH;
    int stato = HIGH;
    int stato_1 = HIGH;
    int app = 0;
    int velRampa = velIni;

    void setup() {
    //inizializzo i PIN come OUTPUT
    passiFatti = 0;
    pinMode(pinStep, OUTPUT);
    pinMode(pinDir, OUTPUT);
    pinMode(pinStep_1, OUTPUT);
    pinMode(pinDir_1, OUTPUT);
    //direzione dei motori
    digitalWrite(pinDir, HIGH);
    digitalWrite(pinDir_1, LOW);
    velRampa = velIni;
    }

    void loop() {
    //Fino al raggiungimento del numero di giri impostato
    while (passiFatti < numPassi) {
    // //esegue i passi del motore mandrino determinati dal rapporto delle velocità
    // for (int x = 0; x < rapporto; x++) {
    //delayMicroseconds(velocita);
    // Rampa di avvio
    if (velRampa > velFin) {
    velRampa = velRampa - rampa;
    }
    digitalWrite(pinStep, stato);
    app = app + 1;
    if (app == rapporto) {
    digitalWrite(pinStep_1, stato_1 );
    stato_1 = !stato_1;
    app = 0;
    }
    delayMicroseconds(velRampa);
    //delay(1);
    stato = !stato;
    passiFatti = passiFatti + 1;// incrementa il numero di passi eseguiti
    }

    //aspetto 3 secondi
    delay(3000);
    passiFatti = 0;
    dir = digitalRead(10);
    dir = !dir;
    digitalWrite(10, dir);
    velRampa = velIni;
    }
     
    Top
    .
  4.  
    .
    Avatar

    Radiotron
    carciofo_lr

    Group
    Radiomeccanico Moderatore
    Posts
    13,652
    Location
    Rimini

    Status
    Offline
    Scusa Tonino, premetto che non capisco molto di microcontrollori, ma sul driver A4988 c'è la possibilità di farlo funzionare in FULL ( che dovrebbe essere a passo intero ), mettendo gli ingressi MS1, MS2, MS3 in low come da tabella sul datasheet.
    Scusatemi sin da ora se ho detto una cavolata.
     
    Top
    .
  5.  
    .
    Avatar

    Arcturus
    Triplocrusco

    Group
    Mastro Avvolgitore and Peer
    Posts
    5,612
    Location
    San Lorenzo in Campo marche

    Status
    Offline
    No non è una cavolata è proprio questo che non funziona. Ho lasciato scollegati i tre pin
    di impostazione passi che dovrebbero essere a 0V perchè hanno resistenze interne verso massa
    come spiegato sul manuale. con questa configurazione (tutti e tre bassi) deve andare a passo intero
    però va a 1/2 passo.
     
    Top
    .
  6.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Member
    Posts
    1,561

    Status
    Offline
    QUOTE (albel51 @ 11/12/2022, 12:41 PM) 
    Scusa Tonino, premetto che non capisco molto di microcontrollori, ma sul driver A4988 c'è la possibilità di farlo funzionare in FULL ( che dovrebbe essere a passo intero ), mettendo gli ingressi MS1, MS2, MS3 in low come da tabella sul datasheet.
    Scusatemi sin da ora se ho detto una cavolata.

    Mi sembra corretto :b: Dalle tabelle del datasheet :
    step2
    Ma anche sul sito del modulo :
    step1
    Ne deduco che bisogna impostare i pin al livello logico adeguato. (MS1 = HIGH)
    Probabilmente dipende anche da che modulo e' stato acquistato. Magari i pin sono gia' preimpostati sull' smd con delle resistenze. :unsure:
     
    Top
    .
  7.  
    .
    Avatar

    Radiotron
    carciofo_lr

    Group
    Radiomeccanico Moderatore
    Posts
    13,652
    Location
    Rimini

    Status
    Offline
    Secondo quello che capisco io Tonino devi collegarli a massa.
     
    Top
    .
  8.  
    .
    Avatar

    Arcturus
    Triplocrusco

    Group
    Mastro Avvolgitore and Peer
    Posts
    5,612
    Location
    San Lorenzo in Campo marche

    Status
    Offline
    Fatto non cambia nulla
     
    Top
    .
  9.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Member
    Posts
    1,389

    Status
    Offline
    Probabilmente si risolve da programma o impostando con resistenza di pull up il terminale MS1. Certo che non sapendo ne' che board si utilizza ne' il modello di motore.. qui ci vorrebbe Pasqualina di Civitanova Marche. :unsure:

    step2bis
     
    Top
    .
  10.  
    .
    Avatar

    Arcturus
    Triplocrusco

    Group
    Mastro Avvolgitore and Peer
    Posts
    5,612
    Location
    San Lorenzo in Campo marche

    Status
    Offline
    La board è Arduino uno R3 e il motore è un nema 17 cinese di cui non conosco la marca
    MS1 MS2 MS3 sono tutti collegati a massa
     
    Top
    .
  11.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Member
    Posts
    1,389

    Status
    Offline
    QUOTE (Tonino1952 @ 11/12/2022, 10:15 PM) 
    La board è Arduino uno R3 e il motore è un nema 17 cinese di cui non conosco la marca
    MS1 MS2 MS3 sono tutti collegati a massa

    Eventualmente si può tentare un esperimento collegando MS1 al livello logico alto. Ok x la board adruino R3, ma sarebbe utile soprattutto conoscere la board su cui è installato il controller A4988. bye1
     
    Top
    .
  12.  
    .
    Avatar

    Arcturus
    Triplocrusco

    Group
    Mastro Avvolgitore and Peer
    Posts
    5,612
    Location
    San Lorenzo in Campo marche

    Status
    Offline
    :( La board l'ho costruita io con una basetta millefori. Ma è semplicissima solo i collegamenti necessari
    la marca del controller è Pololu
     
    Top
    .
  13.  
    .
    Avatar

    Arcturus
    Triplocrusco

    Group
    Mastro Avvolgitore and Peer
    Posts
    5,612
    Location
    San Lorenzo in Campo marche

    Status
    Offline
    Ho riscritto un nuovo schech praticamente uguale ed adesso i motori vanno a passo intero. :wacko:
    Chissà perchè. primo ostacolo superato ora c'è tutto il resto. Ci provo se mi date una mano...
     
    Top
    .
  14.  
    .
    Avatar

    Radiotron
    carciofo_lr

    Group
    Radiomeccanico Moderatore
    Posts
    13,652
    Location
    Rimini

    Status
    Offline
    Ecco sono queste le cose che mi fanno stare lontano dal software, che apparentemente le cose sono giuste e non funziona niente.
    A volte nello scrivere un listato basta uno spazio in più e non funziona niente.
    Comunque Antonio complimenti hai trovato l'inghippo, avanti così.
     
    Top
    .
  15.  
    .
    Avatar

    Wunderlich
    cipollacipollacipollacipolla

    Group
    Member
    Posts
    1,561

    Status
    Offline
    QUOTE (Tonino1952 @ 11/14/2022, 07:06 PM) 
    Ho riscritto un nuovo schech praticamente uguale ed adesso i motori vanno a passo intero. :wacko:
    Chissà perchè. primo ostacolo superato ora c'è tutto il resto. Ci provo se mi date una mano...

    Il problema sarebbe che per revisionare il software dovrei montare un circuito con lo stesso controller e lo stesso motore. Da remoto posso solo simulare i segnali sulla board di arduino e visualizzarli sull' oscilloscopio. Come dicono gli infornatici, un piccola svista nella scrittura si trasformano in ore per trovare l'eventuale bug del programma. bye1

    Edited by SalvatoreX - 11/15/2022, 12:39 PM
     
    Top
    .
44 replies since 12/11/2022, 00:23   1112 views
  Share  
.