Kazalo:
- Korak: Orodja in deli
- 2. korak: Sestavite svoj Geigerjev števec
- 3. korak: Električno testiranje Geigerjevega števca
- 4. korak: Ožičenje
- 5. korak: Koda
- 6. korak: Serial.println Vs Serial.print
- 7. korak: J305 Merjenje sevanja v ozadju
- 8. korak: J305 Merjenje sevanja senzorja dima
- 9. korak: SBM-20
- 10. korak: Ožičenje Geigerjevega števca z LCD -zaslonom
- 11. korak: Geigerjev števec z LCD -zaslonom
- 12. korak: Datoteke
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Naročili ste torej Geigerjev števec DIY in ga želite povezati s svojim Arduinom. Pojdite na povezavo in poskušajte podvojiti, kako so drugi povezali svoj Geigerjev števec z Arduinom, da bi ugotovili, da je kaj narobe. Čeprav se zdi, da vaš Geigerjev števec ne deluje, nič ne deluje, kot je opisano v DIY, ki ga spremljate, ko povežete svoj Geigerjev števec z vašim Arduinom.
V tem navodilu bom obravnaval, kako odpraviti nekatere od teh napak.
Zapomni si; sestavite in kodirajte Arduino korak za korakom, če greste naravnost do končanega projekta in je prišlo do zgrešene žice ali vrstice kode, ki vam lahko vzame večno, da odkrijete težavo.
Korak: Orodja in deli
Prototipna škatla Uporabil sem škatlo za sladkarije Ferrero Rocher.
Majhna plošča
16x2 LCD
Arduino plošča eter UNO ali Nano
220 Ω upor
Ločljivost 10 kΩ nastavljiv upor.
Komplet števcev Geiger za DIY
Mostične žice
Priključek baterije ali kabelski snop
Osciloskop
Klešče za fin nos
Standardni majhen izvijač
2. korak: Sestavite svoj Geigerjev števec
Kakršne koli poškodbe vaše Geigerjeve cevi; in vaš Geigerjev števec ne bo deloval, zato uporabite zaščitno akrilno prevleko, da preprečite poškodbe vaše Geigerjeve cevi.
V tem navodilu je opisano, kako sem popravil isti Geigerjev števec z zlomljeno Geigerjevo cevjo in namestil zaščitno akrilno prevleko, da se v prihodnje prepreči zlom.
www.instructables.com/id/Repairing-a-DIY-G…
3. korak: Električno testiranje Geigerjevega števca
Najprej uporabite ustrezno napetost za napajanje; kabel USB napaja 5 voltov enosmernega toka neposredno iz vašega računalnika, vendar je držalo za baterije 3 AA namenjeno 1,5 voltnim alkalnim baterijam, kar daje skupno napetost 4,5 volta. Če uporabljate 1,2-voltne NI-Cd ali NI-MH baterije za ponovno polnjenje, boste potrebovali držalo za baterije 4 AA za skupno napetost 4,8 volta. Če uporabljate manj kot 4,5 voltov, Geigerjev števec morda ne bo deloval tako, kot bi moral.
Na izhodu Geigerjevih števcev je zelo malo vezja; tako da, dokler zvočnik oddaja tiktakanje in LED utripa, bi morali dobiti signal na pin VIN.
Če želite biti prepričani o izhodnem signalu; na izhod priključite osciloskop tako, da pozitivno stran osciloskopske sonde povežete z VIN, negativno stran sonde osciloskopa pa na tla.
Namesto da bi samo čakal na sevanje v ozadju, da bi sprožil Geigerjev števec, sem uporabil americij-241 iz ionske komore detektorjev dima za povečanje reakcij Geigerjevih števcev. Izhod Geigerjevega števca se je začel pri +3 voltih in padel na 0 voltov vsakič, ko je Geigerjeva cev reagirala na delce alfa in se trenutek kasneje vrnila na +3 volte. To je signal, ki ga boste snemali z Arduinom.
4. korak: Ožičenje
Geigerjev števec lahko povežete z Arduinom in računalnikom na dva načina.
Povežite GND na Arduinu z GND na Geigerjevem števcu.
Priključite 5V na Arduinu na 5V na Geigerjevem števcu.
Priključite VIN na Geigerjevem števcu na D2 na Arduinu.
Z neodvisnim napajanjem, priključenim na Geigerjev števec.
Povežite GND na Arduinu z GND na Geigerjevem števcu.
Priključite VIN na Geigerjevem števcu na D2 na Arduinu.
Arduino povežite z računalnikom.
5. korak: Koda
Odprite Arduino IDE in naložite kodo.
// Ta skica šteje število impulzov na minuto.
// Povežite GND na Arduinu z GND na Geigerjevem števcu.
// Priključite 5V na Arduinu na 5V na Geigerjevem števcu.
// Povežite VIN na Geigerjevem števcu z D2 na Arduinu.
dolgo podpisano štetje; // spremenljivka za dogodke GM Tube
nepodpisani dolgi prejšnjiMillis; // spremenljivka za merjenje časa
void impulse () {// dipanggil setiap ada sinyal FALLING di pin 2
šteje ++;
}
#define LOG_PERIOD 60000 // stopnja štetja
void setup () {// nastavitev
šteje = 0;
Serial.begin (9600);
pinMode (2, INPUT);
attachInterrupt (digitalPinToInterrupt (2), impulz, FALLING); // definiramo zunanje prekinitve
Serial.println ("Začni števec");
}
void loop () {// glavni cikel
nepodpisani dolgi tokMillis = millis ();
if (currentMillis - previousMillis> LOG_PERIOD) {
previousMillis = trenutniMillis;
Serial.println (šteje);
šteje = 0;
}
}
V orodjih izberite Arduino ali drugo ploščo, ki jo uporabljate.
V orodju izberite vrata in Com
Naložite kodo.
Ko je koda naložena v Orodja, izberite Serijski monitor in opazujte, kako deluje vaš Geigerjev števec.
Poiščite napake. Edina stvar pri tej kodi je, da je nekoliko dolgočasna, na vsako štetje morate počakati 1 minuto.
6. korak: Serial.println Vs Serial.print
To je ena prvih napak, ki sem jih našel v kodi; zato bodite pozorni na to v svoji kodi »Serial.println (cpm);« in “Serial.print (cpm);”.
Serial.println (cpm); bo vsako število natisnilo v svoji vrstici.
Serijski.tisk (cpm); bo videti kot eno veliko število, ki natisne vsako število na isti vrstici, zaradi česar ni mogoče povedati, kaj je štetje.
7. korak: J305 Merjenje sevanja v ozadju
Najprej je merjenje sevanja ozadja, naravno sevanje, ki že obstaja naravno. Navedeno število je CPM (število na minuto), ki je skupaj izmerjeni radioaktivni delci vsako minuto.
Povprečno število J305 v ozadju je bilo 15,6 CPM.
8. korak: J305 Merjenje sevanja senzorja dima
Ni redkost, da vam Geigerjev števec vedno znova daje enako število, zato ga preverite pri viru sevanja. Uporabil sem merjenje sevanja iz Americiuma, ionsko komoro iz detektorja dima. Senzor dima uporablja Americij kot vir alfa delcev, ki ionizirajo delce dima v zraku. Odstranil sem kovinski pokrovček na senzorju, da lahko delci alfa in beta pridejo do Geigerjeve cevi skupaj z gama delci.
Če je vse v redu, se štetje spremeni.
Americij-241 iz ionske komore detektorjev dima je povprečno število 519 CPM.
9. korak: SBM-20
Ta skica Arduino je spremenjena različica, ki jo je napisal Alex Boguslavsky.
Ta skica šteje število impulzov v 15 sekundah in jih pretvori v štetje na minuto, zaradi česar je manj dolgočasno.
Koda I je dodala "Serial.println (" Začni števec ");".
Kodo sem spremenil; "Serial.print (cpm);" na »Serial.println (cpm);«.
“#Define LOG_PERIOD 15000”; čas štetja nastavi na 15 sekund, spremenil sem ga na "#define LOG_PERIOD 5000" ali 5 sekund. Med povprečnim štetjem 1 minuto ali 15 sekund in 5 sekund nisem našel opazne razlike v povprečju.
#vključi
#define LOG_PERIOD 15000 // Obdobje beleženja v milisekundah, priporočena vrednost 15000-60000.
#define MAX_PERIOD 60000 // Najdaljše obdobje beleženja brez spreminjanja te skice
dolgo podpisano štetje; // spremenljivka za dogodke GM Tube
nepodpisani dolgi CPM; // spremenljivka za CPM
množilec brez podpisa int; // spremenljivka za izračun CPM na tej skici
nepodpisani dolgi prejšnjiMillis; // spremenljivka za merjenje časa
void tube_impulse () {// podproces za zajemanje dogodkov iz Geigerjevega kompleta
šteje ++;
}
void setup () {// podproces namestitve
šteje = 0;
cpm = 0;
množitelj = MAX_PERIOD / LOG_PERIOD; // izračunavanje množitelja, odvisno od vašega dnevnika
Serial.begin (9600);
attachInterrupt (0, tube_impulse, FALLING); // definiramo zunanje prekinitve
Serial.println ("Začni števec"); // koda, ki sem jo dodal
}
void loop () {// glavni cikel
nepodpisani dolgi tokMillis = millis ();
if (currentMillis - previousMillis> LOG_PERIOD) {
previousMillis = trenutniMillis;
cpm = šteje * množitelj;
Serial.println (cpm); // kodo sem spremenil
šteje = 0;
}
}
Povprečno število SBM-20 je bilo 23,4 CPM.
10. korak: Ožičenje Geigerjevega števca z LCD -zaslonom
Povezava LCD:
LCD K pin na GND
LCD Pin na 220 Ω upor do Vcc
LCD D7 pin na digitalni pin 3
LCD D6 pin na digitalni pin 5
LCD D5 pin na digitalni pin 6
LCD D4 pin na digitalni pin 7
LCD Omogoči pin na digitalni pin 8
R/W pin LCD na maso
LCD RS pin na digitalni pin 9
LCD VO pin za nastavitev lonca 10 kΩ
LCD Vcc pin na Vcc
LCD Vdd pin za GND
Ločljivost 10 kΩ nastavljiv upor.
Vcc, Vo, Vdd
Geigerjev števec
VIN na digitalni pin 2
5 V do +5V
GND na tla
11. korak: Geigerjev števec z LCD -zaslonom
// vključi kodo knjižnice:
#vključi
#vključi
#define LOG_PERIOD 15000 // Obdobje beleženja v milisekundah, priporočena vrednost 15000-60000.
#define MAX_PERIOD 60000 // Najdaljše obdobje beleženja brez spreminjanja te skice
#define PERIOD 60000.0 // (60 sec) enominutno merilno obdobje
hlapni nepodpisani dolgi CNT; // spremenljivka za štetje prekinitev iz dozimetra
dolgo podpisano štetje; // spremenljivka za dogodke GM Tube
nepodpisani dolgi CPM; // spremenljivka za CPM
množilec brez podpisa int; // spremenljivka za izračun CPM na tej skici
nepodpisani dolgi prejšnjiMillis; // spremenljivka za merjenje časa
dolgo podpisano obdobje brez podpisa; // spremenljivka za merjenje časa
nepodpisani dolgi CPM; // spremenljivka za merjenje CPM
// inicializiramo knjižnico s številkami vmesnikov
LCD tekoči kristal (9, 8, 7, 6, 5, 3);
void setup () {// nastavitev
lcd.begin (16, 2);
CNT = 0;
CPM = 0;
dispPeriod = 0;
lcd.setCursor (0, 0);
lcd.print ("RH Electronics");
lcd.setCursor (0, 1);
lcd.print ("Geigerjev števec");
zamuda (2000);
cleanDisplay ();
attachInterrupt (0, GetEvent, FALLING); // Dogodek na pin 2
}
void loop () {
lcd.setCursor (0, 0); // natisnemo besedilo in CNT na LCD
lcd.print ("CPM:");
lcd.setCursor (0, 1);
lcd.print ("CNT:");
lcd.setCursor (5, 1);
lcd.tisk (CNT);
if (millis ()> = dispPeriod + PERIOD) {// Če je ena minuta končana
cleanDisplay (); // Čist LCD
// Naredite nekaj glede nabranih dogodkov CNT….
lcd.setCursor (5, 0);
CPM = CNT;
lcd.print (CPM); // Prikaz CPM
CNT = 0;
dispPeriod = millis ();
}
}
void GetEvent () {// Pridobite dogodek iz naprave
CNT ++;
}
void cleanDisplay () {// Počisti rutino LCD
lcd.clear ();
lcd.setCursor (0, 0);
lcd.setCursor (0, 0);
}
12. korak: Datoteke
Prenesite in namestite te datoteke v svoj Arduino.
Vsako datoteko.ino postavite v istoimensko mapo.