ARDUINO ACCELEROMETRO

ciao ragazzi!
sto sviluppando un piccolo progettino per la raccolta di dati con un accelerometro e lo studio del segnale tramite trasformata di Fourier.
Ho incontrato un ostacolo e volevo chiedere a voi cosa fare: sono riuscito a collegare serialmente l'Arduino a Matlab, che ora riesce a leggere i dati di accelerazione dalla porta seriale (ho usato una libreria trovata su internet per il programma con Arduino (sto usando un accelerometro MM7361)),
ma proprio non so come fare per trovare LA FREQUENZA DI CAMPIONAMENTO.
Perchè nel programma di Arduino ho messo un delay(20) che quindi già costituisce un ritardo nel campionamento dei dati, e inoltre non so la frequenza di campionamento dell'accelerometro e di arduino!
PER PIACERE AVREI PROPRIO BISOGNO DI UNA MANO :slight_smile:
Grazie in anticipo per le risposte

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Il sensore MMA7361LC ha un tempo di risposta minimo di 0.5ms: perché inserisci un ritardo di 20ms?

Puoi andare tranquillamente a 250Hz (4ms), perché il tempo standard di acquisizione analogica è di circa 9000 sample/s ovvero circa 120μs per sample.

Quindi, supponendo di leggere 10 volte la stessa misura (noise reduction) per tutti i canali X, Y e Z, il tempo richiesto è di 3 x 10 x 120 = 3600μs = 3.6ms.

cyberhs:
Il sensore MMA7361LC ha un tempo di risposta minimo di 0.5ms: perché inserisci un ritardo di 20ms?

La banda reale, intesa a -3db, del MMA7361 è 400 Hz sugli assi X e Y, 300 Hz sull'asse Z.
Con questo accelerometro è meglio non superare i 200 Hz sugli assi X e Y, 150 Hz sull'asse Z, inoltre è da considerarsi un accelerometro entry level adatto solo per rilevare il cambio di posizione di un oggetto, se sta cadendo oppure è sottoposto a forti vibrazioni, è poco adatto come sensore di misura per fare analisi tramite fft.

In realtà pensavo di utilizzare l'accelerometro per registrare le accelerazioni della motocicletta nell'asse z durante l'attraversamento di una buca, e poi studiando questo segnale tramite fft, renderlo periodico, così da poterne fare uno studio come forzante piazzandolo in un equazione di moto (in pratica un progettino di meccanica delle vibrazioni). Ho sentito altre persone che mi dicevano che il mio problema è il fatto che per leggere i dati dalla porta seriale, il mio programma matlab "richiede" i dati all'arduino, dunque il mio campionamento dipende dal mio computer e non è più scandito da un tempo fisso! Mi consigliavano perciò di memorizzare pacchetti di dati e inviarli appunto a pacchetti! Sapreste darmi qualche dritta su come procedere?
Grazie ancora