Мазмұны:

Arduino DIY Geiger есептегіші: 12 қадам (суреттермен)
Arduino DIY Geiger есептегіші: 12 қадам (суреттермен)

Бейне: Arduino DIY Geiger есептегіші: 12 қадам (суреттермен)

Бейне: Arduino DIY Geiger есептегіші: 12 қадам (суреттермен)
Бейне: DIY arduino Geiger counter 2024, Қараша
Anonim
Arduino DIY Geiger есептегіші
Arduino DIY Geiger есептегіші
Arduino DIY Geiger есептегіші
Arduino DIY Geiger есептегіші

Сонымен, сіз DIY Geiger есептегішіне тапсырыс бердіңіз және оны Arduino -ға қосқыңыз келеді. Сіз желіде жүріп, басқалардың Geiger есептегішін Arduino -ға қалай дұрыс қосылмағаны үшін қосқанын қайталауға тырысасыз. Сіздің Geiger есептегішіңіз ештеңе жұмыс істемейтін сияқты болса да, сіз Geiger есептегішін Arduino -ға қосқан кезде өзіңіз жасайтын DIY -де сипатталғандай ештеңе жұмыс істемейді.

Бұл нұсқаулықта мен кейбір ақауларды жою жолдарын қарастырамын.

Есте сақтау; Arduino -ны бірте -бірте жинаңыз және кодтаңыз, егер сіз аяқталған жобаға тікелей барсаңыз және жіберілген сым немесе код сызығы болса, бұл мәселені табу үшін сізге мәңгі қажет болуы мүмкін.

1 -қадам: құралдар мен бөлшектер

Құралдар мен бөлшектер
Құралдар мен бөлшектер

Прототип қорабы Мен Ferrero Rocher кәмпит қорабын қолдандым.

Кішкене нан тақтасы

16x2 СКД

Arduino тақтасы UNO немесе Nano

220 Ω резистор

Ыдыс 10 кОм реттелетін резистор.

DIY Geiger есептегіш жинағы

Jumper Wires

Батарея коннекторы немесе белдік

Осциллограф

Жұқа мұрын қысқыштары

Шағын стандартты бұрағыш

2 -қадам: Geiger есептегішін жинаңыз

Geiger есептегішін жинаңыз
Geiger есептегішін жинаңыз

Geiger Tube -ге кез келген зақым; және сіздің Geiger есептегішіңіз жұмыс істемейді, сондықтан Geiger түтігінің зақымдалуын болдырмау үшін қорғаныш акрил қақпағын қолданыңыз.

Бұл нұсқаулықта сол Geiger есептегішін сынған Geiger түтігімен қалай жөндеп, болашақта сынбау үшін қорғаныш акрил қақпағын қалай орнатқаным туралы айтылады.

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

3 -қадам: Geiger есептегішін электрлік тексеру

Geiger есептегішін электрлік тексеру
Geiger есептегішін электрлік тексеру
Geiger есептегішін электрлік тексеру
Geiger есептегішін электрлік тексеру
Geiger есептегішін электрлік тексеру
Geiger есептегішін электрлік тексеру

Алдымен қуат көзіне кернеуді қолданыңыз; USB сымы сіздің компьютерден 5 вольтты тұрақты ток береді, дегенмен 3 АА батарея ұстағышының жалпы кернеуі 4,5 вольтты құрайтын 1,5 вольтты сілтілі батареяларға арналған. Егер сіз 1,2 вольтты қайта зарядталатын NI-Cd немесе NI-MH батареяларын қолдансаңыз, жалпы кернеуі 4,8 вольт болатын 4 АА батарея ұстағыш қажет болады. Егер сіз 4,5 вольттан аз қолдансаңыз, Geiger есептегіші дұрыс жұмыс істемеуі мүмкін.

Geiger есептегіштерінің шығысында схемалар өте аз; егер динамик дыбыс шығарса және жарық диоды жыпылықтаса, сіз VIN түйреуішіне сигнал алуыңыз керек.

Шығыс сигналына сенімді болу үшін; осциллограф зондының оң жағын VIN -ге және осциллограф зондының теріс жағын жерге қосу арқылы осциллографты шығысқа қосыңыз.

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

4 -қадам: Сымдарды жалғау

Сымдар
Сымдар
Сымдар
Сымдар
Сымдар
Сымдар
Сымдар
Сымдар

Geiger есептегішін Arduino мен компьютерге қосудың екі әдісі бар.

Arduino -дағы GND -ті Geiger есептегішіндегі GND -ге қосыңыз.

Arduino -дағы 5В -ты Geiger есептегішіндегі 5В -ке қосыңыз.

Geiger есептегішіндегі VIN кодын Arduino D2 -ге қосыңыз.

Geiger есептегішіне қосылған тәуелсіз қуатпен.

Arduino -дағы GND -ті Geiger есептегішіндегі GND -ге қосыңыз.

Geiger есептегішіндегі VIN кодын Arduino D2 -ге қосыңыз.

Arduino -ны компьютерге қосыңыз.

5 -қадам: код

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

Arduino IDE ашыңыз және кодты жүктеңіз.

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

// Arduino -дағы GND -ті Geiger есептегішіндегі GND -ге қосыңыз.

// Arduino -дағы 5В -ты Geiger есептегішіндегі 5В -ке қосыңыз.

// Geiger есептегішіндегі VIN кодын Arduino D2 -ге қосыңыз.

қол қойылмаған ұзақ санаулар; // GM Tube оқиғалары үшін айнымалы

ұзақ уақыт бұрын қол қойылмаған Миллис; // уақытты өлшеуге арналған айнымалы

жарамсыз импульс () {// dipanggil setiap ada sinyal FALLING di pin 2

санау ++;

}

#LOG_PERIOD 60000 // санау жылдамдығын анықтаңыз

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

санау = 0;

Serial.begin (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), импульс, FALLING); // сыртқы үзілістерді анықтау

Serial.println («Есептегішті іске қосу»);

}

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

белгісіз ұзақ токMillis = millis ();

егер (currentMillis - алдыңғыMillis> LOG_PERIOD) {

алдыңғыMillis = currentMillis;

Serial.println (есептеледі);

санау = 0;

}

}

Құралдарда Arduino немесе басқа тақтаны таңдаңыз.

Құралдарда Порт пен Коментті таңдаңыз

Кодты жүктеңіз.

Код Құралдарға жүктелгеннен кейін Serial Monitor таңдаңыз және 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 Түтін сенсорының радиациясын өлшеу

Гейгер есептегішінің сізге бірдей санды бірнеше рет беруі сирек емес, сондықтан оны сәулелену көзімен тексеріңіз. Мен түтін детекторынан Америций иондық камерасының сәулеленуін қолдандым. Түтін сенсоры Америцийді ауадағы түтін бөлшектерін иондандыратын альфа бөлшектерінің көзі ретінде пайдаланады. Мен сенсордағы металл қақпақты алып тастадым, осылайша альфа мен бета бөлшектері гамма бөлшектерімен бірге Гейгер түтігіне жетуі мүмкін.

Егер бәрі жақсы болса, есептеулер өзгеруі керек.

Түтін детекторларының иондық камерасынан Америций-241 орташа есеппен 519 CPM құрады.

9-қадам: SBM-20

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

Бұл Arduino эскизі Алекс Богуславский жазған өзгертілген нұсқа.

Бұл эскиз 15 секундта импульстар санын есептейді және оны минутына санауға түрлендіреді, бұл оны жалықтырмайды.

Мен қосқан код «Serial.println (« Санауды бастау »);».

Мен өзгерткен код; «Serial.print (cpm);» «Serial.println (cpm);».

“#LOG_PERIOD 15000 анықтаңыз”; санау уақытын 15 секундқа қояды, мен оны «#define LOG_PERIOD 5000» немесе 5 секундқа өзгерттім. Мен 1 минут немесе 15 секунд пен 5 секунд санаудың орташа мәнінде айтарлықтай айырмашылық таппадым.

#қосу

#degine LOG_PERIOD 15000 // Милисекундта тіркеу кезеңі, ұсынылған мән 15000-60000.

#dexine 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 ();

егер (currentMillis - алдыңғыMillis> LOG_PERIOD) {

алдыңғыMillis = currentMillis;

cpm = санайды * көбейткіш;

Serial.println (cpm); // мен өзгерткен код

санау = 0;

}

}

SBM-20 фоны бойынша орташа есеп 23,4 CPM болды.

10 -қадам: Geiger есептегішін СКД -мен қосу

СКД көмегімен Geiger есептегішін қосу
СКД көмегімен Geiger есептегішін қосу

СКД қосылымы:

LCD K түйреуіші GND дейін

СК Вк үшін 220 дюймдік резисторға арналған түйреуіш

LCD D7 түйрегіші цифрлық түйреуішке 3

LCD D6 түйрегішін цифрлық пинге 5

LCD D5 түйрегіші цифрлық пинге 6

LCD D4 түйреуіші цифрлық істікке 7

СКД 8 -істікшені цифрлық түйреуішке қосу

LCD R/W штыры жерге қосылады

LCD RS цифрлық цифрлық пинге 9

10 кОм сыйымдылықты реттеуге арналған LCD VO түйреуіші

LCD VC түйреуіші Vcc -ге

LCD Vdd түйрегіші GND -ге

Ыдыс 10 кОм реттелетін резистор.

Vcc, Vo, Vdd

Гейгер есептегіші

VIN - цифрлық PIN 2

5 В -тан +5 В -қа дейін

GND жерге

11 -қадам: СКД бар Geiger есептегіші

СКД бар Geiger есептегіші
СКД бар Geiger есептегіші
СКД бар Geiger есептегіші
СКД бар Geiger есептегіші
СКД бар Geiger есептегіші
СКД бар Geiger есептегіші

// кітапхана кодын қамтиды:

#қосу

#қосу

#define LOG_PERIOD 15000 // Милисекундта тіркеу кезеңі, ұсынылған мән 15000-60000.

#dexine MAX_PERIOD 60000 // Бұл эскизді өзгертпестен тіркеудің максималды кезеңі

60000.0 // (60 сек) бір минуттық өлшеу кезеңін анықтау

тұрақсыз ұзын CNT; // дозиметрден үзулерді санауға арналған айнымалы

қол қойылмаған ұзақ есептер; // GM Tube оқиғалары үшін айнымалы

қол қойылмаған ұзақтығы / мин; // CPM үшін айнымалы

белгісіз int мультипликаторы; // осы эскизде CPM есептеу үшін айнымалы

ұзақ уақыт бұрын қол қойылмаған Миллис; // уақытты өлшеуге арналған айнымалы

қол қойылмаған ұзақ дисперсия кезеңі; // уақытты өлшеуге арналған айнымалы

қол қойылмаған ұзақ 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 = миллис ();

}

}

void GetEvent () {// Оқиғаны құрылғыдан алу

CNT ++;

}

void cleanDisplay () {// СКД режимін тазарту

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

12 -қадам: файлдар

Бұл файлдарды Arduino -ға жүктеп, орнатыңыз.

Әрбір.ino файлын сол атпен қалтаға салыңыз.

Ұсынылған: