Оглавление:

Счетчик Гейгера своими руками Arduino: 12 шагов (с изображениями)
Счетчик Гейгера своими руками Arduino: 12 шагов (с изображениями)

Видео: Счетчик Гейгера своими руками Arduino: 12 шагов (с изображениями)

Видео: Счетчик Гейгера своими руками Arduino: 12 шагов (с изображениями)
Видео: Модуль счётчика Гейгера 400V 2024, Ноябрь
Anonim
Счетчик Гейгера своими руками Arduino
Счетчик Гейгера своими руками Arduino
Счетчик Гейгера своими руками Arduino
Счетчик Гейгера своими руками Arduino

Итак, вы заказали счетчик Гейгера своими руками и хотите подключить его к Arduino. Вы заходите в сеть и пытаетесь воспроизвести, как другие подключили свой счетчик Гейгера к Arduino, но обнаруживаете, что что-то не так. Хотя ваш счетчик Гейгера, кажется, работает, ничего не работает, как описано в DIY, которому вы следуете, когда подключаете счетчик Гейгера к Arduino.

В этом руководстве я расскажу, как устранить некоторые из этих сбоев.

Помнить; Собирайте и кодируйте Arduino поэтапно, если вы сразу перейдете к завершенному проекту и пропустили провод или строку кода, вам может потребоваться целая вечность, чтобы найти проблему.

Шаг 1. Инструменты и детали

Инструменты и запчасти
Инструменты и запчасти

Коробка-прототип Я использовал коробку конфет Ferrero Rocher.

Малая макетная плата

ЖК-дисплей 16x2

Плата Arduino ether a UNO или Nano

Резистор 220 Ом

Регулируемый резистор Pot 10 кОм.

Комплект счетчика Гейгера своими руками

Провода перемычки

Разъем аккумулятора или жгут

Осциллограф

Плоскогубцы с тонким носом

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

Шаг 2: соберите свой счетчик Гейгера

Соберите свой счетчик Гейгера
Соберите свой счетчик Гейгера

Любое повреждение вашей трубки Гейгера; и ваш счетчик Гейгера не будет работать, поэтому используйте защитный акриловый чехол, чтобы не повредить трубку Гейгера.

В этом руководстве рассказывается, как я отремонтировал тот же счетчик Гейгера со сломанной трубкой Гейгера и установил защитную акриловую крышку, чтобы предотвратить поломку в будущем.

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

Шаг 3: электрическая проверка счетчика Гейгера

Электрическая проверка счетчика Гейгера
Электрическая проверка счетчика Гейгера
Электрическая проверка счетчика Гейгера
Электрическая проверка счетчика Гейгера
Электрическая проверка счетчика Гейгера
Электрическая проверка счетчика Гейгера

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

На выходе счетчиков Гейгера очень мало схем; так что пока динамик издает тикающий звук и мигает светодиод, вы должны получить сигнал на контакте VIN.

Чтобы быть уверенным в выходном сигнале; Подключите осциллограф к выходу, подключив положительный полюс щупа осциллографа к VIN, а отрицательный полюс щупа осциллографа к земле.

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

Шаг 4: Подключение

Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка

Есть два способа подключить счетчик Гейгера к Arduino и компьютеру.

Подключите GND на Arduino к GND на счетчике Гейгера.

Подключите 5 В на Arduino к 5 В на счетчике Гейгера.

Подключите VIN счетчика Гейгера к D2 на Arduino.

С независимым питанием, подключенным к счетчику Гейгера.

Подключите GND на Arduino к GND на счетчике Гейгера.

Подключите VIN счетчика Гейгера к D2 на Arduino.

Подключите Arduino к вашему компьютеру.

Шаг 5: Код

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

Откройте Arduino IDE и загрузите код.

// Этот скетч считает количество импульсов в минуту.

// Подключите GND на Arduino к GND на счетчике Гейгера.

// Подключите 5 В на Arduino к 5 В на счетчике Гейгера.

// Подключите VIN счетчика Гейгера к D2 на Arduino.

беззнаковые длинные счетчики; // переменная для событий GM Tube

unsigned long previousMillis; // переменная для измерения времени

void impulse () {// dipanggil setiap ada sinyal ПАДЕНИЕ di pin 2

считает ++;

}

#define LOG_PERIOD 60000 // скорость счета

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

counts = 0;

Serial.begin (9600);

pinMode (2, ВХОД);

attachInterrupt (digitalPinToInterrupt (2), импульс, ПАДЕНИЕ); // определяем внешние прерывания

Serial.println («Пуск счетчика»);

}

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

беззнаковый длинный currentMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

Serial.println (считает);

counts = 0;

}

}

В Tools выберите Arduino или другую плату, которую вы используете.

В Tools выберите Port и Com

Загрузите код.

После загрузки кода в Инструменты выберите Serial Monitor и посмотрите, как работает счетчик Гейгера.

Ищите глюки. Единственное, что в этом коде - это немного утомительно, вы должны ждать 1 минуту для каждого счета.

Шаг 6: Serial.println против Serial.print

Serial.println против Serial.print
Serial.println против Serial.print
Serial.println против Serial.print
Serial.println против Serial.print

Это один из первых глюков, которые я обнаружил в коде; поэтому следите за этим в своем коде: «Serial.println (cpm);» и «Serial.print (cpm);».

Serial.println (копий в минуту); напечатает каждый счетчик в отдельной строке.

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

Шаг 7: Измерение фонового излучения J305

J305 Измерение фонового излучения
J305 Измерение фонового излучения
J305 Измерение фонового излучения
J305 Измерение фонового излучения

Во-первых, это измерение фонового излучения, естественного излучения, которое уже существует в природе. Указанное число - это CPM (количество в минуту), которое представляет собой общее количество радиоактивных частиц, измеренных каждую минуту.

Среднее фоновое количество J305 составило 15,6 CPM.

Шаг 8: J305 Измерение излучения датчика дыма

J305 Измерение излучения датчика дыма
J305 Измерение излучения датчика дыма
J305 Измерение излучения датчика дыма
J305 Измерение излучения датчика дыма

Счетчик Гейгера нередко дает вам один и тот же счет неоднократно, поэтому проверьте его с помощью источника излучения. Я использовал измерение радиации от америция и ионной камеры от детектора дыма. Датчик дыма использует америций в качестве источника альфа-частиц, которые ионизируют частицы дыма в воздухе. Я снял металлический колпачок с сенсора, чтобы альфа- и бета-частицы могли попасть в трубку Гейгера вместе с гамма-частицами.

Если все в порядке, счет должен измениться.

Америций-241 из ионной камеры дымового извещателя составил 519 CPM.

Шаг 9: СБМ-20

СБМ-20
СБМ-20
СБМ-20
СБМ-20

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

Этот набросок подсчитывает количество импульсов за 15 секунд и преобразует его в количество импульсов в минуту, что делает его менее утомительным.

Код, который я добавил «Serial.println (« Счетчик запуска »);».

Код я изменил; "Serial.print (cpm);" на «Serial.println (cpm);».

«#Define 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

беззнаковый множитель int; // переменная для расчета CPM в этом скетче

unsigned long previousMillis; // переменная для измерения времени

void tube_impulse () {// подпроцедура для захвата событий из набора Гейгера

считает ++;

}

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

counts = 0;

cpm = 0;

множитель = MAX_PERIOD / LOG_PERIOD; // вычисление множителя в зависимости от периода регистрации

Serial.begin (9600);

attachInterrupt (0, tube_impulse, ПАДЕНИЕ); // определяем внешние прерывания

Serial.println («Стартовый счетчик»); // код, который я добавил

}

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

беззнаковый длинный currentMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

previousMillis = currentMillis;

cpm = counts * multiplier;

Serial.println (копий в минуту); // код, который я изменил

counts = 0;

}

}

Среднее фоновое количество SBM-20 составило 23,4 CPM.

Шаг 10: Подключение счетчика Гейгера к ЖК-дисплею

Подключение счетчика Гейгера к ЖК-дисплею
Подключение счетчика Гейгера к ЖК-дисплею

Подключение ЖК-дисплея:

Вывод K ЖК-дисплея на GND

ЖК-вывод A к резистору 220 Ом к Vcc

Вывод ЖК-дисплея D7 на цифровой вывод 3

Вывод ЖК-дисплея D6 на цифровой вывод 5

Вывод ЖК-дисплея D5 на цифровой вывод 6

Вывод ЖК-дисплея D4 на цифровой вывод 7

Вывод ЖК-дисплея на цифровой вывод 8

LCD R / W контакт к земле

Вывод ЖК-дисплея RS на цифровой вывод 9

Вывод ЖК-дисплея VO для настройки потенциометра 10 кОм

Вывод Vcc ЖК-дисплея на Vcc

ЖК-вывод Vdd на GND

Регулируемый резистор Pot 10 кОм.

Vcc, Vo, Vdd

Счетчик Гейгера

VIN к цифровому контакту 2

От 5 В до + 5 В

GND на землю

Шаг 11: счетчик Гейгера с ЖК-дисплеем

Счетчик Гейгера с ЖК-дисплеем
Счетчик Гейгера с ЖК-дисплеем
Счетчик Гейгера с ЖК-дисплеем
Счетчик Гейгера с ЖК-дисплеем
Счетчик Гейгера с ЖК-дисплеем
Счетчик Гейгера с ЖК-дисплеем

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

#включают

#включают

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

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

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

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

беззнаковые длинные счетчики; // переменная для событий GM Tube

беззнаковое длинное копирование в минуту; // переменная для CPM

беззнаковый множитель int; // переменная для расчета CPM в этом скетче

unsigned long previousMillis; // переменная для измерения времени

беззнаковый длинный dispPeriod; // переменная для измерения времени

беззнаковый длинный CPM; // переменная для измерения цены за тысячу показов

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

ЖК-дисплей LiquidCrystal (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, ПАДЕНИЕ); // Событие на выводе 2

}

void loop () {

lcd.setCursor (0, 0); // выводим текст и CNT на ЖК-дисплей

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// Если минута закончилась

cleanDisplay (); // Очистить ЖК-дисплей

// Что-нибудь предпринять с накопленными событиями CNT….

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // Display CPM

CNT = 0;

dispPeriod = миллис ();

}

}

void GetEvent () {// Получить событие с устройства

CNT ++;

}

void cleanDisplay () {// Процедура очистки ЖК-дисплея

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

Шаг 12: файлы

Загрузите и установите эти файлы на свой Arduino.

Поместите каждый файл.ino в папку с тем же именем.

Рекомендуемые: