Агуулгын хүснэгт:

Arduino DIY Geiger Counter: 12 алхам (зурагтай)
Arduino DIY Geiger Counter: 12 алхам (зурагтай)

Видео: Arduino DIY Geiger Counter: 12 алхам (зурагтай)

Видео: Arduino DIY Geiger Counter: 12 алхам (зурагтай)
Видео: Hardware Forking: Git and the future of Electronic Design - Paul Downey 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 LCD дэлгэцтэй

Arduino хавтан эфир нь НҮБ эсвэл Нано

220 Ω эсэргүүцэл

10 кОм хэмжээтэй тохируулгатай резистор.

DIY Geiger тоолуур

Холбогч утас

Зайны холбогч эсвэл бэхэлгээ

Осциллограф

Нарийн хамар бахө

Жижиг стандарт халив

Алхам 2: Geiger Counter -ээ угсарна уу

Geiger Counter -ээ угсарна уу
Geiger Counter -ээ угсарна уу

Таны Geiger хоолойд гэмтэл учруулах; таны Geiger тоолуур ажиллахгүй тул хамгаалалтын нийлэг тагийг ашиглан Geiger хоолойгоо гэмтээхээс сэргийлээрэй.

Энэхүү заавар нь би Geiger -ийн тоолуурыг эвдэрсэн Geiger хоолойгоор хэрхэн яаж засаж, хамгаалалтын нийлэг тагийг хэрхэн яаж эвдэхээс урьдчилан сэргийлэх талаар бичсэн болно.

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

Алхам 3: Geiger тоолуурыг цахилгаан туршилт хийх

Geiger тоолуурыг цахилгаан туршилт хийх
Geiger тоолуурыг цахилгаан туршилт хийх
Geiger тоолуурыг цахилгаан туршилт хийх
Geiger тоолуурыг цахилгаан туршилт хийх
Geiger тоолуурыг цахилгаан туршилт хийх
Geiger тоолуурыг цахилгаан туршилт хийх

Эхлээд цахилгаан тэжээлд тохирох хүчдэлийг ашиглах; USB кабель нь таны компьютерээс 5 вольтын тогтмол гүйдэл өгдөг боловч 3 АА батерейны эзэмшигч нь 1.5 вольтын шүлтлэг батерейнд зориулагдсан бөгөөд нийт хүчдэл нь 4.5 вольт юм. Хэрэв та 1.2 вольтын цэнэглэдэг NI-Cd эсвэл NI-MH батерей ашигладаг бол танд нийт 4.8 вольтын хүчдэл бүхий 4 АА зайны эзэмшигч хэрэгтэй болно. Хэрэв та 4.5 вольтоос бага хүч хэрэглэвэл Гейгерийн тоолуур ажиллахгүй байж магадгүй юм.

Гейгер тоолуурын гаралт дээр маш бага хэлхээ байдаг; Хэрэв чанга яригч дуугарч, LED анивчих юм бол та VIN зүү дээр дохио авах ёстой.

Гаралтын дохио гэдэгт итгэлтэй байх; осциллограф датчикийн эерэг талыг VIN -тэй холбож осциллографын датчикийн сөрөг талыг газарт холбож осциллографыг гаралттай холбоно.

Гейгерийн тоолуурыг асаахын тулд арын цацрагийг хүлээж суухын оронд би утааны мэдрэгчийн ион камераас americium-241-ийг ашиглан Гейгерийн тоолуурын урвалыг нэмэгдүүлэв. Гейгер тоолуурын гаралт +3 вольтоос эхэлж, Гейгер хоолой нь альфа тоосонцорт хариу үйлдэл үзүүлж, хэсэг хугацааны дараа +3 вольт руу буцах болгонд 0 вольт хүртэл буурсан байна. Энэ бол таны 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 -тэй холбоно уу.

Arduino -г компьютерт холбоно уу.

Алхам 5: Код

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

Arduino IDE -ийг нээгээд кодыг ачаална уу.

// Энэхүү ноорог нь нэг минутын импульсийн тоог тоолно.

// Arduino дээрх GND -ийг Geiger тоолуур дээрх GND -тэй холбоно уу.

// Arduino дээрх 5V -ийг Geiger тоолуур дээрх 5V -тэй холбоно уу.

// Geiger тоолуур дээрх VIN -ийг Arduino дээрх D2 руу холбоно уу.

гарын үсэг зураагүй урт тоолол; // GM Tube үйл явдлын хувьсагч

гарын үсэг зураагүй урт өмнөх Миллис; // цаг хэмжих хувьсагч

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

тоолох ++;

}

#LOG_PERIOD 60000 // тоолох хэмжээг тодорхойлох

void setup () {// тохиргоо

тоолох = 0;

Цуваа эхлэх (9600);

pinMode (2, INPUT);

attachInterrupt (digitalPinToInterrupt (2), импульс, УНАХ); // гадаад тасалдлыг тодорхойлох

Serial.println ("Тоолуурыг эхлүүлэх");

}

void loop () {// үндсэн мөчлөг

тэмдэггүй урт гүйдэлMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

өмнөхMillis = одоогийнMillis;

Serial.println (тоолох);

тоолох = 0;

}

}

Хэрэгслүүд дотроос Arduino эсвэл бусад самбарыг сонгоно уу.

Хэрэгслүүд дотроос Порт ба Комыг сонгоно уу

Кодыг байршуулна уу.

Кодыг Tools -д байршуулсны дараа 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); тооллого бүрийг өөрийн мөрөнд хэвлэх болно.

Цуваа.хэвлэх (cpm); тоолох тус бүрийг нэг мөрөнд хэвлэх нэг том тоо шиг харагдах бөгөөд энэ нь тооллого гэж юу болохыг хэлэх боломжгүй юм.

Алхам 7: J305 Цацрагийн цацрагийн хэмжилт

J305 Цацрагийн цацрагийн хэмжилт
J305 Цацрагийн цацрагийн хэмжилт
J305 Цацраг туяаны хэмжилт
J305 Цацраг туяаны хэмжилт

Нэгдүгээрт, байгалийн цацраг туяа буюу байгалийн цацрагийг хэмжих явдал юм. Бүртгэгдсэн тоо бол минут тутамд хэмжсэн цацраг идэвхт тоосонцорыг багтаасан CPM (минут тутамд тоолох) юм.

J305 дэвсгэрийн дундаж тоо 15.6 CPM байв.

Алхам 8: J305 Утаа мэдрэгчийн цацрагийн хэмжилт

J305 Утаа мэдрэгчийн цацрагийн хэмжилт
J305 Утаа мэдрэгчийн цацрагийн хэмжилт
J305 Утаа мэдрэгчийн цацрагийн хэмжилт
J305 Утаа мэдрэгчийн цацрагийн хэмжилт

Гейгер тоолуур танд ижил тоог дахин дахин өгөх нь ховор биш тул цацрагийн эх үүсвэрээр шалгаарай. Би утаа мэдрэгчийн ион камерын Americium -ийн цацрагийн хэмжилтийг ашигласан. Утаа мэдрэгч нь Америкиумыг агаарт байгаа утааны хэсгүүдийг ионжуулдаг альфа тоосонцорын эх үүсвэр болгон ашигладаг. Би мэдрэгчийн металл тагийг тайлсан тул альфа ба бета тоосонцор нь гамма тоосонцортой хамт Гейгер хоолой руу орох боломжтой болно.

Хэрэв бүх зүйл хэвийн байвал тооллогыг өөрчлөх ёстой.

Утаа илрүүлэгч ион камерын 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);" руу очно уу.

"#LOG_PERIOD 15000 -ийг тодорхойлох"; тоолох хугацааг 15 секунд болгож, би үүнийг "#DEGIN LOG_PERIOD 5000" буюу 5 секунд болгон өөрчилсөн. Би 1 минут, 15 секунд 5 секундын хоорондох дундаж хооронд мэдэгдэхүйц ялгаа олсонгүй.

#оруулах

#тодорхойлох 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; // үржүүлэгчийг тооцоолох нь таны бүртгэлийн хугацаанаас хамаарна

Цуваа эхлэх (9600);

attachInterrupt (0, tube_impulse, FALLING); // гадаад тасалдлыг тодорхойлох

Serial.println ("Тоолуурыг эхлүүлэх"); // миний оруулсан код

}

void loop () {// үндсэн мөчлөг

тэмдэггүй урт гүйдэлMillis = millis ();

if (currentMillis - previousMillis> LOG_PERIOD) {

өмнөхMillis = одоогийнMillis;

cpm = тоолох * үржүүлэгч;

Serial.println (cpm); // миний өөрчилсөн код

тоолох = 0;

}

}

SBM-20-ийн дундаж дундаж тоо 23.4 CPM байв.

Алхам 10: Geiger тоолуурыг LCD дэлгэцээр холбох

Гейгер тоолуурыг LCD дэлгэцээр холбох
Гейгер тоолуурыг LCD дэлгэцээр холбох

LCD холболт:

GND рүү LCD K зүү

LCD Vcc хүртэлх 220 инчийн эсэргүүцэлтэй зүү

LCD D7 зүү тоон зүү 3

LCD D6 зүү тоон зүү 5

LCD D5 зүү тоон зүү 6

LCD D4 зүү тоон зүү 7

LCD зүүг тоон зүү рүү идэвхжүүлэх 8

LCD R/W зүүг газардуул

LCD RS зүү тоон зүү 9

10 кОм -ийн багтаамжтай LCD VO зүү

LCD Vcc зүүг Vcc руу холбоно уу

GCD руу LCD Vdd зүү

10 кОм хэмжээтэй тохируулгатай резистор.

Vcc, Vo, Vdd

Гейгер тоолуур

VIN -ийг дижитал зүү 2 руу шилжүүлэх

5 В -оос 5 В хүртэл

GND газардуулав

Алхам 11: LCD бүхий Geiger тоолуур

LCD бүхий Geiger тоолуур
LCD бүхий Geiger тоолуур
LCD бүхий Geiger тоолуур
LCD бүхий Geiger тоолуур
LCD бүхий Geiger тоолуур
LCD бүхий Geiger тоолуур

// номын сангийн кодыг оруулна уу:

#оруулах

#оруулах

#тодорхойлох LOG_PERIOD 15000 // Бүртгэлийн хугацаа миллисекундээр, санал болгосон утга 15000-60000.

#dexine MAX_PERIOD 60000 // Энэ ноорогийг өөрчлөхгүйгээр бүртгэх хамгийн их хугацаа

#тодорхойлох PERIOD 60000.0 // (60 сек) нэг минутын хэмжих хугацаа

дэгдэмхий гарын үсэггүй урт CNT; // дозиметрээс тасалдал тоолох хувьсагч

гарын үсэг зураагүй урт тоолол; // GM Tube үйл явдлын хувьсагч

гарын үсэг зураагүй урт cpm; // 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); // LCD дээр текст болон CNT хэвлэх

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 файл бүрийг ижил нэртэй фолдерт байрлуулна.

Зөвлөмж болгож буй: