Come programmare Arduino per uno slider timelapse?

Mamo

Donatore generoso
#11
Grazie mille @Mamo

no ne sto facendo uno mio da zero....
Ho provato a fare come dici te ma non è che cambia molto, a me sembra uguale ho provato anche un dalayMicroseconds(1) ma resta lo stesso...
il mio scketch è questo

for (int ciclo=0;ciclo<passimotore;ciclo++)
{
digitalWrite (ENABLE,LOW);

digitalWrite(STEP, HIGH);

delayMicroseconds(1);

digitalWrite(STEP, LOW);

delayMicroseconds(1);

}
dove passimotore è 1
Due cose:
Il digitalWrite (ENABLE,LOW); lo puoi mettere fuori dal ciclo perchè basta abilitare una volta sola.
Poi questa parte di codice è richiamata da un'altra funzione? Beh i ritardi probabilmente sono nell'altra funzione (o se è una parte della funzione loop, il tempo di scansione di tutte le istruzioni presenti nella funzione stessa).
prova a mettere passimotore = passi per effettuare un giro (200 senza riduttore, altrimenti moltiplica poi il valore per il rapporto di riduzione del motore) senza alcuna interruzione e se fai la prova tra delay e delaymicroseconds vedrai la differenza.
Ora ogni volta che chiami questa parte di programma, il motore farà un giro (prima faceva un sono step).
Se non hai ritardi tra una chiamata e l'altra, allora il movimento del motore sarà abbastanza fluido.
Se invece avrai ritardi (anche di pochi millesimi, e la sola chiamata della funzione genera questi ritardi) il movimento del motore sarà a scatti.
 

Mamo

Donatore generoso
#12
Occhio però che con velocità alte dovrai gestire anche le accelerazioni e le decelerazioni.
Puoi usare la libreria accelstepper
Potenzialmente arduino (dipende però anche dall'azionamento) può far ruotare i motori a velocità notevoli
 

Fabio

Time-lapser attivo
#14
ciao @Mamo, scrivo ancora qui perchè ho un altro dubbio, lo so che questo non è il forum di arduino ma credo che la mia domanda sia talmente banale che neanche nel forum spiegano come si fa...
Se volessi dividere il programma in più schede, per una questione mia organizzativa, come si fa?
In pratica sposto una parte di codice dalla scheda "alfa" alla "beta" e poi come faccio a richiamare quel pezzo di codice che è sulla scheda "alfa" ?
Devo dare qualche nome particolare alle schede?
Grazie
 

Mamo

Donatore generoso
#15
Il metodo più semplice (almeno per me) è questo:
Attualmente tu hai un file xxxx.ino all'interno della cartella xxxx
Copia questo file xxxx all'interno della stessa cartella tante volte quanto vuoi spezzettarlo.
A questi nuovi file copiati, cambia il nome (per esempio motore.ino, schermo.ino etc...)
Ora quando aprirai il file xxxx.ino, in modo automatico ti dovrebbe aprire anche gli altri file (in pratica l'ide di arduino apre tutti i file contenuti nella directory progetto)
Potrai passare da un file all'altro utilizzando il pageheader in alto sotto il menu e la toolbar
A questo punto, dai vari file, cancelli le parti che non ti interessano (non ci devono essere doppioni).
 

Mamo

Donatore generoso
#17
Non devi fare nulla.
L'IDE li vede come un unico file (questo se usi l'estensione .ino)
 

Fabio

Time-lapser attivo
#18
ah grazie... quindi se io nel file principale scrivo per esempio motore(); per richiamare la funzione che fa muovere il motore e la funzione motore() è definita in un file a parte ma nella stessa directory lui la trova...
 

chi siamo

Time Lapse Italia è la community italiana dedicata alla fotografia time-lapse.

Impara la tecnica, condividi le tue esperienze e migliorati guardando i video più belli... gratuitamente ed in italiano!

© 2013-18 Time Lapse Italia - Creato da Marco Famà

invia il tuo video

Segui BENE tutte le istruzioni disponibili in questo breve tutorial e raggiungi la home-page di Time Lapse Italia
Alto