Aumentare la frequenza di analogRead Arduino Due

Ciao a tutti,

ho il seguente problema. Stiamo utilizzando un arduino DUE in un progetto in cui dobbiamo controllare un Dielectric Elastomer (Elastomero Dielettrico). In pratica si tratta di un pezzo di plastica (in parole poverissime) che si puó stretchare e rilassare. Se ci si applica una tensione opportuna quando é piú o meno al massimo della sua lunghezza si puó trasformare l´energia meccanica, che l´elastomero utlizza per rilassarsi, in energia elettrica.

Detto questo il problema che ho incontrato é il seguente:

voglio leggere la corrente (analogRead) presente sull´elastomero, questa corrente é un picco di corrente molto veloce. Arriva a 8 mA circa e ho una sola lettura. :frowning:
Sto leggendo il tutto con la Native Port dell´arduino DUE e giá é un po´ piú veloce.

La prima cosa strana é che, completamente lo stesso software, su PC ha un intervallo di lettura attorno ai 20/30 ms mentre su MAC attorno ai 10 ms.

Qualcuno puó aiutarmi ? C´é un modo per aumentare la velocitá dell´Arduino DUE.

Grazie mille,
Fabrizio.

Prima fai le letture, le salvi su un buffer e poi le invii via seriale.
Se leggi e invii, leggi e invii, ovviamente è lento.

Con AnalogRead misuri una tensione. :sweat_smile:

Si, lo so che misuro una tensione :slight_smile: Ma sto misurando una corrente, quindi sará un segnale di tensione proporzionale a una corrente.

Se faccio come dici tu, con un buffer, come faccio ad avere una sincronizzazione dei valori di corrente con le altre misure???

Quello che ho pensato é : visto che quello che mi interessa di piú é questa misura di corrente, una volta che sono nella fase della mia state machine nella quale ho bisogno delle misure di corrente io interrompo lo streaming su seriale e invece di mandare dati su seriale li metto in un buffer, poi quando esco dalla fase in cui mi serve misurare questa corrente (veloce) mando tutto alla seriale.
Una cosa del genere?

L´alternativa, forse dico una stupidaggine, sarebbe di avere un microcontroller dedicato solo alla misura di corrente in modo da avere una misura molto densa perché non devo effettuare altre istruzioni.
Che ne pensate?

Il problema come già tu stesso hai evidenziato non è l velocità di analogRead() (l'ADC della Due fa 300KS/s) ma della trasmissione sulla seriale.

Se vuoi aumentare il numero delle letture prova a trasferire i dati in blocchi.
Leggi questa discusione sulla SerialUSB:
http://forum.arduino.cc/index.php?topic=154424.0

Cosa intendi con KS/s ? Volevi scrivere KB/s?

kilo Sample