.7) listato di taratura

Listato: Test di taratura dello zero strumentale per 3 canali

Per permettere una esatta centratura del sistema occorre accendere l’Arduino e con attenzione, usando un buon cacciavite schermato far ruotare i potenziometri a turno fino a quando si legge il valore 512 che equivale al valore =VOLT.

Altro sistema per fare la taratura è quello di misurare con il test la tensione in volt tra la massa ( puntale nero e l'uscita del canale 0, 1,2 rispettivamente collegando il puntale rosso

si dovrà leggere il valore di 2,5 volt , nel caso sia presente il circuito AREFf (vedere apposito paragrafo) se abbiamo attivato l'opzione

analogReference(EXTERNAL); //PER VELOCIMETRO

il tester dovrà visualizzare 1/2 di 3,3 volt = 1,6 volt

con analogReference(INTERNAL); //PER ACCELEROMETRO

il tester dovrà visualizzare 1 /2 di 1,6 volt = 0,8 volt USARE PER ACCELEROMETRO per avere la massima sensibilità

ATTENZIONE : vedere sul sito e forum le problematiche legate alle istruzioni exsternal ed internal ( in teoria la massima tensione generata della trasduttore non dovrebbe superare +/-1,6 e +/- 0,8 volt pena possibili danni al circuito se per esposizioni prolungate, eventualmente per sicurezza aggiungere degli zener adeguati per limitare le tensioni di picco che in tutti i casi non verrebbero acquisite)

Il non centrare esattamente il valore di zero comporta una ridotta amplificazione o additrittura l'azzeramento dell'amplificazione.

Per far ciò utilizzare il seguente programma settato per tarare i canali 0,1,2 ( questa prova permette di rendersi conto del rumore hardware che per amplificazione elevata può raggiungere valori a +/- 5 step su una scala di 512 ( meno dell’ 1 %)

ATTENZIONE; non dimenticare si modificare le sottostanti righe di comando scritte in BLU, devono essere le stesse inserite nel programma di acquisizione.

// -------------------------------------- // di Dolmetta Angelo // TARATURA V 26 marzo 2011 // -------------------------------------- //il programma permette di tarare l'amplificatore agendo sui trimmers // definizione variabili array primo canale *(1) double ch0; double ch1; double ch2; long tot0; long tot1; long tot2; long max0; long max1; long max2; long min0; long min1; long min2; int samples; int i; // setta la velocità di trasmissione della porta seriale // da non confondere con la frequenza di campionamento void setup() { Serial.begin(9600); // Se non vengono inserite nessuna delle sottostanti istruziioni (BLU) l'Arduino // acquisisce con tensione di riferimento 5 volt , se si usa il ponte con tensioni di +/- 2,5 // volt // le seguenti istruzioni vanno utilizzate se anche nel programma di acquisizione si usano, // altrimenti la taratura non è perfettamente funzionante // NON USARE ALCUNA ISTRUZIONE se si vuole usare come fondo scala 5volt e/o +/- 2,5 volt. // analogReference(EXTERNAL); //PER VELOCIMETRO // analogReference(INTERNAL); //PER ACCELEROMETRO //Serial.println("il programma visualizza il valore di zero"); //Serial.println("fa la media del dati acquisiti"); //Serial.println("ruotare i 3 trimmers fino a leggere 512"); } // ciclo di acquisizione void loop() { // legge canale read (0); ed invia il dato alla porta com print(ch0) // per visualizzare il dato acquisito sul monitor del PC samples=5000; tot0=0; tot1=0; tot2=0; min0=1024; min1=1024; min2=1024; max0=0; max1=0; max2=0; for (i=0; i < samples; i++) { ch0 = analogRead(0); tot0= tot0+ ch0; if (ch0 > max0) { max0=ch0; } if (ch0 < min0) { min0=ch0; } ch1 = analogRead(1); tot1= tot1+ ch1; if (ch1 > max1) { max1=ch1; } if (min1 > ch1) { min1=ch1; } ch2 = analogRead(2); tot2= tot2+ ch2; if (ch2 > max2) { max2=ch2; } if (min2 > ch2) { min2=ch2; } //Serial.println(ch2); } Serial.print(tot0/samples-512); Serial.print("\t"); Serial.print(tot1/samples-512); Serial.print("\t"); Serial.print(tot2/samples-512); Serial.print("\t");(" * "); Serial.print(min0- 512); Serial.print("\t"); Serial.print(max0-512); Serial.print("\t");(" * "); Serial.print(min1-512); Serial.print("\t"); Serial.print(max1-512); Serial.print("\t");(" * "); Serial.print(min2-512); Serial.print("\t"); Serial.println(max2-512); //delay(10); }