didattica, make, outreach

Esperimenti radioattivi

Con il simulatore di Geiger presentato nell’ultimo post si possono solo fare dimostrazioni qualitative circa la maniera in cui si comporta un rivelatore di particelle quando si avvicina una sorgente radioattiva. Al più si può fare una serie di misure che permettono di stabilire la legge secondo la quale il numero di conteggi per unità di tempo diminuisce col quadrato della distanza, come nel filmato.

Una serie di misure più interessanti si può seguire con il programma riportato sotto.

#define _DEBUG

#define CLIK 8
#define ECHO 2
#define TRIG 3

#define TAU 2.2414 // the decay time in minutes
#define c 340.e-6  // the speed of sound

float tau = TAU*60.;
unsigned long t0;

void setup() {
  pinMode(CLIK, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(TRIG, OUTPUT);
  digitalWrite(TRIG, LOW);
  digitalWrite(CLIK, LOW);
  t0 = millis();
#ifdef _DEBUG
  Serial.begin(9600);
  Serial.print("============ tau = ");
  Serial.print(tau);
  Serial.println(" s");
#endif
}

void trigger() {
  /* trigger the sensor */
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
}

float measure() {
  /* measure the distance between the sensor and the obstacle */
  float d = 0.;
  for (int i = 0; i < 15; i++) {
    trigger();
    unsigned long T = pulseIn(ECHO, HIGH);
    d += c*T/2.;
  }
  return d;
}

int status = HIGH; // the current status of the relay

void loop() {
  /* measure distance and time */
  float d = measure();
  float t = (millis() - t0)*1.e-3;
  /* compute the probability of a decay */
  float Pdecay = exp(-t/tau);
  float f = (float)random(1000)/1000.;
  /* if an atom decay... */
  if (f < Pdecay) {
    /* ...detect it with a probability that depens on d */
    unsigned long trigger = 10000./(d*d); 
    unsigned long r = random(10000);
    if (r < trigger) {
      digitalWrite(CLIK, status);
#ifdef _DEBUG
      Serial.println(t);
#endif
      if (status == HIGH) {
        status = LOW;
      } else {
        status = HIGH;
      }
    }
  }
}

Il programma è solo apparentemente complicato. La costante definita alla linea

#define TAU 2.2414

rappresenta il tempo di vita medio, espresso in minuti, di una ipotetica sostanza radioattiva (in questo caso dell’Alluminio 28: quello ottenuto da Enrico Fermi nei suoi esperimenti sulla radioattività artificiale).

Con questa versione dello sketch di Arduino i click si susseguono con una probabilità che diminuisce esponenzialmente con un tempo caratteristico TAU.

A questo punto simulare una misura è facile. Si avvicina, a un’opportuna distanza, la presunta sostanza radioattiva e si contano i click che si odono nell’unità di tempo. Per esempio, si possono contare i click ogni 20 o 30 secondi, avendo cura di porre la sorgente a una distanza tale da avere un numero statisticamente significativo di click in questo intervallo di tempo (all’inizio delle misure questo numero dovrebbe essere almeno attorno a 80-100). Dividendo il numero di click N per l’intervallo di tempo T si ottiene la frequenza dei conteggi N/T. Si ripete la misura a tempi successivi e si osserva che il rapporto N/T non è costante, ma diminuisce col tempo. Se si fa un grafico di N/T (o semplicemente di N) in funzione del tempo si ottiene la figura sotto riportata:

Fermi_Al

La figura include il “fit” ai dati sperimentali eseguito con un esponenziale. Per ottenere una prima stima del tempo di decadimento senza dover eseguire un complesso fit con un esponenziale si può riportare il logaritmo del numero di conteggi in funzione del tempo, il che darà al grafico l’aspetto di una retta, di cui basta misurare la pendenza. Oppure si può, per tempi relativamente piccoli, approssimare l’esponenziale con una retta

N·exp(-t/τ)≈N(1-t/τ).

Le misure fluttuano in maniera statistica, quindi si ha l’impressione di fare una vera misura e s’impara a gestire gli errori sistematici e statistici in modo corretto. Conoscendo il tempo di vita impostato si può confrontare il valore ottenuto con quello atteso per valutare la bontà delle misure eseguite.

 

Lascia un commento