Comando flash strobe: è fattibile secondo voi?

Salve a tutti, dovrei realizzare un progetto semplice con diverse funzionalità: -lettura di un encoder in quadratura con freq max circa 600KHz -giunto a un dato conteggio dell'encoder deve produrre un impulso della durata impostabile tra 2 e 20 microsec. con precisione 1%. - altre funzionalità con priorità più bassa : comunicazione seriale rs232, un paio di ingressi digitali da rilevare con interrupt ed due uscite analogine da implementare.

Secondo voi è fattibile con Arduino? Il mio dubbio maggiore è sulla prouzione precisa dell'impulso: deve avere un ritardo minimo e comunque determinabile, puo' essere prodotto all'interno dell'isr che legge l'encoder? chiaramente questo bloccherebbe le altre funzionalità ma potrebbe essere tollerabile.

Per i curiosi si tratta di comndare una telecamera e produrre un flash strobe con la massima precisione.

Grazie in anticipo a chiunque voglia esprimere un parere, non conosco Arduino e qualsiasi suggerimento è gradito.

Ciao Mirco Cremasco

ho iniziato da poco a giocare con arduino, ma le sue potenzialità sono subito chiare!

a mio modesto parere puoi certamente! e puoi anche farci altro nel frattempo!

luii parla di micro, non millisecondi, la precisione di arduino sui microsecondi non è pari a 1 ma a un numero piuttosto elevato che non ricordo, diventa una gara di ottimizzazione del codice :~

lavorando con i timer hardware l'impulso controllato da 2-20 microsecondi lo si può anche generare. Con "precisione 1%" intendi 1% della durata dell'impulso? Quello che bisogna vedere è se riesce a star dietro all'encoder quando va alla massima frequenza: è da provare ma non mi pare impossibile sulla carta. Direi che gli interrupt da ingresso digitale sono da dimenticare, Arduino ne ha 2 (non ho mai guardato sul datasheet, solo letto sulle ref del sito) e vanno utilizzati per l'encoder. Vanno quindi gestiti a polling nel loop principale. Per le uscite analogiche dipende da che segnale devi generare visto che non sono dei veri segnali analogici ma delle PWM http://it.wikipedia.org/wiki/Pulse-width_modulation RS232 no problema.

Vedo il problema la conciliazione lettura encoder e uso contemporanea interfaccia seriale.
Perché hai una velocitá cosí alta del encoder? Sei sicuro che l’ encoder sa dare quella frequenza?
Ciao Uwe

Ciao, grazie a tutti per le risposte. Cambio un po' le carte in tavola: l'impulso controllato da 2-20 microsec posso generarlo dalla telecamera, quindi l'impulso da generare alla fine del conteggio dell'encoder ( che avrebbe valori dell'ordine di 40k - 50k impulsi) non ha caratteristiche così stringenti poichè verrebbe poi ricondizionato dalla telecamera.

La frequenza dell'encoder è giusta: la velocità radiale massima è di 10m/s, l'encoder è da 5000 ppr che diventano 20000 se conto tutti i fronti dei due canali, che corrispondono ad una risoluzione di 0.015 mm/impulso. 10*1000/0.015 = 666KHz. L'encoder ha max nominale 300kHz, pero' sui 5000ppr.

Il problema maggiore sembra dunque essere il far coesistere la gestione tramite interrupt dell'encoder con l'utilizzo della seriale.

Per le uscite analogiche, il fatto che siano PWM non è un grosso problema, non ho ancora guardato, ma basta impostare dei valori su dei registri perchè vengano generate senza ulteriori comandi e quindi mantenere l'uscita ad al valore analogico voluto, giusto no?

Ciao Mirco