aiuto millis!

un saluto a tutti gli utenti del forum!
sono appena entrato nel mondo di arduino grazie alla scuola…
Girando in internet mi sono interessato ai servomotori e ad un bellissimo progetto; un braccio robotico!
il mio robot prevede l’ uso dei servo per quanto riguarda gli arti, per la pinza ho preferito usare un motore in continua con un potenziometro che mi dice in che posizione si trova la pinza(il motore in continua è comandato con rele collegati per l’ inversione di marcia)
ho buttato giù un piccolo programma, fa il suo lavoro ma per alcune cose ho dovuto usare il delay e quindi il sistema si blocca.
la mia domanda è; potreste modificarmi il programma sostituendo al delay la funzione millis?
ho gia provato da solo ma non ho ancora capito come funziona… voi siete gli unici che possono aiutarmi, visto che anche il prof non è in grado di aiutarmi…
vi allego il programma… un grazie in anticipo a chi mi aiuterà!

#include <Servo.h> 
const int start = 5;
const int PINZACHIUSA = 13;
const int PINZAAPERTA=2;
const int p1=7;
const int p2=4;
const int fermo=6;
int val1;
int led=13;
int conta;
int posiz=A1;

 
Servo myservo; 
 
int pos = 0;    
 
void setup() 
{  pinMode(PINZACHIUSA, OUTPUT); 
 pinMode(PINZAAPERTA, OUTPUT);
pinMode(p1,INPUT); 
pinMode(start,INPUT); 
pinMode(p2,INPUT); 
pinMode(led,OUTPUT);
 
  digitalWrite(PINZACHIUSA,LOW);
digitalWrite(PINZAAPERTA,LOW);
  myservo.attach(9); 
 Serial.begin(9600);
myservo.write(pos); 
} 
 
 
void loop() 
{ 
  if(digitalRead(start)==HIGH){
  digitalWrite(PINZAAPERTA,LOW);
digitalWrite(PINZACHIUSA,HIGH);
delay(200);

  
  Serial.println(analogRead(posiz));
  for(pos = 0; pos < 90; pos += 1)  
  {    Serial.println(analogRead(posiz));                               
    myservo.write(pos);              
    delay(11);   
  
val1=1;
if((val1==1)&&(analogRead(posiz)>726)){
Serial.println(analogRead(posiz));
  digitalWrite(PINZACHIUSA,LOW);
digitalWrite(PINZAAPERTA,LOW);
  } 
  }

  digitalWrite(PINZACHIUSA,LOW);
digitalWrite(PINZAAPERTA,HIGH);
delay(200);
  for(pos = 90; pos>=1; pos-=1)     // VA DA 90 A 0°
  {    Serial.println(analogRead(posiz));                             
    myservo.write(pos); 
Serial.println(analogRead(posiz));    // DICE AL SERVO DI POSIZIONARSI SUL VALORE POS
    delay(11); 

  Serial.println(analogRead(posiz));

val1=3;
if((val1==3)&&(analogRead(posiz)<500)){
Serial.println(analogRead(posiz));
  digitalWrite(PINZACHIUSA,LOW);
digitalWrite(PINZAAPERTA,LOW);
  } 
  } 
  Serial.println(analogRead(posiz));
  delay(200);

} 
}

Ciao, prima di tutto, essendo il tuo primo post, ti consiglio di presentarti QUI e di leggere con attenzione il REGOLAMENTO ...

... poi, studiati prima QUESTO articolo e poi QUESTO ... vedrai che ti si chiarirà come fare.

Guglielmo

Ma che è la fiera del millis? ... mai visto così tanti Thread su questo argomento in un mese :)

pablos: Ma che è la fiera del millis? ... mai visto così tanti Thread su questo argomento in un mese :)

Non lo hai ancora notato? I temi delle discussioni vanno alla moda. In certi momenti si concentrano il tema e ci sono piú discussioni. Ciao Uwe

ciao, ho risolto il problema... erano piccoli dubbi esistenziali :P