Settima Esercitazione (Misura automatica curva IV )


Prima di iniziare la misura dovrete verificare che i collegamenti sulla basetta siano corretti, e dovrete voi stessi collegare e regolare le alimentazioni.
Il circuito richiede una alimentazione positiva di +5V ed una negativa di -9V (e naturalmente un riferimento a 0V).
Fate attenzione a non sbagliare i collegamenti, perché potreste distruggere i componenti.
I data sheets complete dei due dispositivi sono disponibili sulla pagina web del corso.





Struttura del programma

Inizializzazione
Calibrazione di V
Misura di I vs V
Fit di V vs I (determinazione di R)
Chiusura
Il main dovrà chiamare una funzione diversa a seconda dell'opzione fornita dall'utente (calibrazione, misura o fit).

Inizializzazione
Deve inizializzare le porte (seriale e parallela) ed abilitare il pacchetto grafico (ed eventualmente i files di I/O).

Calibrazione

void Calibrazione(){

  char buf;
  double tensione;

  for (int i=0; i<256;i++){
    buf = i;
    write(parallela,&buf,1); // setta il valore di tensione
    sleep(2);
    tensione = lettura();    // leggo dal multimetro il valore di tensione ottenuto
    // scrive il valore del numero e tensione nel file di calibrazione
  }


}
la funzione lettura() è la funzione che esegue una misura (e ne 
legge il risultato) con il multimetro.



Misura di I vs V

void Misura(){

  char buf;
  double corrente,tensione;
  double vtun[256];

  //legge i 256 valori di calibrazione dal file di calibrazione --> vtun[256];
  for (int i=0; i<256;i++){
    buf = i;
    write(parallela,&buf,1); // setta il valore di tensione
    sleep(2);
    corrente = lettura();    // leggo dal multimetro il valore di corrente ottenuto
    tensione = vtun[i];
    // scrittura di corrente e tensione nel file di misure
    // grafico in tempo reale di I vs V
  }


}


Fit di V vs I
Legge i valori di corrente e tensione dal file di misure e ne esegue il fit ricavando R.

Chiusura
Chiude le porte (seriale e parallela) ed il pacchetto grafico (ed eventualmente i files di I/O).

Commenti generali
Calcolate i calori di V e I in unità SI (convertite cioé il valore a seconda dell'unità).
Se si vogliono avere i valori esatti degli errori (fit) occorre modificare la funzione lettura affinché calcoli e ritorni anche l'errore:
double lettura() -----> void lettura(double& val, double &eval)