RadSense - en Rad SolidState Gamma strålning detektor (9 / 11 steg)
Steg 9: Apparater testning
(Räkna legends: (1) Resulting pulsen på en 60Co-källa (t ~ 760ms) signal-brus-förhållande ~ 3:1., (2) injektion motsvarar avgiften sättas in av energikälla ~ 2 MeV., (3) injektion motsvarar avgiften sättas in av en 60Co-källa (~ 1,2 MeV))
Arduino läser helt enkelt det är analoga ingångar och spottar ut dessa data på USB-porten för en desktopen mjukvaran till handling/analysera. Bearbetning koden är ganska rå men gör susen:
< p > Importera processing.serial.*; < br > följetong myPort; < br > boolean canInput = sant;
PFont teckensnitt;
int rectX = 10, rectY = -50, rectW = 100, rectH = 50;
float Harald;
int xPos = 1;
int numValues = 6; flyta A = 0;
int Amin = 0, Amax = 1023;
float B = 0;
int Bmin = 0, Bmax = 1023;
float C = 0;
int Cmin = 0, Cmax = 1023;
flyta D = 0;
int Dmin = 0, Dmax = 1023;
flöte E = 0;
int Emin = 0, Emax = 1023;
flyta F = 0;
int Fmin = 0, Fmax = 1023;
flyta jag = 0;
int Imin = 0, Imax = 1023;
float J = 0;
int Jmin = 0, Jmax = 1023;
float K = 0;
int Kmin = 0, Kmax = 1023;
void setup() {
size(1280, 768);
Harald = höjd / numValues;
println(Serial.list());
myPort = ny följetong (denna, Serial.list() [5], 115200);
myPort.bufferUntil('\n');
Background(0);
frameRate(45);
textSize(20);
}
void draw() {
om (canInput) {
fyllning (0, 200, 200);
Fill(255);
}
}
void serialEvent(Serial myPort) {
linje (0, Harald, bredd, Harald);
linje (0, Harald * 2, bredd, Harald * 2);
linje (0, Harald * 3, bredd, Harald * 3);
linje (0, Harald * 4, bredd, Harald * 4);
linje (0, Harald * 5, bredd, Harald * 5);
linje (0, Harald * 6, bredd, Harald * 6);
linje (0, Harald * 7, bredd, Harald * 7);
InString sträng = myPort.readStringUntil('\n');
println(inString);
om (inString! = null) {
inString = trim(inString);
int [] värden = int (split (inString, ","));
om (values.length > = numValues) {
Kartan = (värden [0], Amin, Amax, 0, Harald);
B = karta (värden [2], Bmin, Bmax, 0, Harald);
C = karta (värden [1], Cmin, Cmax, 0, Harald);
D = karta (värden [3], Dmin, Dmax, 0, Harald);
E = karta (värden [4], Emin, Emax, 0, Harald);
F = karta (värden [6], Fmin, Fmax, 0, Harald);
Jag = karta (värden [5], Imin, Imax, 0, Harald);
J = karta (värden [7], Jmin, Jmax, 0, Harald);
K = karta (värden [8], Kmin, Kmax, 0, Harald);
stroke (78, 124, 227);
linje (xPos, Harald, xPos, Harald - A);
stroke (0, 204, 255);
linje (xPos, Harald, xPos, Harald - C);
stroke (227, 194, 78);
linje (xPos, Harald * 2, xPos, Harald * 2 - B);
stroke (204, 255, 0);
linje (xPos, Harald * 2, xPos, Harald * 2 - D);
stroke (227, 125, 78);
linje (xPos, Harald * 3, xPos, Harald * 3 - E);
stroke (255, 186, 0);
linje (xPos, Harald * 3, xPos, Harald * 3 - F);
stroke (174, 78, 227);
linje (xPos, Harald * 4, xPos, Harald * 4 - jag);
stroke (255, 0, 237);
linje (xPos, Harald * 4, xPos, Harald * 4 - J);
stroke (255, 255, 255);
linje (xPos, Harald * 5, xPos, Harald * 5 - K);
Smooth();
text ("V2.0; Tröskel slog 20, Harald * 5 + 70);
om (A > = Amax/4) {
Smooth();
strokeWeight(8);
stroke (78, 124, 227);
Arc (Harald * 9, Harald * 5 + 60, 80, 80, 0, HALF_PI);
text ("#1", 250, Harald * 5 + 70);
}
om (B > = Bmax/4) {
Smooth();
strokeWeight(8);
stroke (227, 194, 78);
Arc (Harald * 9, Harald * 5 + 60, 80, 80, HALF_PI, PI);
text ("#2", 500, Harald * 5 + 70);
}
om (E > = Emax/4) {
Smooth();
strokeWeight(8);
stroke (227, 125, 78);
Arc (Harald * 9, Harald * 5 + 60, 80, 80, PI, PI + HALF_PI);
text ("#3", 750, Harald * 5 + 70);
}
om (jag > = Imax/4) {
Smooth();
strokeWeight(8);
stroke (174, 78, 227);
Arc (Harald * 9, Harald * 5 + 60, 80, 80, PI + HALF_PI, PI + PI);
text ("#4", 1000, Harald * 5 + 70);
}
om (K > = Kmax/4) {
Smooth();
strokeWeight(5);
stroke (255, 0, 0);
Arc (Harald * 9, Harald * 5 + 60, 80, 80, 0, TWO_PI);
}
stroke(255);
strokeWeight(1);
om (xPos > = bredd) {
xPos = 0;
Background(0);
} annat {
xPos ++;
}
}
}
} < /p >
Avgift injektion gjordes med en pulsgenerator kopplad till en kondensator (1pF) på sensorn pad och avslutat till marken via en 50 Ohm motstånd. Dessa förfaranden möjligt för mig att testa min kretsar, finjustera komponent värdena och simulera Svaren från fotodioderna när de utsätts för en aktiv källa. Jag ställa in både en Americium−241 (60 KeV ) och en Iron−55 (5,9 KeV) källa framför de två aktiva foto-dioderna, och varken kanaler såg en tydlig signal. Jag kontrolleras via puls injektioner och drog slutsatsen att pulserna från dessa källor under observerbara tröskelvärdet på grund av bullernivåerna. Jag var dock fortfarande kunna se träffar från en 60Co (1,33 MeV) källa. Den viktigaste begränsande faktorn under provningarna var betydande buller. Det fanns många källor till buller och några förklaringar till vad genererar dessa. Jag fann att en av de mest betydande och skadliga källa var förekomsten av buller första förstärkning Stadium. På grund av den enorma vinsten detta buller förstärktes nästan en gånger! Kanske felaktig power filtrering och Johnson brus åter sprutas in återkopplingar av förstärkaren arrangerar också bidragit (detta skulle förklara den låga signalen-brus-förhållande). Jag undersöka inte beroendet av buller med polarisering, men jag kan se in i det mer ytterligare i framtiden.