Salve, sono nuovissimo di questo mondo.. e proprio per questo sto facendo piccoli passi con piccoli esperimenti... non mi massacrate...
Ho un Arduino UNO un motore 5v a spazzole (per intenderci 2 fili) e uno Passo Passo con relativa scheda... tutti e due singolarmente funzionano... se li metto insieme il motore n1 a spazzole va tranquillo si accende e si spegne con i tempi del delay impostato... il secondo motore passo passo comandato con i 4 digitalWrite High/Low mi prende la pausa dal delay del primo motore e il risultato è che per fare un giro ci mette una vita... il fatto è che il comando Delay mette in pausa qualsiasi operazione... come faccio a isolare il delay?
principalmente io avrei bisogno di un motore passo passo che faccia 3 giri veloci avanti e 2 indietro una volta ogni ora e ogni volta che lo voglio zionare io con un comando tipo vocale.... pensate si possa esegiure con un solo arduino? o ne devo comprare un'altro???
guarda l' esempio "wait without delay" nei esempi del IDE.
Il delay() come il pulsein() e il delayMicroseconds() blocca l' esecuzone dello sketch.
Ciao Uwe
Inanzitutto ti consiglio di mostrare il codice che hai scritto.
Da quello che ho capito vuoi che i 2 motori funzionino indipendentemente l'uno dall'altro quindi nel codice non devi usare delay() perchè blocca il proseguimento del programma quindi per entrambi i motori devi utilizzare digitalWrite HIGH/LOW inserendo pause con millis(). ad esempio:
//accende-spegne led1 ogni secondo e led2 ogni mezzosecondo
//variabili led1,led2,time1(1000),time2(500),statoled1,statoled2
void loop(){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
statoled1 =1;
statoled2=1;
while(1==2){
if(millis()==time1){
time1=time1+1000;
if(ststoled1==1){
digitalWrite(led1,LOW);
statoled1=0;
}else{
digitalWrite(led1,HIGH);
}
if(millis()==time2){
time2=time2+500;
if(ststoled1==2){
digitalWrite(led2,LOW);
statoled2=0;
}else{
digitalWrite(led2,HIGH);
}
}
}
uwefed:
guarda l' esempio "wait without delay" nei esempi del IDE.
Il delay() come il pulsein() e il delayMicroseconds() blocca l' esecuzone dello sketch.
Ciao Uwe
Magari essendo nuovo non sa cosa sia l'IDE, e non per fare le pulci, ma il titolo corretto dell'esempio è "Blinkwithoutdelay".
Per un novizio mi sembrava più semplice indicargli direttamente il nome della funzione da utilizzare, con il link al Reference ed ad un articolo che spiegasse, in italiano, passo passo lo stesso esempio.
GRAZIE MILLE A TUTTI PER AVERMI RISPOSTO! adesso mi metto subito a studiare! purtroppo le mie esperienze di elettronica si fermano a 10 anni fa quando riparavo/sostituivo alcune elementi bruciati e riprogrammavo le eprom per delle fotocopiatrici in rete... ero un tecnico XEROX. Ora lavoro come falegname e sto iniziando ad avvicinarmi a questo mondo per realizzare progetti legati agli oggetti in legno con tecnologia applicata d'effetto!
Spero di riuscire piano piano ad arrivare al traguardo.. nulla di diffiicile credo per quello che devo far fare al mio arduino... vediamo che succede..
Se esiste qualche guida dove posso trovare i comandi più usati e un pò di spiegazioni sarebbe meglio! su internet c'è di tutto ma delle volte confondono un pò le idee... almeno a me.
Per adesso vi ringrazio a tutti! se ho problemi ora so a chi rivolgermi.. ancora Grazie mille
Beh, innanzitutto c'è la guida di riferimento: Arduino - Home
dove sono spiegate tutte le funzioni, le dichiarazioni e quant'altro.
Poi se cerchi con google " Programmare Arduino Marsella Tiziana", trovi un pdf che spiega bene l'approccio all'ambiente.
Credo che sia un buon punto di partenza