Innholdsfortegnelse:
- Trinn 1: Verktøy og deler
- Trinn 2: Sett sammen din Geiger -teller
- Trinn 3: Elektrisk testing av Geiger -telleren
- Trinn 4: Kabling
- Trinn 5: Kode
- Trinn 6: Serial.println Vs Serial.print
- Trinn 7: J305 Måling av bakgrunnsstråling
- Trinn 8: J305 Måling av røykfølerstråling
- Trinn 9: SBM-20
- Trinn 10: Kabling av Geigertelleren med en LCD
- Trinn 11: Geigerteller med LCD
- Trinn 12: Filer
Video: Arduino DIY Geiger Counter: 12 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Så du har bestilt en DIY Geiger -teller og du vil koble den til din Arduino. Du går på nettet og prøver å kopiere hvordan andre har koblet Geiger -telleren til Arduino bare for å finne ut at noe er galt. Selv om Geiger -telleren ser ut til å fungere, fungerer ingenting som beskrevet i DIY -en du følger når du kobler Geiger -telleren til Arduino.
I denne instruksen vil jeg dekke hvordan du feilsøker noen av disse feilene.
Huske; sett sammen og kode Arduino ett trinn om gangen, hvis du går rett til et ferdig prosjekt og det er en ledning eller kode som er savnet, kan det ta deg evig tid å finne problemet.
Trinn 1: Verktøy og deler
Prototype -boks Jeg brukte en godteriboks fra Ferrero Rocher.
Lite brødbrett
16x2 LCD
Arduino bord eter en UNO eller Nano
220 Ω motstand
Pot 10 kΩ justerbar motstand.
DIY Geiger Counter Kit
Jumper Wires
Batterikontakt eller sele
Oscilloskop
Fin nesetang
Liten standard skrutrekker
Trinn 2: Sett sammen din Geiger -teller
Eventuelle skader på Geiger Tube; og din Geiger -teller fungerer ikke, så bruk det beskyttende akryldekselet for å forhindre skade på Geiger -røret.
Denne instruksen handler om hvordan jeg reparerte den samme Geiger -telleren med et ødelagt Geiger -rør og monterte det beskyttende akryldekselet for å forhindre brudd i fremtiden.
www.instructables.com/id/Repairing-a-DIY-G…
Trinn 3: Elektrisk testing av Geiger -telleren
Bruk først riktig spenning for strømforsyningen; USB -kabelen gir 5 volt likestrøm rett fra datamaskinen din, men 3 AA -batteriholderen er for 1,5 volt alkaliske batterier som gir en total spenning på 4,5 volt. Hvis du bruker 1,2 volt oppladbare NI-Cd eller NI-MH batterier trenger du en 4 AA batteriholder for en total spenning på 4,8 volt. Hvis du bruker mindre enn 4,5 volt, kan det hende at Geiger -telleren ikke fungerer som den skal.
Det er veldig lite kretsløp på Geiger -tellernes utgang; så så lenge høyttaleren gir en tikkende lyd og LED -en blinker, bør du få et signal på VIN -pinnen.
For å være sikker på utgangssignalet; koble et oscilloskop til utgangen ved å koble den positive siden av oscilloskopproben til VIN og den negative siden av oscilloskopproben til bakken.
Snarere enn å bare vente på bakgrunnsstråling for å utløse Geigertelleren, brukte jeg americium-241 fra et røykdetektorer-ionekammer for å øke Geiger-tellerreaksjonene. Utgangen fra Geiger -telleren startet på +3 volt og falt til 0 volt hver gang Geiger -røret reagerte på alfapartiklene og kom tilbake til +3 volt et øyeblikk senere. Dette er signalet du vil spille inn med Arduino.
Trinn 4: Kabling
Det er to måter du kan koble Geiger -telleren til deg Arduino og datamaskinen din.
Koble GND på Arduino til GND på Geiger -telleren.
Koble 5V på Arduino til 5V på Geiger -telleren.
Koble VIN på Geiger -telleren til D2 på Arduino.
Med uavhengig kraft koblet til Geiger -telleren.
Koble GND på Arduino til GND på Geiger -telleren.
Koble VIN på Geiger -telleren til D2 på Arduino.
Koble Arduino til datamaskinen.
Trinn 5: Kode
Åpne Arduino IDE og last inn koden.
// Denne skissen teller antall pulser i minuttet.
// Koble GND på Arduino til GND på Geiger -telleren.
// Koble 5V på Arduino til 5V på Geiger -telleren.
// Koble VIN på Geiger -telleren til D2 på Arduino.
usignerte lange tellinger; // variabel for GM Tube -hendelser
unsigned long previousMillis; // variabel for måling av tid
void impulse () {// dipanggil setiap ada sinyal FALLING di pin 2
teller ++;
}
#define LOG_PERIOD 60000 // tellehastighet
ugyldig oppsett () {// oppsett
teller = 0;
Serial.begin (9600);
pinMode (2, INNGANG);
attachInterrupt (digitalPinToInterrupt (2), impuls, FALLING); // definere eksterne avbrudd
Serial.println ("Startteller");
}
void loop () {// hovedsyklus
usignert langstrømMillis = millis ();
if (currentMillis - previousMillis> LOG_PERIOD) {
previousMillis = currentMillis;
Serial.println (tellinger);
teller = 0;
}
}
Velg verktøyet Arduino eller et annet brett du bruker.
Velg Verktøy og port i Verktøy
Last opp koden.
Når koden er lastet opp i Verktøy, velger du Seriell skjerm og ser hvordan Geiger -telleren fungerer.
Se etter feil. Det eneste med denne koden er at det er litt kjedelig at du må vente 1 minutt for hver telling.
Trinn 6: Serial.println Vs Serial.print
Dette er en av de første feilene jeg fant i koden; så se etter det i koden din, "Serial.println (cpm);" og "Serial.print (cpm);".
Serial.println (cpm); vil skrive ut hver telling på sin egen linje.
Serial.print (cpm); vil se ut som et stort tall som skrives ut hver teller på samme linje, noe som gjør det umulig å vite hva antallet er.
Trinn 7: J305 Måling av bakgrunnsstråling
Først er måling av bakgrunnsstråling, den naturlige strålingen som allerede eksisterer naturlig. Det oppførte tallet er CPM (telling per minutt), som er totalt målte radioaktive partikler hvert minutt.
J305 bakgrunnsgjennomsnittstall var 15,6 CPM.
Trinn 8: J305 Måling av røykfølerstråling
Det er ikke uvanlig at en Geiger -teller gir deg det samme antallet gjentatte ganger, så sjekk det med en strålekilde. Jeg brukte strålingsmåling fra Americium, et ionekammer fra en røykdetektor. Røyksensoren bruker Americium som en kilde til alfapartikler som ioniserer røykpartikler i luften. Jeg fjernet metallhetten på sensoren slik at alfa- og betapartiklene kan komme til Geiger -røret sammen med gammapartiklene.
Hvis alt er i orden, bør tallene endres.
Americium-241 fra et røykdetektorer ionekammer gjennomsnittlig antall var 519 CPM.
Trinn 9: SBM-20
Denne Arduino -skissen er modifisert versjon skrevet av Alex Boguslavsky.
Denne skissen teller antall pulser på 15 sekunder og konverterer den til tellinger per minutt, noe som gjør den mindre kjedelig.
Kode jeg la til "Serial.println (" Startteller ");".
Kode I endret; "Serial.print (cpm);" til "Serial.println (cpm);".
“#Define LOG_PERIOD 15000”; setter telletiden til 15 sekunder, jeg endret den til “#define LOG_PERIOD 5000” eller 5 sekunder. Jeg fant ingen merkbar forskjell i gjennomsnittet mellom å telle i 1 minutt, eller 15 sekunder og 5 sekunder.
#inkludere
#define LOG_PERIOD 15000 // Loggperiode i millisekunder, anbefalt verdi 15000-60000.
#define MAX_PERIOD 60000 // Maksimal loggperiode uten å endre denne skissen
usignerte lange tellinger; // variabel for GM Tube -hendelser
usignerte lange cpm; // variabel for CPM
usignert int multiplikator; // variabel for beregning av CPM i denne skissen
unsigned long previousMillis; // variabel for tidsmåling
void tube_impulse () {// delprosedyre for å fange hendelser fra Geiger Kit
teller ++;
}
ugyldig oppsett () {// delprosedyre for oppsett
teller = 0;
cpm = 0;
multiplikator = MAX_PERIOD / LOG_PERIOD; // beregner multiplikator, avhenger av loggperioden din
Serial.begin (9600);
attachInterrupt (0, tube_impulse, FALLING); // definere eksterne avbrudd
Serial.println ("Startteller"); // kode jeg la til
}
void loop () {// hovedsyklus
usignert langstrømMillis = millis ();
if (currentMillis - previousMillis> LOG_PERIOD) {
previousMillis = currentMillis;
cpm = teller * multiplikator;
Serial.println (cpm); // kode jeg endret
teller = 0;
}
}
SBM-20 bakgrunnsgjennomsnittstall var 23,4 CPM.
Trinn 10: Kabling av Geigertelleren med en LCD
LCD -tilkobling:
LCD K pin til GND
LCD En pinne til 220 Ω motstand til Vcc
LCD D7 pin til digital pin 3
LCD D6 -pin til digital pin 5
LCD D5 pin til digital pin 6
LCD D4 -pinne til digital pinne 7
LCD Aktiver pin til digital pin 8
LCD R/W pin til bakken
LCD RS -pin til digital pin 9
LCD VO -pin for å justere 10 kΩ potten
LCD Vcc pin til Vcc
LCD Vdd pin til GND
Pot 10 kΩ justerbar motstand.
Vcc, Vo, Vdd
Geiger-teller
VIN til digital pin 2
5 V til +5 V.
GND til bakken
Trinn 11: Geigerteller med LCD
// inkludere bibliotekskoden:
#inkludere
#inkludere
#define LOG_PERIOD 15000 // Loggperiode i millisekunder, anbefalt verdi 15000-60000.
#define MAX_PERIOD 60000 // Maksimal loggperiode uten å endre denne skissen
#define PERIOD 60000.0 // (60 sek) ett minutt måleperiode
flyktig usignert lang CNT; // variabel for å telle avbrudd fra dosimeter
usignerte lange tellinger; // variabel for GM Tube -hendelser
usignerte lange cpm; // variabel for CPM
usignert int multiplikator; // variabel for beregning av CPM i denne skissen
unsigned long previousMillis; // variabel for tidsmåling
usignert lang dispPeriod; // variabel for måling av tid
usignert lang CPM; // variabel for måling av CPM
// initialiser biblioteket med tallene på grensesnittpinnene
LiquidCrystal lcd (9, 8, 7, 6, 5, 3);
ugyldig oppsett () {// oppsett
lcd.begin (16, 2);
CNT = 0;
CPM = 0;
dispPeriod = 0;
lcd.setCursor (0, 0);
lcd.print ("RH Electronics");
lcd.setCursor (0, 1);
lcd.print ("Geiger Counter");
forsinkelse (2000);
cleanDisplay ();
attachInterrupt (0, GetEvent, FALLING); // Hendelse på pin 2
}
void loop () {
lcd.setCursor (0, 0); // skriv ut tekst og CNT på LCD -skjermen
lcd.print ("CPM:");
lcd.setCursor (0, 1);
lcd.print ("CNT:");
lcd.setCursor (5, 1);
lcd.print (CNT);
if (millis ()> = dispPeriod + PERIOD) {// Hvis ett minutt er over
cleanDisplay (); // Klar LCD
// Gjør noe med akkumulerte CNT -hendelser….
lcd.setCursor (5, 0);
CPM = CNT;
lcd.print (CPM); // Vis CPM
CNT = 0;
dispPeriod = millis ();
}
}
void GetEvent () {// Få hendelse fra enhet
CNT ++;
}
void cleanDisplay () {// Klar LCD -rutine
lcd.clear ();
lcd.setCursor (0, 0);
lcd.setCursor (0, 0);
}
Trinn 12: Filer
Last ned og installer disse filene til Arduino.
Plasser hver.ino -fil i en mappe med samme navn.
Anbefalt:
Working Geiger Counter W/ Minimal Parts: 4 Steps (med bilder)
Working Geiger Counter W/ Minimal Parts: Her er, så vidt jeg vet, den enkleste fungerende Geiger -telleren du kan bygge. Denne bruker et russiskprodusert SMB-20 Geiger-rør, drevet av en høyspent trinn-opp krets som er frarøvet fra en elektronisk fluesmatter. Det oppdager betapartikler og gam
DIY Geiger -teller med en ESP8266 og en berøringsskjerm: 4 trinn (med bilder)
DIY Geiger Counter Med en ESP8266 og en berøringsskjerm: OPPDATERING: NY OG FORBEDRET VERSJON MED WIFI OG ANDRE TILFØLGTE FUNKSJONER HER har jeg designet og bygget en Geiger Counter - en enhet som kan oppdage ioniserende stråling og advare brukeren om farlige omgivelsesstrålingsnivåer med alt- for kjent klikk nei
PKE Meter Geiger Counter: 7 trinn (med bilder)
PKE Meter Geiger Counter: Jeg har lenge ønsket å bygge en Geiger -teller for å utfylle mitt Peltier Cooled Cloud Chamber. Det er (forhåpentligvis) egentlig ikke mye nyttig formål med å eie en Geiger -teller, men jeg elsker bare de gamle russiske rørene og trodde det ville
Hvordan bygge CubeSat med Arduino og Geiger counter sensor: 11 trinn
Hvordan bygge CubeSat med Arduino og Geiger Counter Sensor: Har du noen gang lurt på om Mars er radioaktivt eller ikke? Og hvis det er radioaktivt, er strålingsnivåene høye nok til å bli ansett som skadelige for mennesker? Dette er alle spørsmål vi håper kan besvares av vår CubeSat med Arduino Geiger Counte
DIY Arduino Geiger Counter: 6 trinn (med bilder)
DIY Arduino Geiger Counter: Hei alle sammen! Hvordan går det? Dette er prosjekt How-ToDo jeg heter Konstantin, og i dag vil jeg vise deg hvordan jeg lagde denne Geiger-telleren. Jeg begynte å bygge denne enheten nesten fra begynnelsen av fjoråret. Siden den gang har den gått gjennom 3 komp