Controllare 1 asse cnc

Sezione dedicata a lavorazioni su materiali diversi. Problematiche, accorgimenti, consigli, trucchi ed astuzie.
Subforum:
Materiali
Rispondi
cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » martedì 7 giugno 2016, 21:32

Ecco qualche foto

Si effettivamente il codice
postato senza librerie è molto piu' facile da usare
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » martedì 7 giugno 2016, 21:54

Grazie per le dritte,
metto insieme qualcosa e mi faccio sentire.


Il codice non funzionava solo per delayMicroseconds(250);

con delay(1); funziona

torn24
God
God
Messaggi: 5075
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Controllare 1 asse cnc

Messaggio da torn24 » mercoledì 8 giugno 2016, 8:01

Non è che ti voglio "RUBARE IL DIVERTIMENTO" :D però mi trovavo senza niente da fare, e ho pensato come potessi realizzare la cosa con arduino, e ho buttato giù tre righe, il sistema prevede tre pulsanti, perché mi sembrava necessario avere un pulsate START uno EMERGENZA e uno RESET.

Bisogna mettere il numero pin di arduino che si usano realmente, sostituendo quelli che ho messo a caso.

Non avendo il motore e macchina e circuito, NON SO SE FUNZIONA AL PRIMO COLPO, spesso bisogna fare modifiche e tante prove...

Però se ti può essere utile per un idea per un inizio, oppure se ti andrebbe bene cosi comè, lo posto sia mai che sia utile a qualcuno :mrgreen: :badgrin:


Codice: Seleziona tutto








/*
Il sistema è controllato da tre pulsanti.

1)il pulsante Start Avvia la sequenza lavorazione.

2)il pulsante Emergenza ferma la lavorazione
  ma premendo nuovamente Start riparte da dove 
  aveva terminato.
  
3)il pulsante reset, azzera tutto
  ripremendo il pulsante start riparte dal primo pezzo.

 I pulsanti sono in INPUT_PULLUP, di consegueza 
 sono collegati a massa, e il pulsante è premuto 
 quando ha valore LOW.
*/
#define PulsanteStart 1
#define PulsanteEmergenza 2
#define PulsanteReset 3

/* Pin direzione motore e pin step motore */

#define Direzione 4
#define Step 5

/* Array di interi, contente la lunghezza dei pezzi in mm */

int Misure[4]={500,400,250,200};
/*Valore di spostamento a passo motore, da calcolare in base
  alla macchina e trasmizzione, metto valore a caso di 0,1 mm
*/
float spostamentoPasso=0.1;
int contatore=0;

void setup(){
  
        pinMode(PulsanteStart,INPUT_PULLUP);
        pinMode(PulsanteEmergenza,INPUT_PULLUP);
        pinMode(PulsanteReset,INPUT_PULLUP);
        pinMode(Direzione,OUTPUT);
        pinMode(Step,OUTPUT); 
        digitalWrite(Direzione,HIGH); // mettere HIGH o LOW a seconda della rotazione motore
}


void loop(){
  
        
        if(digitalRead(PulsanteStart)==LOW){
               
                delay(1000);
         
                for(contatore=0;contatore<4;contatore++){
                  
                  
                        Move(Misure[contatore]);  
                  
                  
                }// end for
        
        
        
        
        }// end if  
  
        contatore=0;
  
}//end loop()


void Move(int lunghezza){
       
       int passi=lunghezza/spostamentoPasso; 
       int i=0;
        while(i < passi) {
                digitalWrite(Step, HIGH);
                delay (10);              
                digitalWrite(Step, LOW); 
                delay(10);
                i++;
            /* se durante la lavorazione
               viene premuto il pulsante Emergenza
               entra in un while e attende-si ferma, finche 
               non viene premuto di nuovo il pulsante Start */
                if(digitalRead( PulsanteEmergenza)==LOW){
                   
                        delay(200);
                        while(digitalRead(PulsanteStart)==HIGH);
                } //end if
            
            
            /*se viene premuto il pusante Reset ferma tutto e 
              ricomincia da capo se si preme start */
              
                if(digitalRead( PulsanteReset)==LOW){
                   
                    delay(200);
                    contatore=0;
                    return ;
                    
               } //end if
              
       }// end while
       delay(6000); // ATTENDE 6 secondi per fare la lavorazione 
}// end function Move()













CIAO A TUTTI !

Junior73
God
God
Messaggi: 3614
Iscritto il: lunedì 14 aprile 2014, 10:36
Località: Perugia

Re: Controllare 1 asse cnc

Messaggio da Junior73 » giovedì 9 giugno 2016, 10:20

Rieccomi ragazzi scusate ma in questi giorni non riesco a trovare il tempo .....

@Cris65

Ho letto che hai provato e stai costruendo lo script.....mi raccomando postalo con tutte le descrizioni ed inoltre anche uno schema grafico dei collegamenti. Questo perchè anche se per molti utenti è scontato i novizi hanno bisogno anche di informazione base per capire. Muovere i motori passo passo direttamente in arduino credo sia molto utile per tante tipologie di realizzazioni che toccano vari settori.

@Torn24

Bello script ...da provare sicuramente....

Saluti

cris65
Newbie
Newbie
Messaggi: 17
Iscritto il: mercoledì 13 febbraio 2013, 17:34
Località: Arcore

Re: Controllare 1 asse cnc

Messaggio da cris65 » giovedì 9 giugno 2016, 14:47

Lo script di Torn funziona correttamente,
ora la cosa piu' importante è costruire la coppia di rulli e vedere la precisione
dei movimenti.

Grazie a tutti

francesco6290
Newbie
Newbie
Messaggi: 4
Iscritto il: venerdì 1 novembre 2013, 18:14
Località: padova

Re: Controllare 1 asse cnc

Messaggio da francesco6290 » lunedì 17 ottobre 2016, 21:17

Ciao a tutti, lo script lo ho provato anche io e funziona come da descrizione complimenti a Torn =D> -
l'utilizo che ne farei io sarebbe presapoco uguale, io ogni misura che può essere uguale o differente o in negativo avrei bisogno di abilitare due pin temporizzati per comandare una morsa che ferma il materiale e una'ltra che lo incide e via cosi per ogni misura che puo essere sempre uguale o cambiare , chiedo se è una cosa possibile :mrgreen: Grazie Ragazzi.

-

Rispondi

Torna a “Lavorazioni Varie”