Arduino DIY брояч на Гейгер: 12 стъпки (със снимки)
Arduino DIY брояч на Гейгер: 12 стъпки (със снимки)
Anonim
Arduino DIY брояч на Гейгер
Arduino DIY брояч на Гейгер
Arduino DIY брояч на Гейгер
Arduino DIY брояч на Гейгер

Значи сте поръчали брояч „Направи си сам“Гейгер и искате да го свържете към вашия Arduino. Отивате на линия и се опитвате да дублирате как другите са свързали своя брояч на Geiger с Arduino, само за да открият, че нещо не е наред. Въпреки че вашият брояч на Geiger изглежда не работи, нищо не работи, както е описано в „Направи си сам“, което следвате, когато свързвате брояча на Geiger към вашия Arduino.

В тази инструкция ще опиша как да отстраня някои от тези проблеми.

Помня; сглобете и кодирайте Arduino стъпка по стъпка, ако отидете направо към завършен проект и има пропуснат проводник или ред код, може да ви отнеме завинаги, за да откриете проблема.

Стъпка 1: Инструменти и части

Инструменти и части
Инструменти и части

Прототипна кутия Използвах кутия за бонбони Ferrero Rocher.

Малка дъска

16x2 LCD

Arduino борд етер UNO или Nano

Резистор 220 Ω

Регулируем резистор 10 kΩ.

Комплект за брояч „Гейгер“

Джъмперни проводници

Съединител на батерията или сбруя

Осцилоскоп

Клещи за фини носове

Малка стандартна отвертка

Стъпка 2: Сглобете своя брояч на Гейгер

Сглобете своя брояч на Гейгер
Сглобете своя брояч на Гейгер

Всяка повреда на вашата тръба на Geiger; и вашият брояч на Geiger няма да работи, затова използвайте защитното акрилно покритие, за да предотвратите повреда на тръбата на Geiger.

Тази инструкция е за това как ремонтирах същия брояч на Geiger със счупена тръба на Geiger и монтирах защитното акрилно покритие, за да предотвратя счупване в бъдеще.

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

Стъпка 3: Електрическо тестване на брояча на Гайгер

Електрическо тестване на брояча на Гайгер
Електрическо тестване на брояча на Гайгер
Електрическо тестване на брояча на Гайгер
Електрическо тестване на брояча на Гайгер
Електрическо тестване на брояча на Гайгер
Електрическо тестване на брояча на Гайгер

Първо използвайте правилното напрежение за захранването; USB кабелът захранва 5 волта постоянен ток направо от компютъра ви, но държачът на батерията 3 AA е за алкални батерии от 1,5 волта, което прави общо напрежение 4,5 волта. Ако използвате акумулаторни NI-Cd или NI-MH батерии от 1,2 волта, ще ви е необходим държач за батерии от 4 АА за общо напрежение 4,8 волта. Ако използвате по -малко от 4,5 волта, броячът на Гейгер може да не действа както трябва.

На изхода на броячите на Гайгер има много малко схеми; така че докато високоговорителят издава тиктакащ звук и светодиодът мига, трябва да получите сигнал на VIN щифта.

За да сте сигурни в изходния сигнал; свържете осцилоскоп към изхода, като свържете положителната страна на сондата на осцилоскопа към VIN и отрицателната страна на сондата на осцилоскопа към земята.

Вместо просто да чакам фоновата радиация да задейства брояча на Гайгер, използвах америций-241 от йонна камера на детектори за дим, за да увелича реакцията на броячите на Гайгер. Изходът на брояча на Гайгер започва от +3 волта и пада до 0 волта всеки път, когато тръбата на Гайгер реагира на алфа частиците и се връща към +3 волта момент по -късно. Това е сигналът, който ще записвате с Arduino.

Стъпка 4: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

Има два начина, по които можете да свържете брояча на Geiger към Arduino и вашия компютър.

Свържете GND на Arduino към GND на брояча на Geiger.

Свържете 5V на Arduino към 5V на брояча на Гайгер.

Свържете VIN на брояча на Geiger към D2 на Arduino.

С независимо захранване, свързано към брояча на Гайгер.

Свържете GND на Arduino към GND на брояча на Geiger.

Свържете VIN на брояча на Geiger към D2 на Arduino.

Свържете Arduino към вашия компютър.

Стъпка 5: Код

Код
Код
Код
Код
Код
Код

Отворете Arduino IDE и заредете кода.

// Тази скица отчита броя на импулсите в минута.

// Свържете GND на Arduino към GND на брояча на Гайгер.

// Свържете 5V на Arduino към 5V на брояча на Гайгер.

// Свържете VIN на брояча на Geiger към D2 на Arduino.

неподписани дълги преброявания; // променлива за GM Tube събития

неподписан дълъг предишен Милис; // променлива за измерване на времето

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

брои ++;

}

#define LOG_PERIOD 60000 // процент на броене

void setup () {// настройка

брои = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), импулс, FALLING); // дефинираме външни прекъсвания

Serial.println ("Старт брояч");

}

void loop () {// основен цикъл

беззнаков дълъг токMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

Serial.println (брои);

брои = 0;

}

}

В Инструменти изберете Arduino или друга дъска, която използвате.

В Инструменти изберете Порт и Com

Качете кода.

След като кодът бъде качен в Инструменти, изберете Сериен монитор и гледайте как работи вашият брояч на Гайгер.

Потърсете проблеми. Единственото нещо за този код е, че е малко досадно, трябва да изчакате 1 минута за всеки брой.

Стъпка 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

Това е един от първите проблеми, които открих в кода; така че внимавайте за това във вашия код „Serial.println (cpm);“и „Serial.print (cpm);“.

Serial.println (cpm); ще отпечата всеки брой на свой ред.

Serial.print (cpm); ще изглежда като едно голямо число, отпечатващо всеки брой на един и същи ред, което прави невъзможно да се каже какъв е броят.

Стъпка 7: J305 Измерване на фоновото излъчване

J305 Измерване на фоновото излъчване
J305 Измерване на фоновото излъчване
J305 Измерване на фоновото излъчване
J305 Измерване на фоновото излъчване

Първо е измерването на фоновата радиация, естествената радиация, която вече съществува естествено. Изброеното число е CPM (брой в минута), което е общо измерени радиоактивни частици всяка минута.

Средният фонов брой на J305 е 15,6 CPM.

Стъпка 8: J305 Измерване на излъчването на сензора за дим

J305 Измерване на излъчването на сензора за дим
J305 Измерване на излъчването на сензора за дим
J305 Измерване на излъчването на сензора за дим
J305 Измерване на излъчването на сензора за дим

Не е необичайно броячът на Гайгер да ви дава един и същ брой многократно, така че проверете го с източник на радиация. Използвах измерване на радиация от Америций, йонна камера от детектор за дим. Сензорът за дим използва Americium като източник на алфа частици, които йонизират частици дим във въздуха. Премахнах металната капачка на сензора, така че алфа и бета частиците да могат да стигнат до тръбата на Гайгер заедно с гама частиците.

Ако всичко е наред, броят трябва да се промени.

Америций-241 от йонна камера на детектори за дим средният брой е 519 CPM.

Стъпка 9: SBM-20

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

Тази скица на Arduino е модифицирана версия, написана от Алекс Богуславски.

Тази скица отчита броя на импулсите за 15 секунди и го преобразува в броене в минута, което го прави по -малко досаден.

Код I добавих „Serial.println („ Старт брояч “);“.

Код, който промених; „Serial.print (cpm);“към „Serial.println (cpm);“.

„#Дефинирайте LOG_PERIOD 15000“; задава времето за броене на 15 секунди, промених го на „#define LOG_PERIOD 5000“или 5 секунди. Не открих значителна разлика в средното между броенето за 1 минута или 15 секунди и 5 секунди.

#включва

#define LOG_PERIOD 15000 // Период на регистриране в милисекунди, препоръчителна стойност 15000-60000.

#define MAX_PERIOD 60000 // Максимален период на регистриране без промяна на тази скица

неподписани дълги преброявания; // променлива за GM Tube събития

без подпис дълги cpm; // променлива за CPM

беззнаков int множител; // променлива за изчисляване на CPM в тази скица

неподписан дълъг предишен Милис; // променлива за измерване на времето

void tube_impulse () {// подпроцедура за улавяне на събития от Geiger Kit

брои ++;

}

void setup () {// подпроцедура за настройка

брои = 0;

cpm = 0;

множител = MAX_PERIOD / LOG_PERIOD; // изчисляване на множител, зависи от вашия регистър период

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // дефинираме външни прекъсвания

Serial.println ("Старт брояч"); // код, който добавих

}

void loop () {// основен цикъл

беззнаков дълъг токMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

cpm = брои * множител;

Serial.println (cpm); // код, който промених

брои = 0;

}

}

Средният среден брой на SBM-20 е 23,4 CPM.

Стъпка 10: Окабеляване на брояча на Гайгер с LCD

Окабеляване на брояча на Гайгер с LCD
Окабеляване на брояча на Гайгер с LCD

LCD връзка:

LCD K пин към GND

LCD ПИН към 220 Ω резистор към Vcc

LCD D7 извод към цифров извод 3

LCD D6 щифт към цифров извод 5

LCD D5 извод към цифров извод 6

LCD D4 извод към цифров извод 7

LCD Активиране на щифт към цифров щифт 8

LCD R/W щифт към земята

LCD RS щифт към цифров извод 9

LCD VO щифт за регулиране на 10 kΩ пот

LCD Vcc щифт към Vcc

LCD Vdd щифт към GND

Регулируем резистор 10 kΩ.

Vcc, Vo, Vdd

Брояч на Гейгер

VIN към цифров пин 2

5 V до +5V

GND към земята

Стъпка 11: Брояч на Гайгер с LCD

Брояч на Гайгер с LCD
Брояч на Гайгер с LCD
Брояч на Гайгер с LCD
Брояч на Гайгер с LCD
Брояч на Гайгер с LCD
Брояч на Гайгер с LCD

// включва кода на библиотеката:

#включва

#включва

#define LOG_PERIOD 15000 // Период на регистриране в милисекунди, препоръчителна стойност 15000-60000.

#define MAX_PERIOD 60000 // Максимален период на регистриране без промяна на тази скица

#define PERIOD 60000.0 // (60 сек) едноминутен период на измерване

летливи неподписани дълги CNT; // променлива за преброяване на прекъсвания от дозиметъра

неподписани дълги преброявания; // променлива за GM Tube събития

без подпис дълги cpm; // променлива за CPM

беззнаков int множител; // променлива за изчисляване на CPM в тази скица

неподписан дълъг предишен Милис; // променлива за измерване на времето

unsigned long dispPeriod; // променлива за измерване на времето

неподписана дълга CPM; // променлива за измерване на CPM

// инициализираме библиотеката с номерата на щифтовете на интерфейса

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

void 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 ("Брояч на Гейгер");

забавяне (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // Събитие на щифт 2

}

void loop () {

lcd.setCursor (0, 0); // отпечатване на текст и CNT на LCD

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Ако една минута е изтекла

cleanDisplay (); // Изчистване на LCD

// Направете нещо относно натрупаните CNT събития….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Показване на CPM

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Вземете събитие от устройството

CNT ++;

}

void cleanDisplay () {// Изчистване на LCD процедурата

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Стъпка 12: Файлове

Изтеглете и инсталирайте тези файлове на вашия Arduino.

Поставете всеки.ino файл в папка със същото име.

Препоръчано: