Ciao a tutti. Ho un problema riguardo il campionamento con arduino. Ho una scheda Arduino Duemilanove a cui ho collegato una shield GPS per lo scarico dei dati , latitudine e longitudine ed ho settato la porta con ricezione 4800 baud. Sul pin 2 analogico ho un potenziometro lineare che dovrei campionare a 200 hz e mi consigliano di aumentare il range a 2khz.Ma se fisso per la ricezione del GPS 4800 baud ovvero dati/sec come posso campionare il segnale sul pin 2 a 2khz. Forse sarò stato impreciso ed avrò commesso errori ma sto imparando da poco .... se potreste aiutarmi chiarendo anche i concetti ve ne sarei molto grato.
puoi sospendere la scansione durante l'acquisizione del gps o no?
sennò la vedo molto difficile....arduino e il multitasking non vanno molto d'accordo...
Si hai ragione sicuramente farò come dici tu . Quello ke vorre kiederti è come fare a campionare il potenziometro a 2 khz. sinceramente non sono riuscito a leggere,trovare alcuna informazione circa la massima frequenza di campionamento.Ho fatto un ciclo molto semplice per vedere quanti dati Arduino Duemilanove riesce ad acquisire in 1 sec e non riesco a leggerne più di 70-80 ovvero 80 hz. Sono un po pochini. Se potessi aiutarmi o delucidarmi in merito a questa questione te ne sarei grato.
Ciao Garinus e grazie per la tua collaborazione. Leggere a 2khz vuol dire leggere 2000 dati in un secondo potrei scendere a 1000 ma non meno. Non riesco a sapere a quanto legge Arduino alla massima frequenza di campionamento. Ho dei sensori di torsione e inerziali che mi impongono tali frequenze per la stabilità e rigidità del telaio. Se anche tu stai realizzando un tuo progetto di telemetria ad esempio le sospensioni a quanto le stai campionando? Se non ti dispiace sarebbe possibile sentirti per cell per discuterne?
Ciao Donato e grazie ancora per il tuo contributo , almeno disctendo conosco i miei limiti
Ciao Uccio avevo già letto la scheda HW ma non neparla in maniera chiara. Il progetto è mio ma sono coadiuvato da uno studio di progettazione. Ho esperienze in tal senso e voglio togliermi delle curiosità lavrando su diversi telai delle superbike.Da una verifica SW sembra che arduino campioni intrno ai 100 hz , che per me sono pokini.
Grazie a tutti per il vostro contributo
bè allora l'hai fatto male.
Ti copio quello che c'è scritto sul datasheet del micro atmel a pagina 243
? 10-bit Resolution
? 0.5 LSB Integral Non-linearity
? ± 2 LSB Absolute Accuracy
? 13 - 260 [ch956]s Conversion Time
? Up to 76.9 kSPS (Up to 15 kSPS at Maximum Resolution)
come leggi può fare sino a 76.9 kilo sample al secondo o 15 con la massima risoluzione. Ma poi dice anche :
By default, the successive approximation circuitry requires an input clock frequency between 50
kHz and 200 kHz to get maximum resolution.
quindi lui ha bisogno di un clock tra 50 e 200 k ma arduino ha un micro da soli 16 M, quindi non si capisce come faccia. Bisognerebbe chiedere a Banzi
Ciao Uccio. Sono daccordo con te, ma alla fine tutti noi memorizziamo i dati via software. Se i valori sono quelli che ti ho dato io , ho provato a memorizzare char e non int per risparmiare dati e più di 100 hz non sono andato. Disposto a parlarne ben volentieri.
.per il telaio credo di si , per gli altri sensori Arduino va benissimo .Poi con Arduino ci farò dell'altro, è troppo flessibile. Comunque mi piacerebbe approfondire l'argomento almeno per capire fino a dove posso spingermi con Arduino . Tra le schede della AT e secondo quanto ho rilevato io c'è differenza e vorrei capire la cosa.Tu che sei più esperto di me e sei da molto tempo nel settore ti riuscirebbe trovare una risposta a questo quesito?
usando un semplice loop di campionamento vedo che arduino 2009 riesce ad effettuarne circa 10k in un secondo. ovviamente non ci sono altre istruzioni ad aggravare il calcolo del tutto:
void loop(){
val = analogRead(SENSOR);
i++;
if( i > 10000 ){
time = millis();
Serial.print( "MilliSec: " );
Serial.print( time );
Serial.print( " Letture effettuate: " );
Serial.println( i );