Salve a tutti
Il progetto che ho intenzione di realizzare è un semplice azionamento di un motore passo passo senza
usare le librerie.
Premesso che sono alle prime armi con la programmazione,ma ho gia affrontato millis(),
il mio problema è durante la programmazione .....millis() in pratica non fà quel che vorrei.
metto i pezzi di schetc......il problema è all'ultimo
int pulsante=2;
int bobina1=8;
int bobina2=9;
int bobina3=10;
int bobina4=11;
int bob1=0;
int bob2=0;
int bob3=0;
int bob4=0;
int conteggiopassi=0;
int girocompleto=512;
int partenza=0;
int rotazione;
fin quì tutto OK
void setup()
{
Serial.begin(9600);
pinMode(pulsante,INPUT);
pinMode(bobina1,OUTPUT);
pinMode(bobina2,OUTPUT);
pinMode(bobina3,OUTPUT);
pinMode(bobina4,OUTPUT);
}
anche qui tutto ok
void loop()
{
if(bob1==1){digitalWrite(bobina1,HIGH);}else{digitalWrite(bobina1,LOW);}
if(bob2==1){digitalWrite(bobina2,HIGH);}else{digitalWrite(bobina2,LOW);}
if(bob3==1){digitalWrite(bobina3,HIGH);}else{digitalWrite(bobina3,LOW);}
if(bob4==1){digitalWrite(bobina4,HIGH);}else{digitalWrite(bobina4,LOW);}
if(partenza==0){bob1=0;bob2=0;bob3=0;bob4=0;Serial.println("Motore Fermo");}
Serial.print(bob1);
Serial.print(bob2);
Serial.print(bob3);
Serial.print(bob4);
Serial.println("");
if(digitalRead(pulsante))
{
while(digitalRead(pulsante)){Serial.println("Senso Orario Via");}
partenza=1;
rotazione=0;
Serial.print(partenza);
Serial.print(rotazione);
Serial.println("");
}
anche qui tutto OK
i problemi cominciano QUI
if((partenza==1)&&(rotazione==0))
{
int velocita(1000);
unsigned TEMPO=0;
if(millis()>=TEMPO+velocita){bob1=1;bob2=0;bob3=0;bob4=0;}
TEMPO=millis();
if(millis()>=TEMPO+2000){bob1=1;bob2=1;bob3=0;bob4=0;}
TEMPO=millis();
if(millis()>=TEMPO+velocita){bob1=0;bob2=1;bob3=0;bob4=0;}
TEMPO=millis();
if(millis()>=TEMPO+velocita){bob1=0;bob2=1;bob3=1;bob4=0;}
if(millis()>=TEMPO+velocita){bob1=0;bob2=0;bob3=1;bob4=0;}
if(millis()>=TEMPO+velocita){bob1=0;bob2=0;bob3=1;bob4=1;}
if(millis()>=TEMPO+velocita){bob1=0;bob2=0;bob3=0;bob4=1;}
if(millis()>=TEMPO+velocita){bob1=1;bob2=0;bob3=0;bob4=1;}
}
}
In pratica "partenza e rotazione" li legge correttamente,
credo che il problema stia nel "TEMPO=millis()", oppure nella Variabile "velocita".
Ovunque sposto "TEMPO=millis()" mi legge solo la riga sopra poi si blocca ho provato pure ad a mettere 2000 millisecondi al posto di"velocita", ma niente da fare.
Non so più cosa provare per saltarci fuori....mi sono arenato nuovamente sto "millis()" e utilissimo,ma mi fà dannare.