Satura rādītājs:

Arduino DIY Geigera skaitītājs: 12 soļi (ar attēliem)
Arduino DIY Geigera skaitītājs: 12 soļi (ar attēliem)

Video: Arduino DIY Geigera skaitītājs: 12 soļi (ar attēliem)

Video: Arduino DIY Geigera skaitītājs: 12 soļi (ar attēliem)
Video: Home Automation: 12V Relay with LED Display Delay 0.1 seconds to 999 seconds Timer module P1 to P4 2024, Novembris
Anonim
Arduino DIY Geigera skaitītājs
Arduino DIY Geigera skaitītājs
Arduino DIY Geigera skaitītājs
Arduino DIY Geigera skaitītājs

Tātad jūs esat pasūtījis DIY Geigera skaitītāju un vēlaties to savienot ar savu Arduino. Jūs dodaties tiešsaistē un mēģināt dublēt, kā citi ir savienojuši savu Geigera skaitītāju ar Arduino, lai tikai atrastu, ka kaut kas nav kārtībā. Lai gan šķiet, ka jūsu Geigera skaitītājs nedarbojas, kā aprakstīts DIY, kam sekojat, kad savienojat savu Geigera skaitītāju ar savu Arduino.

Šajā pamācībā es apskatīšu, kā novērst dažas no šīm problēmām.

Atcerieties; samontējiet un kodējiet Arduino soli pa solim, ja dodaties tieši pie pabeigta projekta un ir nokavēts vads vai koda rindiņa, problēmas meklēšana var aizņemt jūs uz visiem laikiem.

1. darbība: rīki un detaļas

Instrumenti un detaļas
Instrumenti un detaļas

Prototipa kaste Es izmantoju Ferrero Rocher konfekšu kastīti.

Neliels maizes dēlis

16x2 LCD

Arduino plāksnes ēteris UNO vai Nano

220 Ω rezistors

Pot 10 kΩ regulējams rezistors.

DIY Geigera skaitītāju komplekts

Jumper vadi

Akumulatora savienotājs vai siksnas

Osciloskops

Smalkas deguna knaibles

Mazs standarta skrūvgriezis

2. darbība: samontējiet savu Geigera skaitītāju

Salieciet savu Geigera skaitītāju
Salieciet savu Geigera skaitītāju

Jebkādi jūsu Geigera caurules bojājumi; un jūsu Geigera skaitītājs nedarbosies, tāpēc izmantojiet aizsargājošu akrila pārsegu, lai novērstu Geigera caurules bojājumus.

Šī pamācība ir par to, kā es laboju to pašu Geigera skaitītāju ar salauztu Geigera cauruli un uzstādīju aizsargājošu akrila pārsegu, lai novērstu lūzumus nākotnē.

www.instructables.com/id/Repairing-a-DIY-G…

3. darbība: Geigera skaitītāja elektriskā pārbaude

Geigera skaitītāja elektriskā pārbaude
Geigera skaitītāja elektriskā pārbaude
Geigera skaitītāja elektriskā pārbaude
Geigera skaitītāja elektriskā pārbaude
Geigera skaitītāja elektriskā pārbaude
Geigera skaitītāja elektriskā pārbaude

Vispirms izmantojiet barošanas avotam pareizo spriegumu; USB vads piegādā 5 voltu līdzstrāvu tieši no datora, tomēr 3 AA bateriju turētājs ir paredzēts 1,5 voltu sārma baterijām, kuru kopējais spriegums ir 4,5 volti. Ja izmantojat 1,2 voltu uzlādējamas NI-Cd vai NI-MH baterijas, jums būs nepieciešams 4 AA bateriju turētājs, kura kopējais spriegums ir 4,8 volti. Ja izmantojat mazāk nekā 4,5 voltus, Geigera skaitītājs var nedarboties tā, kā vajadzētu.

Geigera skaitītāju izejā ir ļoti maz shēmu; tāpēc, kamēr skaļrunis izdod tikšķīgu skaņu un mirgo gaismas diode, jums vajadzētu saņemt signālu uz VIN tapas.

Lai būtu pārliecināts par izejas signālu; pievienojiet osciloskopu izejai, savienojot osciloskopa zondes pozitīvo pusi ar VIN un osciloskopa zondes negatīvo pusi ar zemi.

Tā vietā, lai tikai gaidītu fona starojumu, lai iedarbinātu Geigera skaitītāju, es izmantoju americium-241 no dūmu detektoru jonu kameras, lai palielinātu Geigera skaitītāju reakcijas. Geigera skaitītāja izeja sākās ar +3 voltiem un samazinājās līdz 0 voltiem katru reizi, kad Geigera caurule reaģēja uz alfa daļiņām un mirkli vēlāk atgriezās pie +3 voltiem. Tas ir signāls, kuru ierakstīsit, izmantojot Arduino.

4. solis: elektroinstalācija

Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija

Ir divi veidi, kā savienot Geigera skaitītāju ar Arduino un datoru.

Savienojiet GND uz Arduino ar GND uz Geigera skaitītāja.

Pievienojiet 5V uz Arduino ar 5V uz Geigera skaitītāja.

Savienojiet VIN uz Geigera skaitītāja ar D2 Arduino.

Ar neatkarīgu barošanu, kas savienota ar Geigera skaitītāju.

Savienojiet GND uz Arduino ar GND uz Geigera skaitītāja.

Savienojiet VIN uz Geigera skaitītāja ar D2 Arduino.

Savienojiet Arduino ar datoru.

5. darbība: kods

Kods
Kods
Kods
Kods
Kods
Kods

Atveriet Arduino IDE un ielādējiet kodu.

// Šī skice skaita impulsu skaitu minūtē.

// Savienojiet GND uz Arduino ar GND uz Geigera skaitītāja.

// Savienojiet 5V ar Arduino ar 5V uz Geigera skaitītāja.

// Savienojiet VIN uz Geigera skaitītāja ar D2 Arduino.

neparakstīti ilgi skaitījumi; // mainīgais GM Tube notikumiem

neparakstīts ilgi iepriekšMillis; // mainīgais laika mērīšanai

void impulse () {// dipanggil setiap ada sinyal FALLING di pin 2

skaitās ++;

}

#define LOG_PERIOD 60000 // skaitīšanas ātrums

void setup () {// setup

skaitās = 0;

Sērijas sākums (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), impulss, FALLING); // definēt ārējos pārtraukumus

Serial.println ("Sākt skaitītāju");

}

void loop () {// galvenais cikls

neparakstīta garā strāvaMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

Serial.println (skaits);

skaitās = 0;

}

}

Rīkos atlasiet Arduino vai citu izmantoto dēli.

Rīkos atlasiet Port un Com

Augšupielādējiet kodu.

Kad kods ir augšupielādēts Rīki, atlasiet Sērijas monitors un skatieties, kā darbojas Geigera skaitītājs.

Meklējiet traucējumus. Vienīgais, kas attiecas uz šo kodu, ir tas, ka tas ir nedaudz garlaicīgs, un jums ir jāgaida 1 minūte līdz katram skaitījumam.

6. darbība: Serial.println vs Serial.print

Serial.println vs Serial.print
Serial.println vs Serial.print
Serial.println vs Serial.print
Serial.println vs Serial.print

Šī ir viena no pirmajām kļūdām, ko atradu kodā; tāpēc skatieties to savā kodā “Serial.println (cpm)”; un “Sērijas nospiedums (cpm);”.

Serial.println (cpm); katru skaitli drukās uz savas rindas.

Sērijas nospiedums (cpm); izskatīsies kā viens liels skaitlis, un katrs skaitlis tiks uzrakstīts uz vienas līnijas, tāpēc nebūs iespējams pateikt, kāds ir skaitlis.

7. darbība: J305 Fona starojuma mērīšana

J305 Fona starojuma mērīšana
J305 Fona starojuma mērīšana
J305 Fona starojuma mērīšana
J305 Fona starojuma mērīšana

Pirmkārt, tiek mērīts fona starojums, dabiskais starojums, kas jau pastāv dabiski. Uzskaitītais skaitlis ir MPT (skaits minūtē), kas ir kopā izmērīto radioaktīvo daļiņu daudzums katru minūti.

J305 vidējais fona skaitlis bija 15,6 MPT.

8. darbība: J305 Dūmu sensora starojuma mērīšana

J305 Dūmu sensora starojuma mērīšana
J305 Dūmu sensora starojuma mērīšana
J305 Dūmu sensora starojuma mērīšana
J305 Dūmu sensora starojuma mērīšana

Nereti Geigera skaitītājs atkārtoti norāda vienu un to pašu skaitli, tāpēc pārbaudiet to ar starojuma avotu. Es izmantoju starojuma mērījumu no Americium jonu kameras no dūmu detektora. Dūmu sensors izmanto Americium kā alfa daļiņu avotu, kas jonizē gaisā esošās dūmu daļiņas. Es noņēmu sensora metāla vāciņu, lai alfa un beta daļiņas kopā ar gamma daļiņām varētu nokļūt Geigera caurulē.

Ja viss ir kārtībā, skaitļiem vajadzētu mainīties.

Americium-241 no dūmu detektoru jonu kameras vidējais skaits bija 519 MPT.

9. darbība: SBM-20

SBM-20
SBM-20
SBM-20
SBM-20

Šī Arduino skice ir modificēta versija, ko uzrakstījis Alekss Boguslavskis.

Šī skice saskaita impulsu skaitu 15 sekundēs un pārvērš to skaitļos minūtē, padarot to mazāk nogurdinošu.

Kods I pievienoja “Serial.println (" Sākt skaitītāju ");”.

I kods mainīts; “Sērijas nospiedums (cpm);” uz “Serial.println (cpm);”.

“#Define LOG_PERIOD 15000”; nosaka skaitīšanas laiku līdz 15 sekundēm, es to nomainīju uz “#define LOG_PERIOD 5000” jeb 5 sekundes. Es neatradu būtisku atšķirību vidējā rādītājā starp skaitīšanu 1 minūti vai 15 sekundes un 5 sekundes.

#iekļaut

#define LOG_PERIOD 15000 // Reģistrācijas periods milisekundēs, ieteicamā vērtība 15000-60000.

#define MAX_PERIOD 60000 // Maksimālais reģistrēšanas periods, nemainot šo skici

neparakstīti ilgi skaitījumi; // GM Tube notikumu mainīgais

neparakstīts garš cpm; // mainīgais MPT

neparakstīts int reizinātājs; // mainīgais MPT aprēķināšanai šajā skicē

neparakstīts ilgi iepriekšMillis; // mainīgais laika mērīšanai

void tube_impulse () {// apakšprocedūra notikumu fiksēšanai no Geigera komplekta

skaitās ++;

}

void setup () {// iestatīšanas apakšprocedūra

skaitās = 0;

cpm = 0;

reizinātājs = MAX_PERIOD / LOG_PERIOD; // aprēķināšanas reizinātājs, atkarīgs no jūsu žurnāla perioda

Sērijas sākums (9600);

attachInterrupt (0, tube_impulse, FALLING); // definēt ārējos pārtraukumus

Serial.println ("Sākt skaitītāju"); // kods, kuru es pievienoju

}

void loop () {// galvenais cikls

neparakstīta garā strāvaMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

cpm = skaits * reizinātājs;

Serial.println (cpm); // kods, kuru es mainīju

skaitās = 0;

}

}

SBM-20 fona vidējais skaits bija 23,4 MPT.

10. solis: Geigera skaitītāja savienošana ar LCD

Geigera skaitītāja savienošana ar LCD
Geigera skaitītāja savienošana ar LCD

LCD savienojums:

LCD K tapa uz GND

LCD A kontakts ar 220 Ω rezistoru uz Vcc

LCD D7 tapa līdz digitālajai tapai 3

LCD D6 tapa uz digitālo tapu 5

LCD D5 tapa uz ciparu tapu 6

LCD D4 tapa uz ciparu tapu 7

LCD Iespējot tapu uz digitālo tapu 8

LCD R/W tapa uz zemes

LCD RS tapa līdz digitālajai tapai 9

LCD VO tapa, lai pielāgotu 10 kΩ katlu

LCD Vcc tapa uz Vcc

LCD Vdd tapa uz GND

Pot 10 kΩ regulējams rezistors.

Vcc, Vo, Vdd

Geigera skaitītājs

VIN līdz digitālajai tapai 2

5 V līdz +5 V.

GND uz zemes

11. solis: Geigera skaitītājs ar LCD

Geigera skaitītājs ar LCD
Geigera skaitītājs ar LCD
Geigera skaitītājs ar LCD
Geigera skaitītājs ar LCD
Geigera skaitītājs ar LCD
Geigera skaitītājs ar LCD

// iekļauj bibliotēkas kodu:

#iekļaut

#iekļaut

#define LOG_PERIOD 15000 // Reģistrācijas periods milisekundēs, ieteicamā vērtība 15000-60000.

#define MAX_PERIOD 60000 // Maksimālais reģistrēšanas periods, nemainot šo skici

#define PERIOD 60000.0 // (60 sek.) vienas minūtes mērīšanas periods

gaistošs neparakstīts garš CNT; // mainīgais pārtraukumu skaitīšanai no dozimetra

neparakstīti gari skaitījumi; // GM Tube notikumu mainīgais

neparakstīts garš cpm; // mainīgais MPT

neparakstīts int reizinātājs; // mainīgais MPT aprēķināšanai šajā skicē

neparakstīts ilgi iepriekšMillis; // mainīgais laika mērīšanai

neparakstīts ilgs laiks; // mainīgais laika mērīšanai

neparakstīta gara MPT; // mainīgais MPT mērīšanai

// inicializēt bibliotēku, izmantojot saskarnes tapas numurus

LiquidCrystal LCD (9, 8, 7, 6, 5, 3);

void setup () {// setup

lcd. sākums (16, 2);

CNT = 0;

MPT = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print ("RH Electronics");

lcd.setCursor (0, 1);

lcd.print ("Geigera skaitītājs");

kavēšanās (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Notikums uz 2. tapas

}

void loop () {

lcd.setCursor (0, 0); // drukāt tekstu un CNT uz LCD

lcd.print ("MPT:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

ja (milis ()> = dispPeriod + PERIOD) {// Ja viena minūte ir beigusies

cleanDisplay (); // Notīrīt LCD

// Dariet kaut ko par uzkrātajiem CNT notikumiem….

lcd.setCursor (5, 0);

MPT = CNT;

lcd.print (MPT); // Parādīt MPT

CNT = 0;

dispPeriod = milis ();

}

}

void GetEvent () {// Iegūt notikumu no ierīces

CNT ++;

}

void cleanDisplay () {// Notīrīt LCD rutīnu

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

12. darbība: faili

Lejupielādējiet un instalējiet šos failus savā Arduino.

Ievietojiet katru.ino failu mapē ar tādu pašu nosaukumu.

Ieteicams: