Мазмуну:

Arduino DIY Geiger Counter: 12 кадам (Сүрөттөр менен)
Arduino DIY Geiger Counter: 12 кадам (Сүрөттөр менен)

Video: Arduino DIY Geiger Counter: 12 кадам (Сүрөттөр менен)

Video: Arduino DIY Geiger Counter: 12 кадам (Сүрөттөр менен)
Video: DIY Arduino Geiger Counter (Video 1) 2024, Ноябрь
Anonim
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter
Arduino DIY Geiger Counter

Ошентип, сиз DIY Geiger эсептегичине буйрук бердиңиз жана аны Arduino менен туташтыргыңыз келет. Сиз онлайнга барып, башкалар туура эмес экенин табуу үчүн Geiger эсептегичин Arduino менен кантип байланыштырганын кайталоого аракет кыласыз. Сиздин Geiger эсептегич эч нерсе иштебейт окшойт, бирок сиз Geiger эсептегичти Arduino менен туташтырып жатканыңызда, DIYде сүрөттөлгөндөй эч нерсе иштебейт.

Бул Нускамада мен бул мүчүлүштүктөрдүн айрымдарын кантип чечүү керектигин айтып берем.

Эске алуу; Arduino -ны бир кадамдан кийин чогултуп, коддоңуз, эгер сиз түз эле бүткөн долбоорго барсаңыз жана өткөрүлүп берилбеген зым же код сызыгы бар болсо, бул көйгөйдү табууга түбөлүккө созулушу мүмкүн.

1 -кадам: Куралдар жана тетиктер

Куралдар жана тетиктер
Куралдар жана тетиктер

Прототип кутусу Мен Ferrero Rocher конфет кутусун колдондум.

Кичинекей нан

16x2 LCD

Arduino board ether UNO же Nano

220 Ω каршылык

Pot 10 кОм жөнгө салынуучу резистор.

DIY Geiger Counter Kit

Jumper Wires

Батарея туташтыргычы же байлоо

Осциллограф

Жакшы мурун кыстыгы

Чакан стандарт бурагыч

2 -кадам: Гейгер эсептегичти чогултуңуз

Гейгер эсептегичти чогултуп алыңыз
Гейгер эсептегичти чогултуп алыңыз

Сиздин Geiger Tube кандайдыр бир зыян; жана сиздин Geiger эсептегичиңиз иштебейт, андыктан Geiger түтүгүңүзгө зыян келтирбөө үчүн коргоочу акрил капкагын колдонуңуз.

Бул Нускамада мен ошол эле Гейгер эсептегичин сынган Гейгер түтүгү менен кантип оңдогонум жана келечекте сынбашы үчүн коргоочу акрил капкагын кантип орнотконум жөнүндө.

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

3 -кадам: Гейгер эсептегичти электрдик түрдө текшерүү

Гейгер эсептегичти электрдик жактан текшерүү
Гейгер эсептегичти электрдик жактан текшерүү
Гейгер эсептегичти электрдик жактан текшерүү
Гейгер эсептегичти электрдик жактан текшерүү
Гейгер эсептегичти электрдик түрдө текшерүү
Гейгер эсептегичти электрдик түрдө текшерүү

Биринчиден, электр менен камсыздоо үчүн туура чыңалууну колдонуңуз; USB шнуру сиздин компьютериңизден 5 вольтту түзөт, бирок 3 АА батареянын кармагычы 1,5 вольттуу щелочтуу батареялар үчүн, жалпы чыңалуусу 4,5 вольт. Эгерде сиз 1,2 вольттук кайра заряддалуучу NI-Cd же NI-MH батареяларын колдонсоңуз, анда 4,8 вольттун жалпы чыңалуусу үчүн 4 АА батарейка кармагычы керек болот. Эгерде сиз 4,5 вольттон азыраак колдонсоңуз, Гейгер эсептегич керек болгондой иштебеши мүмкүн.

Geiger эсептегичтеринин өндүрүшүндө өтө аз схемалар бар; динамик чыкылдаган үн чыгарып, жана LED жаркылдап турса, VIN пинге сигнал алуу керек.

Чыгыш сигналына ишенүү үчүн; осциллографтын оң жагын VINге жана осциллографтын терс тарабын жерге туташтыруу менен осциллографты чыгууга туташтыруу.

Гейгердин эсептегичин иштетүү үчүн фондук радиацияны күтүүнүн ордуна, мен түтүн детекторлорунун ион камерасынан americium-241ди Гейгердин эсептегич реакциясын күчөтүү үчүн колдондум. Гейгер эсептегичтин чыгышы +3 вольттон башталып, Geiger түтүгү альфа -бөлүкчөлөргө реакция кылган сайын 0 вольтко чейин түшүп, бир аздан кийин +3 вольтко кайтат. Бул сиз Arduino менен жаздыра турган сигнал.

4 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

Geiger эсептегичин сизге Arduino менен компьютериңизге туташтыруунун эки жолу бар.

Arduinoдогу GNDди Geiger эсептегичиндеги GND менен туташтырыңыз.

Arduinoдогу 5Vны Geiger эсептегичиндеги 5Vга туташтырыңыз.

Geiger эсептегичиндеги VINди Arduinoдогу D2ге туташтырыңыз.

Geiger эсептегичке туташкан көз карандысыз күч менен.

Arduinoдогу GNDди Geiger эсептегичиндеги GND менен туташтырыңыз.

Geiger эсептегичиндеги VINди Arduinoдогу D2ге туташтырыңыз.

Ардуинону компьютериңизге туташтырыңыз.

5 -кадам: Код

Code
Code
Code
Code
Code
Code

Arduino IDE ачыңыз жана кодду жүктөңүз.

// Бул эскиз минутасына импульс санын эсептейт.

// Arduinoдогу GNDди Geiger эсептегичиндеги GND менен туташтырыңыз.

// Arduinoдогу 5Vны Geiger эсептегичиндеги 5Vга туташтырыңыз.

// Geiger эсептегичиндеги VINди Arduinoдогу D2ге туташтырыңыз.

кол коюлбаган узун саноолор; // GM Tube окуялары үчүн өзгөрмө

unsigned long previousMillis; // убакытты өлчөө үчүн өзгөрмө

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

count ++;

}

#DOGIN LOG_PERIOD 60000 // эсептөө ылдамдыгы

void setup () {// орнотуу

count = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), импульс, FALLING); // тышкы үзгүлтүктөрдү аныктоо

Serial.println ("Счетчикти баштоо");

}

void loop () {// негизги цикл

белгисиз узак currentMillis = millis ();

эгер (currentMillis - мурункуMillis> LOG_PERIOD) {

previousMillis = currentMillis;

Serial.println (эсептейт);

count = 0;

}

}

Куралдарда сиз колдонуп жаткан Arduino же башка тактаны тандаңыз.

Куралдарда Порт жана Ком тандаңыз

Кодду жүктөңүз.

Код Куралдарга жүктөлгөндөн кийин Сериялык Мониторду тандап, Geiger эсептегичиңиздин иштешин көрүңүз.

Мүчүлүштүктөрдү издеңиз. Бул коддун бир гана жагы бир аз түйшүктүү, ар бир эсеп үчүн 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 мүнөттө импульстун санын эсептеп, мүнөттүн санына айландырат жана анча түйшүктүү кылбайт.

Мен кошкон код "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.

#dexine MAX_PERIOD 60000 // Бул эскизди өзгөртпөстөн максималдуу каттоо мөөнөтү

кол коюлбаган узун саноолор; // GM Tube окуялары үчүн өзгөрмө

кол коюлбаган узун cpm; // CPM үчүн өзгөрмө

unsigned int мультипликатору; // бул эскизде CPMди эсептөө үчүн өзгөрмө

unsigned long previousMillis; // убакытты өлчөө үчүн өзгөрмө

void tube_impulse () {// Geiger Kitтен окуяларды тартуу үчүн субпроцесс

count ++;

}

void setup () {// setup subprocessure

count = 0;

cpm = 0;

мультипликатор = MAX_PERIOD / LOG_PERIOD; // эсептөөчү мультипликатор, сиздин журнал мезгилине көз каранды

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // тышкы үзгүлтүктөрдү аныктоо

Serial.println ("Счетчикти баштоо"); // мен кошкон код

}

void loop () {// негизги цикл

белгисиз узак currentMillis = millis ();

эгер (currentMillis - мурункуMillis> LOG_PERIOD) {

previousMillis = currentMillis;

cpm = санайт * мультипликатор;

Serial.println (cpm); // кодду алмаштырдым

count = 0;

}

}

SBM-20дын орточо көрсөткүчү 23,4 CPM болгон.

10 -кадам: Гейгер эсептегичин ЖК менен зымдоо

ЖК менен Geiger эсептегичин зымдоо
ЖК менен Geiger эсептегичин зымдоо

LCD туташуусу:

LCD K пин GNDге

LCD Vcc үчүн 220 дюймдук резина үчүн пин

Санарип пинге LCD D7 пин 3

Санариптик пинге D6 пин 5

LCD D5 пин санарип пинге 6

Санариптик пинге D4 пин 7

Санариптик пин 8ге пин орнотуу

ЖК R/W төөнөгүч жерге

Санарип пинге LCD RS пин 9

10 кОк идишти тууралоо үчүн LCD VO пин

LCD Vcc пин VC үчүн

LCD Vdd пин GNDге

Pot 10 кОм жөнгө салынуучу резистор.

Vcc, Vo, Vdd

Гейгер эсептегичи

Санариптик PIN 2ге VIN

5 В +5 В чейин

GND жерге

11 -кадам: ЖК менен Geiger Counter

ЖК менен Geiger эсептегич
ЖК менен Geiger эсептегич
ЖК менен Geiger эсептегич
ЖК менен Geiger эсептегич
ЖК менен Geiger эсептегич
ЖК менен Geiger эсептегич

// китепкана кодун камтыйт:

#кошуу

#кошуу

#define LOG_PERIOD 15000 // Милисекундтарда каттоо мөөнөтү, сунушталган маани 15000-60000.

#dexine MAX_PERIOD 60000 // Бул эскизди өзгөртпөстөн максималдуу каттоо мөөнөтү

#Define PERIOD 60000.0 // (60 сек) бир мүнөттүк өлчөө мезгили

туруксуз кол коюлбаган узун CNT; // дозиметрден үзгүлтүктөрдү эсептөө үчүн өзгөрмө

кол коюлбаган узун саноолор; // GM Tube окуялары үчүн өзгөрмө

кол коюлбаган узун cpm; // CPM үчүн өзгөрмө

unsigned int мультипликатору; // бул эскизде CPMди эсептөө үчүн өзгөрмө

unsigned long previousMillis; // убакытты өлчөө үчүн өзгөрмө

кол коюлбаган узак мөөнөт; // убакытты өлчөө үчүн өзгөрмө

кол коюлбаган узак 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 ("Geiger Counter");

кечигүү (2000);

cleanDisplay ();

attachInterrupt (0, GetEvent, FALLING); // 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); // CPMди көрсөтүү

CNT = 0;

dispPeriod = millis ();

}

}

void GetEvent () {// Окуяны түзмөктөн алуу

CNT ++;

}

void cleanDisplay () {// Таза LCD режимин тазалоо

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

12 -кадам: Файлдар

Бул файлдарды Arduinoго жүктөп алып орнотуңуз.

Ар бир.ino файлын ушундай аталыштагы папкага салыңыз.

Сунушталууда: