Innehållsförteckning:
- Steg 1: Verktyg och delar
- Steg 2: Montera din Geiger -räknare
- Steg 3: Elektrisk testning av Geiger -räknaren
- Steg 4: Kabeldragning
- Steg 5: Kod
- Steg 6: Serial.println Vs Serial.print
- Steg 7: J305 Bakgrundsstrålningsmätning
- Steg 8: J305 Mätning av röksensorstrålning
- Steg 9: SBM-20
- Steg 10: Anslut Geigerdisken med en LCD -skärm
- Steg 11: Geigerdisk med LCD
- Steg 12: Filer
Video: Arduino DIY Geiger Counter: 12 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Så du har beställt en DIY Geiger -räknare och du vill ansluta den till din Arduino. Du går på nätet och försöker kopiera hur andra har kopplat sin Geiger -räknare till Arduino bara för att upptäcka att något är fel. Även om din Geiger -räknare verkar fungera fungerar ingenting enligt beskrivningen i DIY du följer när du ansluter din Geiger -räknare till din Arduino.
I denna instruktionsbok kommer jag att täcka hur man felsöker några av dessa fel.
Kom ihåg; montera och koda Arduino ett steg i taget, om du går direkt till ett färdigt projekt och det finns en missad tråd eller kodrad kan det ta dig för alltid att hitta problemet.
Steg 1: Verktyg och delar
Prototyplåda Jag använde en godislåda från Ferrero Rocher.
Liten brödbräda
16x2 LCD
Arduino board eter en UNO eller Nano
220 Ω motstånd
Pot 10 kΩ justerbart motstånd.
DIY Geiger Counter Kit
Jumper Wires
Batterikontakt eller sele
Oscilloskop
Fin nästång
Liten standard skruvmejsel
Steg 2: Montera din Geiger -räknare
Eventuella skador på din Geiger Tube; och din Geiger -räknare fungerar inte, så använd det skyddande akrylskyddet för att förhindra skador på ditt Geiger -rör.
Denna instruktion handlar om hur jag reparerade samma Geiger -räknare med ett trasigt Geiger -rör och monterade det skyddande akrylskyddet för att förhindra att det går sönder i framtiden.
www.instructables.com/id/Repairing-a-DIY-G…
Steg 3: Elektrisk testning av Geiger -räknaren
Använd först rätt spänning för strömförsörjningen; USB -kabeln levererar 5 volt DC direkt från din dator, men 3 AA -batterihållaren är för 1,5 volt alkaliska batterier vilket ger en total spänning på 4,5 volt. Om du använder 1,2 volt laddningsbara NI-Cd- eller NI-MH-batterier behöver du en 4 AA-batterihållare för en total spänning på 4,8 volt. Om du använder mindre än 4,5 volt kanske Geiger -räknaren inte fungerar som den ska.
Det finns väldigt lite kretsar på Geiger -räknarnas utgång; så så länge högtalaren gör ett tickande ljud och lysdioden blinkar bör du få en signal på VIN -stiftet.
För att vara säker på utsignalen; Anslut ett oscilloskop till utgången genom att ansluta den positiva sidan av oscilloskopproben till VIN och den negativa sidan av oscilloskopproben till marken.
Istället för att bara vänta på bakgrundsstrålning för att utlösa Geiger-räknaren använde jag americium-241 från en rökdetektorer jonkammare för att öka Geigermätarens reaktioner. Utsignalen från Geiger -räknaren började med +3 volt och sjönk till 0 volt varje gång Geiger -röret reagerade på alfapartiklarna och återvände till +3 volt en stund senare. Detta är signalen du kommer att spela in med Arduino.
Steg 4: Kabeldragning
Det finns två sätt att ansluta Geiger -räknaren till din Arduino och din dator.
Anslut GND på Arduino till GND på Geiger -räknaren.
Anslut 5V på Arduino till 5V på Geiger -räknaren.
Anslut VIN på Geiger -räknaren till D2 på Arduino.
Med oberoende kraft ansluten till Geigerdisken.
Anslut GND på Arduino till GND på Geiger -räknaren.
Anslut VIN på Geiger -räknaren till D2 på Arduino.
Anslut Arduino till din dator.
Steg 5: Kod
Öppna Arduino IDE och ladda koden.
// Denna skiss räknar antalet pulser i minuten.
// Anslut GND på Arduino till GND på Geiger -räknaren.
// Anslut 5V på Arduino till 5V på Geiger -räknaren.
// Anslut VIN på Geiger -räknaren till D2 på Arduino.
osignerade långa räkningar; // variabel för GM Tube -händelser
osignerad lång tidigareMillis; // variabel för mätning av tid
void impulse () {// dipanggil setiap ada sinyal FALLING di pin 2
räknas ++;
}
#define LOG_PERIOD 60000 // count rate
void setup () {// setup
räknar = 0;
Serial.begin (9600);
pinMode (2, INPUT);
attachInterrupt (digitalPinToInterrupt (2), impuls, FALLING); // definiera externa avbrott
Serial.println ("Starträknare");
}
void loop () {// huvudcykel
osignerad lång strömMillis = millis ();
if (currentMillis - previousMillis> LOG_PERIOD) {
previousMillis = currentMillis;
Serial.println (räknar);
räknar = 0;
}
}
Välj Verktyg i Arduino eller andra kort du använder.
I Verktyg väljer du Port och Com
Ladda upp koden.
När koden har laddats upp i Verktyg väljer du Seriell bildskärm och ser hur din Geiger -räknare fungerar.
Leta efter fel. Det enda med den här koden är att det är lite tråkigt att du måste vänta 1 minut för varje räkning.
Steg 6: Serial.println Vs Serial.print
Detta är en av de första felen jag hittade i koden; så titta efter det i din kod, "Serial.println (cpm);" och "Serial.print (cpm);".
Serial.println (cpm); kommer att skriva ut varje räkning på sin egen rad.
Serial.print (cpm); kommer att se ut som ett stort nummer som skriver ut varje räkning på samma rad vilket gör det omöjligt att avgöra vad räkningen är.
Steg 7: J305 Bakgrundsstrålningsmätning
Först är mätningen av bakgrundsstrålning, den naturliga strålningen som redan existerar naturligt. Det listade numret är CPM (count per minute), vilket är totalt uppmätta radioaktiva partiklar varje minut.
J305 bakgrundsmedelvärde var 15,6 CPM.
Steg 8: J305 Mätning av röksensorstrålning
Det är inte ovanligt att en Geiger -räknare ger dig samma antal upprepade gånger, så kontrollera det med en strålningskälla. Jag använde strålningsmätningen från Americium en jonkammare från en rökdetektor. Rökgivaren använder Americium som en källa till alfapartiklar som joniserar rökpartiklar i luften. Jag tog bort metallkåpan på sensorn så att alfa- och betapartiklarna kan komma till Geiger -röret tillsammans med gammapartiklarna.
Om allt är bra bör antalet ändras.
Americium-241 från en rökdetektors jonkammares genomsnittliga antal var 519 CPM.
Steg 9: SBM-20
Denna Arduino -skiss är en modifierad version skriven av Alex Boguslavsky.
Denna skiss räknar antalet pulser på 15 sekunder och omvandlar det till räkningar per minut vilket gör det mindre tråkigt.
Kod jag lade till "Serial.println (" Starträknare ");".
Kod I ändrad; "Serial.print (cpm);" till "Serial.println (cpm);".
“#Define LOG_PERIOD 15000”; ställer in räknartiden till 15 sekunder, jag ändrade den till “#define LOG_PERIOD 5000” eller 5 sekunder. Jag fann ingen märkbar skillnad i genomsnittet mellan att räkna i 1 minut, eller 15 sekunder och 5 sekunder.
#omfatta
#define LOG_PERIOD 15000 // Loggningsperiod i millisekunder, rekommenderat värde 15000-60000.
#define MAX_PERIOD 60000 // Maximal loggningsperiod utan att ändra denna skiss
osignerade långa räkningar; // variabel för GM Tube -händelser
osignerad lång cpm; // variabel för CPM
osignerad int -multiplikator; // variabel för beräkning av CPM i denna skiss
osignerad lång tidigareMillis; // variabel för tidsmätning
void tube_impulse () {// delprocedur för att fånga händelser från Geiger Kit
räknas ++;
}
void setup () {// setup -delprocedur
räknar = 0;
cpm = 0;
multiplikator = MAX_PERIOD / LOG_PERIOD; // beräknar multiplikator, beror på din loggperiod
Serial.begin (9600);
attachInterrupt (0, tube_impulse, FALLING); // definiera externa avbrott
Serial.println ("Starträknare"); // kod jag lade till
}
void loop () {// huvudcykel
osignerad lång strömMillis = millis ();
if (currentMillis - previousMillis> LOG_PERIOD) {
previousMillis = currentMillis;
cpm = räknar * multiplikator;
Serial.println (cpm); // kod jag ändrade
räknar = 0;
}
}
SBM-20 bakgrundsmedeltalet var 23,4 CPM.
Steg 10: Anslut Geigerdisken med en LCD -skärm
LCD -anslutning:
LCD K -stift till GND
LCD En stift till 220 Ω motstånd till Vcc
LCD D7 -stift till digital stift 3
LCD D6 -stift till digital stift 5
LCD D5 -stift till digital stift 6
LCD D4 -stift till digital stift 7
LCD Aktivera stift till digital stift 8
LCD R/W -stift till jord
LCD RS -pin till digital pin 9
LCD VO -stift för justering av 10 kΩ kruka
LCD Vcc pin till Vcc
LCD Vdd -stift till GND
Pot 10 kΩ justerbart motstånd.
Vcc, Vo, Vdd
Geiger mätare
VIN till digital stift 2
5 V till +5 V.
GND till jord
Steg 11: Geigerdisk med LCD
// inkludera bibliotekskoden:
#omfatta
#omfatta
#define LOG_PERIOD 15000 // Loggningsperiod i millisekunder, rekommenderat värde 15000-60000.
#define MAX_PERIOD 60000 // Maximal loggningsperiod utan att ändra denna skiss
#define PERIOD 60000.0 // (60 sek) en minuts mätperiod
flyktigt osignerat långt CNT; // variabel för att räkna avbrott från dosimeter
osignerade långa räkningar; // variabel för GM Tube -händelser
osignerad lång cpm; // variabel för CPM
osignerad int -multiplikator; // variabel för beräkning av CPM i denna skiss
osignerad lång tidigareMillis; // variabel för tidsmätning
osignerad lång dispPeriod; // variabel för mätning av tid
osignerad lång CPM; // variabel för mätning av CPM
// initiera biblioteket med numren på gränssnittsstiften
LiquidCrystal lcd (9, 8, 7, 6, 5, 3);
void setup () {// setup
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");
fördröjning (2000);
cleanDisplay ();
attachInterrupt (0, GetEvent, FALLING); // Händelse på stift 2
}
void loop () {
lcd.setCursor (0, 0); // skriv ut text och CNT på LCD -skärmen
lcd.print ("CPM:");
lcd.setCursor (0, 1);
lcd.print ("CNT:");
lcd.setCursor (5, 1);
lcd.print (CNT);
if (millis ()> = dispPeriod + PERIOD) {// Om en minut är över
cleanDisplay (); // Klar LCD
// Gör något åt ackumulerade CNT -händelser….
lcd.setCursor (5, 0);
CPM = CNT;
lcd.print (CPM); // Visa CPM
CNT = 0;
dispPeriod = millis ();
}
}
void GetEvent () {// Hämta händelse från enhet
CNT ++;
}
void cleanDisplay () {// Rensa LCD -rutinen
lcd.clear ();
lcd.setCursor (0, 0);
lcd.setCursor (0, 0);
}
Steg 12: Filer
Ladda ner och installera dessa filer till din Arduino.
Placera varje.ino -fil i en mapp med samma namn.
Rekommenderad:
Working Geiger Counter W/ Minimal Parts: 4 Steg (med bilder)
Working Geiger Counter W/ Minimal Parts: Här är, såvitt jag vet, den enklast fungerande Geiger -räknaren som du kan bygga. Den här använder ett ryskt tillverkat SMB-20 Geiger-rör, som drivs av en högspänningskopplingskrets som rånats från en elektronisk flugsmycke. Det upptäcker betapartiklar och gam
PKE Meter Geiger Counter: 7 steg (med bilder)
PKE Meter Geiger Counter: Jag har länge velat bygga en Geiger -räknare för att komplettera min Peltier Cooled Cloud Chamber. Det finns (förhoppningsvis) inte så mycket användbart syfte med att äga en Geiger -räknare, men jag älskar bara de gamla ryska rören och trodde att det skulle
Hur man bygger CubeSat med Arduino och Geiger Counter Sensor: 11 steg
Hur man bygger CubeSat med Arduino och Geiger Counter Sensor: Har du någonsin undrat om Mars är radioaktivt eller inte? Och om det är radioaktivt, är strålningsnivåerna tillräckligt höga för att anses vara skadliga för människor? Detta är alla frågor som vi hoppas kan besvaras av vår CubeSat med Arduino Geiger Counte
Reparera en DIY Geiger Counter: 9 steg (med bilder)
Reparera en DIY Geiger -räknare: Jag beställde denna DIY Geiger -räknare online. Den kom i god tid men den var skadad, bussäkringarna krossades och J305 Geiger Muller -röret förstördes. Detta var ett problem eftersom jag använde mina poäng från tidigare köp från detta
DIY Arduino Geiger Counter: 6 steg (med bilder)
DIY Arduino Geiger Counter: Hej alla! Hur mår du? Detta är projekt How-ToDo mitt namn är Konstantin, och idag vill jag visa dig hur jag gjorde denna Geiger-räknare. Jag började bygga denna enhet nästan från början av förra året. Sedan dess har det gått igenom 3 komp