Obsah:

Arduino DIY Geiger Counter: 12 kroků (s obrázky)
Arduino DIY Geiger Counter: 12 kroků (s obrázky)

Video: Arduino DIY Geiger Counter: 12 kroků (s obrázky)

Video: Arduino DIY Geiger Counter: 12 kroků (s obrázky)
Video: DIY Arduino Geiger Counter (Video 1) 2024, Listopad
Anonim
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter

Takže jste si objednali počítadlo Geiger a chcete jej připojit k vašemu Arduinu. Přejděte na linku a zkuste duplikovat, jak ostatní připojili svůj Geigerův čítač k Arduinu, aby zjistili, že něco není v pořádku. Přestože se zdá, že váš Geigerův čítač nefunguje, nic nefunguje, jak je popsáno v DIY, které sledujete, když připojíte své Geigerovo počítadlo k Arduinu.

V tomto Instructable se budu zabývat tím, jak vyřešit některé z těchto závad.

Pamatovat si; sestavte a kódujte Arduino jeden krok za druhým, pokud přejdete přímo k hotovému projektu a dojde k chybějícímu drátu nebo řádku kódu, může vám trvat věčnost, než najdete problém.

Krok 1: Nástroje a součásti

Nástroje a díly
Nástroje a díly

Prototypová krabice Použil jsem bonboniéru Ferrero Rocher.

Malé prkénko

16x2 LCD

Deska Arduino ether UNO nebo Nano

Odpor 220 Ω

Pot 10 kΩ nastavitelný odpor.

DIY Geiger Counter Kit

Propojovací dráty

Konektor baterie nebo kabelový svazek

Osciloskop

Kleště na jemný nos

Malý standardní šroubovák

Krok 2: Sestavte své Geigerovo počítadlo

Sestavte si své Geigerovo počítadlo
Sestavte si své Geigerovo počítadlo

Jakékoli poškození vaší Geiger Tube; a váš Geigerův počítač nebude fungovat, proto použijte ochranný akrylový kryt, abyste zabránili poškození Geigerovy trubice.

Tento Instructable je o tom, jak jsem opravil stejný Geigerův pult se zlomenou Geigerovou trubkou a nasadil ochranný akrylový kryt, aby se v budoucnu zabránilo zlomení.

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

Krok 3: Elektrické testování Geigerova čítače

Elektrické testování Geigerova čítače
Elektrické testování Geigerova čítače
Elektrické testování Geigerova čítače
Elektrické testování Geigerova čítače
Elektrické testování Geigerova čítače
Elektrické testování Geigerova čítače

Nejprve použijte správné napětí pro napájení; kabel USB dodává 5 voltů stejnosměrného proudu přímo z vašeho počítače, avšak držák 3 AA baterií je určen pro 1,5voltové alkalické baterie s celkovým napětím 4,5 voltů. Pokud používáte 1,2 V dobíjecí baterie NI-Cd nebo NI-MH, budete potřebovat držák baterií 4 AA pro celkové napětí 4,8 voltů. Pokud použijete méně než 4,5 voltů, Geigerův čítač nemusí fungovat tak, jak by měl.

Na výstupu Geigerových čítačů je velmi málo obvodů; tak dlouho, dokud reproduktor vydává tikot a LED bliká, měli byste dostat signál na pin VIN.

Pro jistotu výstupního signálu; připojte osciloskop k výstupu připojením kladné strany sondy osciloskopu k VIN a negativní strany sondy osciloskopu k zemi.

Spíše než jen na čekání na záření pozadí pro spuštění Geigerova počitadla jsem použil americium-241 z iontové komory detektorů kouře ke zvýšení reakcí Geigerových čítačů. Výstup Geigerova počitadla začínal na +3 voltech a klesl na 0 voltů pokaždé, když Geigerova trubice reagovala na alfa částice a o chvíli později se vrátila na +3 volty. Toto je signál, který budete nahrávat pomocí Arduina.

Krok 4: Zapojení

Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení

Počitadlo Geiger můžete k Arduinu a počítači připojit dvěma způsoby.

Připojte GND na Arduinu k GND na Geigerově čítači.

Připojte 5V na Arduinu k 5V na Geigerově čítači.

Připojte VIN na čítači Geiger k D2 na Arduinu.

S nezávislým napájením připojeným k počítadlu Geiger.

Připojte GND na Arduinu k GND na Geigerově čítači.

Připojte VIN na čítači Geiger k D2 na Arduinu.

Připojte Arduino k počítači.

Krok 5: Kód

Kód
Kód
Kód
Kód
Kód
Kód

Otevřete Arduino IDE a načtěte kód.

// Tato skica počítá počet pulzů za minutu.

// Připojte GND na Arduinu k GND na Geigerově čítači.

// Připojte 5V na Arduinu k 5V na Geigerově čítači.

// Připojte VIN na počítadle Geiger k D2 na Arduinu.

nepodepsané dlouhé počty; // proměnná pro události GM Tube

bez znaménka dlouho předchozí Millis; // proměnná pro měření času

neplatný impuls () {// dipanggil setiap ada sinyal FALLING di pin 2

počítá ++;

}

#define LOG_PERIOD 60000 // rychlost počítání

neplatné nastavení () {// nastavení

počty = 0;

Serial.begin (9600);

pinMode (2, VSTUP);

attachInterrupt (digitalPinToInterrupt (2), impulse, FALLING); // definujte externí přerušení

Serial.println ("Počítadlo počitadel");

}

void loop () {// hlavní cyklus

unsigned long currentMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = aktuálníMillis;

Serial.println (počítá);

počty = 0;

}

}

V nabídce Nástroje vyberte Arduino nebo jinou desku, kterou používáte.

V nabídce Nástroje vyberte Port a Com

Nahrajte kód.

Jakmile je kód nahrán do Nástroje, vyberte Sériový monitor a sledujte, jak pracuje váš Geigerův čítač.

Hledejte závady. Jediná věc na tomto kódu je, že je trochu únavné, musíte na každé počítání počkat 1 minutu.

Krok 6: 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

Toto je jedna z prvních závad, které jsem v kódu našel; sledujte to ve svém kódu „Serial.println (cpm);“a „Serial.print (cpm);“.

Serial.println (cpm); vytiskne každý počet na svém řádku.

Serial.print (cpm); bude vypadat jako jedno velké číslo, které tiskne každý počet na stejném řádku, takže není možné určit, jaký je počet.

Krok 7: J305 Měření radiace pozadí

J305 Měření radiace pozadí
J305 Měření radiace pozadí
J305 Měření radiace pozadí
J305 Měření radiace pozadí

První je měření záření pozadí, přirozeného záření, které již přirozeně existuje. Uvedené číslo je CPM (počet za minutu), což je součet naměřených radioaktivních částic každou minutu.

Průměrný počet pozadí J305 byl 15,6 CPM.

Krok 8: J305 Měření záření senzoru kouře

J305 Měření záření senzoru kouře
J305 Měření záření senzoru kouře
J305 Měření záření senzoru kouře
J305 Měření záření senzoru kouře

Není neobvyklé, že vám Geigerův čítač opakovaně dává stejný počet, proto jej zkontrolujte pomocí zdroje záření. Použil jsem měření záření z Americium, iontové komory z detektoru kouře. Kouřový senzor využívá Americium jako zdroj částic alfa, které ionizují částice kouře ve vzduchu. Odstranil jsem kovové víčko na senzoru, aby se částice alfa a beta mohly dostat do Geigerovy trubice spolu s částicemi gama.

Pokud je vše v pořádku, počty by se měly změnit.

Americium-241 z iontové komory detektorů kouře dosahovalo průměrného počtu 519 CPM.

Krok 9: SBM-20

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

Tato skica Arduina je upravenou verzí napsanou Alexem Boguslavským.

Tato skica počítá počet impulsů za 15 sekund a převádí ji na počty za minutu, takže je méně únavná.

Přidal jsem kód „Serial.println („ Počítadlo počitadel “);”.

Kód jsem změnil; „Serial.print (cpm);“na „Serial.println (cpm);“.

„#Define LOG_PERIOD 15000“; nastaví dobu počítání na 15 sekund, změnil jsem ji na „#define LOG_PERIOD 5000“nebo 5 sekund. Nenašel jsem žádný znatelný rozdíl v průměru mezi počítáním po dobu 1 minuty nebo 15 sekund a 5 sekund.

#zahrnout

#define LOG_PERIOD 15000 // Období protokolování v milisekundách, doporučená hodnota 15000-60000.

#define MAX_PERIOD 60000 // Maximální doba protokolování bez úpravy této skici

nepodepsané dlouhé počty; // proměnná pro události GM Tube

nepodepsané dlouhé CPM; // proměnná pro CPM

multiplikátor bez znaménka int; // proměnná pro výpočet CPM v tomto náčrtu

bez znaménka dlouho předchozí Millis; // proměnná pro měření času

void tube_impulse () {// podproces pro zachycení událostí ze sady Geiger

počítá ++;

}

void setup () {// podproces instalace

počty = 0;

cpm = 0;

multiplikátor = MAX_PERIOD / LOG_PERIOD; // výpočet multiplikátoru, závisí na období vašeho protokolu

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // definujte externí přerušení

Serial.println ("Počítadlo počitadel"); // kód, který jsem přidal

}

void loop () {// hlavní cyklus

unsigned long currentMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = aktuálníMillis;

cpm = počítá * multiplikátor;

Serial.println (cpm); // kód jsem změnil

počty = 0;

}

}

Průměrný počet pozadí SBM-20 byl 23,4 CPM.

Krok 10: Zapojení Geigerova počítače s LCD

Zapojení Geigerova čítače s LCD
Zapojení Geigerova čítače s LCD

Připojení LCD:

LCD K pin na GND

LCD A pin na 220 Ω odpor vůči Vcc

LCD D7 pin na digitální pin 3

LCD D6 pin na digitální pin 5

LCD D5 pin na digitální pin 6

LCD D4 pin na digitální pin 7

LCD Povolit pin na digitální pin 8

LCD R/W kolík k zemi

LCD RS pin na digitální pin 9

LCD VO pin pro nastavení 10 kΩ potu

Pin Vcc LCD na Vcc

LCD Vdd pin na GND

Pot 10 kΩ nastavitelný odpor.

Vcc, Vo, Vdd

Geigerův počítač

VIN na digitální pin 2

5 V až +5 V.

GND k zemi

Krok 11: Geigerovo počítadlo s LCD

Geigerovo počítadlo s LCD
Geigerovo počítadlo s LCD
Geigerovo počítadlo s LCD
Geigerovo počítadlo s LCD
Geigerovo počítadlo s LCD
Geigerovo počítadlo s LCD

// zahrnout kód knihovny:

#zahrnout

#zahrnout

#define LOG_PERIOD 15000 // Období protokolování v milisekundách, doporučená hodnota 15000-60000.

#define MAX_PERIOD 60000 // Maximální doba protokolování bez úpravy této skici

#define PERIOD 60000.0 // (60 sec) one minute period period

těkavý nepodepsaný dlouhý CNT; // proměnná pro počítání přerušení z dozimetru

nepodepsané dlouhé počty; // proměnná pro události GM Tube

nepodepsané dlouhé CPM; // proměnná pro CPM

multiplikátor bez znaménka int; // proměnná pro výpočet CPM v tomto náčrtu

bez znaménka dlouho předchozí Millis; // proměnná pro měření času

dlouhé období bez znaménka; // proměnná pro měření času

nepodepsané dlouhé CPM; // proměnná pro měření CPM

// inicializace knihovny čísly pinů rozhraní

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

neplatné nastavení () {// nastavení

lcd.begin (16, 2);

CNT = 0;

CPM = 0;

dispPeriod = 0;

lcd.setCursor (0, 0);

lcd.print („RH Electronics“);

lcd.setCursor (0, 1);

lcd.print („Geigerovo počítadlo“);

zpoždění (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Událost na pinu 2

}

prázdná smyčka () {

lcd.setCursor (0, 0); // tisk textu a CNT na LCD

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Pokud je jedna minuta u konce

cleanDisplay (); // Vymazání LCD

// Udělejte něco s nahromaděnými událostmi CNT….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // CPM v Obsahové síti

CNT = 0;

dispPeriod = millis ();

}

}

zrušit GetEvent () {// Získat událost ze zařízení

CNT ++;

}

void cleanDisplay () {// Vymazání rutiny LCD

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Krok 12: Soubory

Stáhněte si a nainstalujte tyto soubory do svého Arduina.

Umístěte každý soubor.ino do složky se stejným názvem.

Doporučuje: