विषयसूची:

Arduino DIY Geiger काउंटर: 12 कदम (चित्रों के साथ)
Arduino DIY Geiger काउंटर: 12 कदम (चित्रों के साथ)

वीडियो: Arduino DIY Geiger काउंटर: 12 कदम (चित्रों के साथ)

वीडियो: Arduino DIY Geiger काउंटर: 12 कदम (चित्रों के साथ)
वीडियो: Geiger Counter Kit Repair & Upgrades! Arduino Fun! 2024, जुलाई
Anonim
Arduino DIY गीजर काउंटर
Arduino DIY गीजर काउंटर
Arduino DIY गीजर काउंटर
Arduino DIY गीजर काउंटर

तो आपने एक DIY Geiger काउंटर का आदेश दिया है और आप इसे अपने Arduino से जोड़ना चाहते हैं। आप लाइन पर जाते हैं और नकल करने की कोशिश करते हैं कि कैसे दूसरों ने अपने गीजर काउंटर को Arduino से जोड़ा है केवल कुछ गलत है। यद्यपि आपका गीजर काउंटर काम नहीं करता है जैसा कि DIY में वर्णित है, जब आप अपने गीजर काउंटर को अपने Arduino से कनेक्ट करते हैं।

इस निर्देशयोग्य में मैं इनमें से कुछ गड़बड़ियों का निवारण करने का तरीका बताऊंगा।

याद रखना; अरुडिनो को एक बार में एक चरण में असेंबल और कोड करें, यदि आप सीधे किसी तैयार प्रोजेक्ट पर जाते हैं और कोई मिस्ड वायर या कोड की लाइन है तो यह समस्या को खोजने के लिए आपको हमेशा के लिए ले सकता है।

चरण 1: उपकरण और भाग

उपकरण और भाग
उपकरण और भाग

प्रोटोटाइप बॉक्स मैंने फेरेरो रोचर कैंडी बॉक्स का इस्तेमाल किया।

छोटा ब्रेडबोर्ड

16x2 एलसीडी

Arduino बोर्ड ईथर और यूएनओ या नैनो

२२० रोकनेवाला

पॉट 10 kΩ समायोज्य रोकनेवाला।

DIY गीजर काउंटर किट

जम्पर तार

बैटरी कनेक्टर या हार्नेस

आस्टसीलस्कप

ललित नाक सरौता

छोटा मानक पेचकश

चरण 2: अपने गीजर काउंटर को इकट्ठा करें

अपने गीजर काउंटर को इकट्ठा करें
अपने गीजर काउंटर को इकट्ठा करें

आपके गीजर ट्यूब को कोई नुकसान; और आपका गीजर काउंटर काम नहीं करेगा, इसलिए अपने गीजर ट्यूब को नुकसान से बचाने के लिए सुरक्षात्मक ऐक्रेलिक कवर का उपयोग करें।

यह निर्देश योग्य है कि कैसे मैंने उसी गीजर काउंटर को एक टूटी हुई गीजर ट्यूब के साथ मरम्मत की और भविष्य में टूटने को रोकने के लिए सुरक्षात्मक ऐक्रेलिक कवर फिट किया।

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

चरण 3: गीजर काउंटर का विद्युत परीक्षण

गीजर काउंटर का विद्युत परीक्षण
गीजर काउंटर का विद्युत परीक्षण
गीजर काउंटर का विद्युत परीक्षण
गीजर काउंटर का विद्युत परीक्षण
गीजर काउंटर का विद्युत परीक्षण
गीजर काउंटर का विद्युत परीक्षण

बिजली की आपूर्ति के लिए पहले सही वोल्टेज का उपयोग करें; यूएसबी कॉर्ड आपके कंप्यूटर से सीधे 5 वोल्ट डीसी की आपूर्ति करता है, हालांकि 3 एए बैटरी धारक 1.5 वोल्ट की क्षारीय बैटरी के लिए है जो 4.5 वोल्ट का कुल वोल्टेज बनाती है। यदि आप 1.2 वोल्ट रिचार्जेबल एनआई-सीडी या एनआई-एमएच बैटरी का उपयोग करते हैं तो आपको 4.8 वोल्ट के कुल वोल्टेज के लिए 4 एए बैटरी धारक की आवश्यकता होगी। यदि आप ४.५ वोल्ट से कम का उपयोग करते हैं तो गीजर काउंटर कार्य नहीं कर सकता है जैसा उसे करना चाहिए।

गीजर काउंटर आउटपुट पर बहुत कम सर्किटरी है; इसलिए जब तक स्पीकर टिक की आवाज करता है, और एलईडी झपकाता है, आपको वीआईएन पिन पर एक संकेत मिलना चाहिए।

आउटपुट सिग्नल के बारे में सुनिश्चित होने के लिए; ऑसिलोस्कोप जांच के सकारात्मक पक्ष को VIN से और ऑसिलोस्कोप जांच के नकारात्मक पक्ष को जमीन से जोड़कर एक ऑसिलोस्कोप को आउटपुट से कनेक्ट करें।

गीजर काउंटर को ट्रिगर करने के लिए पृष्ठभूमि विकिरण की प्रतीक्षा करने के बजाय मैंने गीजर काउंटर प्रतिक्रियाओं को बढ़ाने के लिए धूम्रपान डिटेक्टर आयन कक्ष से अमेरिसियम -241 का उपयोग किया। गीजर काउंटर का आउटपुट +3 वोल्ट पर शुरू हुआ और हर बार गीजर ट्यूब द्वारा अल्फा कणों पर प्रतिक्रिया करने और एक पल बाद +3 वोल्ट पर लौटने पर 0 वोल्ट तक गिर गया। यह वह संकेत है जिसे आप Arduino के साथ रिकॉर्ड कर रहे होंगे।

चरण 4: वायरिंग

तारों
तारों
तारों
तारों
तारों
तारों
तारों
तारों

दो तरीके हैं जिनसे आप गीजर काउंटर को Arduino और अपने कंप्यूटर से जोड़ सकते हैं।

Arduino पर GND को Geiger काउंटर पर GND से कनेक्ट करें।

Arduino पर 5V को Geiger काउंटर पर 5V से कनेक्ट करें।

गीजर काउंटर पर VIN को Arduino पर D2 से कनेक्ट करें।

गीजर काउंटर से जुड़ी स्वतंत्र शक्ति के साथ।

Arduino पर GND को Geiger काउंटर पर GND से कनेक्ट करें।

गीजर काउंटर पर VIN को Arduino पर D2 से कनेक्ट करें।

Arduino को अपने कंप्यूटर से कनेक्ट करें।

चरण 5: कोड

कोड
कोड
कोड
कोड
कोड
कोड

Arduino IDE खोलें और कोड लोड करें।

// यह स्केच एक मिनट में दालों की संख्या को गिनता है।

// Arduino पर GND को Geiger काउंटर पर GND से कनेक्ट करें।

// Arduino पर 5V को Geiger काउंटर पर 5V से कनेक्ट करें।

// गीजर काउंटर पर VIN को Arduino पर D2 से कनेक्ट करें।

अहस्ताक्षरित लंबी गिनती; // जीएम ट्यूब घटनाओं के लिए चर

अहस्ताक्षरित लंबे पिछलेमिलिस; // समय मापने के लिए चर

शून्य आवेग () {// दीपांगगिल सेतियाप अदा सिन्याल फॉलिंग दी पिन २

मायने रखता है++;

}

#define LOG_PERIOD ६०००० // गिनती दर

शून्य सेटअप () {//सेटअप

मायने रखता है = 0;

सीरियल.बेगिन (९६००);

पिनमोड (2, इनपुट);

अटैचइंटरप्ट (डिजिटलपिनटोइंटरप्ट (2), आवेग, गिरना); // बाहरी व्यवधान को परिभाषित करें

Serial.println ("काउंटर शुरू करें");

}

शून्य लूप () {// मुख्य चक्र

अहस्ताक्षरित लंबी वर्तमानमिलिस = मिली ();

अगर (करंटमिलिस - पिछलामिलिस > LOG_PERIOD) {

पिछलामिलिस = करंटमिलिस;

Serial.println (गिनती);

मायने रखता है = 0;

}

}

टूल्स में Arduino या आपके द्वारा उपयोग किए जा रहे अन्य बोर्ड का चयन करें।

टूल्स में पोर्ट और कॉम का चयन करें

कोड अपलोड करें।

एक बार टूल्स में कोड अपलोड हो जाने के बाद सीरियल मॉनिटर चुनें और अपना गीजर काउंटर काम देखें।

गड़बड़ियों की तलाश करें। इस कोड के बारे में केवल एक चीज यह है कि यह थोड़ा कठिन है आपको प्रत्येक गिनती के लिए 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);” और "सीरियल.प्रिंट (सीपीएम);"।

सीरियल.प्रिंट्लन (सीपीएम); प्रत्येक गिनती को अपनी लाइन पर प्रिंट करेगा।

सीरियल.प्रिंट (सीपीएम); एक ही लाइन पर प्रत्येक गिनती को प्रिंट करने वाली एक बड़ी संख्या की तरह दिखेगा जिससे यह बताना असंभव हो जाता है कि गिनती क्या है।

चरण 7: J305 पृष्ठभूमि विकिरण माप

J305 पृष्ठभूमि विकिरण मापन
J305 पृष्ठभूमि विकिरण मापन
J305 पृष्ठभूमि विकिरण मापन
J305 पृष्ठभूमि विकिरण मापन

सबसे पहले पृष्ठभूमि विकिरण का माप है, प्राकृतिक विकिरण जो पहले से ही स्वाभाविक रूप से मौजूद है। सूचीबद्ध संख्या सीपीएम (प्रति मिनट गिनती) है, जो हर मिनट में कुल मापा रेडियोधर्मी कण है।

J305 बैकग्राउंड एवरेज काउंट 15.6 CPM था।

चरण 8: J305 धुआँ संवेदक विकिरण का मापन

J305 धुआँ संवेदक विकिरण का मापन
J305 धुआँ संवेदक विकिरण का मापन
J305 धुआँ संवेदक विकिरण का मापन
J305 धुआँ संवेदक विकिरण का मापन

गीजर काउंटर के लिए आपको एक ही गिनती बार-बार देना असामान्य नहीं है इसलिए इसे विकिरण स्रोत से जांचें। मैंने स्मोक डिटेक्टर से अमेरिका के आयन कक्ष से विकिरण माप का उपयोग किया। स्मोक सेंसर अमेरिका का उपयोग अल्फा कणों के स्रोत के रूप में करता है जो हवा में धुएं के कणों को आयनित करते हैं। मैंने सेंसर पर लगे मेटल कैप को हटा दिया ताकि गामा कणों के साथ अल्फा और बीटा कण गीजर ट्यूब तक पहुंच सकें।

अगर सब कुछ ठीक रहा तो गिनती बदलनी चाहिए।

Americium-241 एक धूम्रपान संसूचक आयन कक्ष से औसत संख्या 519 CPM थी।

चरण 9: एसबीएम-20

एसबीएम-20
एसबीएम-20
एसबीएम-20
एसबीएम-20

यह Arduino स्केच एलेक्स बोगुस्लाव्स्की द्वारा लिखित संशोधित संस्करण है।

यह स्केच 15 सेकंड में दालों की संख्या को गिनता है और इसे प्रति मिनट गिनती में परिवर्तित करता है जिससे यह कम थकाऊ हो जाता है।

कोड मैंने जोड़ा "Serial.println ("काउंटर शुरू करें");"।

कोड मैं बदल गया; "सीरियल.प्रिंट (सीपीएम);" "सीरियल.प्रिंट्लन (सीपीएम);" के लिए।

"#define LOG_PERIOD 15000"; गिनती का समय 15 सेकंड पर सेट करता है, मैंने इसे "#define LOG_PERIOD 5000" या 5 सेकंड में बदल दिया है। मुझे 1 मिनट, या 15 सेकंड और 5 सेकंड की गिनती के बीच के औसत में कोई उल्लेखनीय अंतर नहीं मिला।

#शामिल

#define LOG_PERIOD 15000 // मिलीसेकंड में लॉगिंग अवधि, अनुशंसित मान 15000-60000।

#define MAX_PERIOD 60000 // इस स्केच को संशोधित किए बिना अधिकतम लॉगिंग अवधि

अहस्ताक्षरित लंबी गिनती; // जीएम ट्यूब घटनाओं के लिए चर

अहस्ताक्षरित लंबी सीपीएम; // सीपीएम के लिए चर

अहस्ताक्षरित इंट गुणक; // इस स्केच में सीपीएम की गणना के लिए चर

अहस्ताक्षरित लंबे पिछलेमिलिस; // समय माप के लिए चर

शून्य tube_impulse () {// गीजर किट से घटनाओं को कैप्चर करने के लिए उपप्रक्रिया

मायने रखता है++;

}

शून्य सेटअप () {// सेटअप उपप्रक्रिया

मायने रखता है = 0;

सीपीएम = 0;

गुणक = MAX_PERIOD / LOG_PERIOD; // गुणक की गणना, आपकी लॉग अवधि पर निर्भर करती है

सीरियल.बेगिन (९६००);

अटैचइंटरप्ट (0, tube_impulse, FALLING); // बाहरी व्यवधान को परिभाषित करें

Serial.println ("काउंटर शुरू करें"); // कोड मैंने जोड़ा

}

शून्य लूप () {// मुख्य चक्र

अहस्ताक्षरित लंबी वर्तमानमिलिस = मिली ();

अगर (करंटमिलिस - पिछलामिलिस > LOG_PERIOD){

पिछलामिलिस = करंटमिलिस;

सीपीएम = मायने रखता है * गुणक;

सीरियल.प्रिंट्लन (सीपीएम); // कोड मैं बदल गया

मायने रखता है = 0;

}

}

SBM-20 पृष्ठभूमि औसत गणना 23.4 CPM थी।

चरण 10: एक एलसीडी के साथ गीजर काउंटर को तार देना

एक एलसीडी के साथ गीजर काउंटर को तार देना
एक एलसीडी के साथ गीजर काउंटर को तार देना

एलसीडी कनेक्शन:

LCD K पिन से GND

एलसीडी ए पिन से 220 रेसिस्टर टू वीसीसी

LCD D7 पिन से डिजिटल पिन 3

LCD D6 पिन से डिजिटल पिन 5

LCD D5 पिन से डिजिटल पिन 6

LCD D4 पिन से डिजिटल पिन 7

एलसीडी पिन को डिजिटल पिन में सक्षम करें 8

एलसीडी आर/डब्ल्यू पिन टू ग्राउंड

एलसीडी आरएस पिन से डिजिटल पिन 9

एलसीडी VO पिन 10 kΩ पॉट. को समायोजित करने के लिए

एलसीडी वीसीसी पिन से वीसीसी

एलसीडी Vdd पिन से GND

पॉट 10 kΩ समायोज्य रोकनेवाला।

वीसीसी, वीओ, वीडीडी

गीगर काउंटर

VIN से डिजिटल पिन 2

5 वी से +5वी

जीएनडी टू ग्राउंड

चरण 11: एलसीडी के साथ गीजर काउंटर

एलसीडी के साथ गीजर काउंटर
एलसीडी के साथ गीजर काउंटर
एलसीडी के साथ गीजर काउंटर
एलसीडी के साथ गीजर काउंटर
एलसीडी के साथ गीजर काउंटर
एलसीडी के साथ गीजर काउंटर

// लाइब्रेरी कोड शामिल करें:

#शामिल

#शामिल

#define LOG_PERIOD 15000 // मिलीसेकंड में लॉगिंग अवधि, अनुशंसित मान 15000-60000।

#define MAX_PERIOD 60000 // इस स्केच को संशोधित किए बिना अधिकतम लॉगिंग अवधि

#define PERIOD 60000.0 // (60 सेकंड) एक मिनट की माप अवधि

अस्थिर अहस्ताक्षरित लंबी सीएनटी; // dosimeter से इंटरप्ट की गिनती के लिए चर

अहस्ताक्षरित लंबी गिनती; // जीएम ट्यूब घटनाओं के लिए चर

अहस्ताक्षरित लंबी सीपीएम; // सीपीएम के लिए चर

अहस्ताक्षरित इंट गुणक; // इस स्केच में सीपीएम की गणना के लिए चर

अहस्ताक्षरित लंबे पिछलेमिलिस; // समय माप के लिए चर

अहस्ताक्षरित लंबी अवधि; // समय मापने के लिए चर

अहस्ताक्षरित लंबी सीपीएम; // सीपीएम मापने के लिए चर

// इंटरफ़ेस पिन की संख्या के साथ लाइब्रेरी को इनिशियलाइज़ करें

लिक्विड क्रिस्टल एलसीडी (9, 8, 7, 6, 5, 3);

शून्य सेटअप () {// सेटअप

LCD.begin (16, 2);

सीएनटी = 0;

सीपीएम = 0;

डिस्पपीरियोड = 0;

LCD.setCursor(0, 0);

LCD.print ("आरएच इलेक्ट्रॉनिक्स");

LCD.setCursor(0, 1);

LCD.print ("गीजर काउंटर");

देरी (2000);

क्लीनडिस्प्ले ();

अटैचइंटरप्ट (0, गेटइवेंट, फॉलिंग); // पिन 2 पर घटना

}

शून्य लूप () {

LCD.setCursor(0, 0); // एलसीडी पर टेक्स्ट और सीएनटी प्रिंट करें

LCD.print ("सीपीएम:");

LCD.setCursor(0, 1);

एलसीडी.प्रिंट ("सीएनटी:");

LCD.setCursor(5, 1);

एलसीडी.प्रिंट (सीएनटी);

अगर (मिली ()> = dispPeriod + PERIOD) {// अगर एक मिनट खत्म हो गया है

क्लीनडिस्प्ले (); // स्पष्ट एलसीडी

// संचित सीएनटी घटनाओं के बारे में कुछ करें…।

LCD.setCursor(5, 0);

सीपीएम = सीएनटी;

एलसीडी.प्रिंट (सीपीएम); // सीपीएम प्रदर्शित करें

सीएनटी = 0;

dispPeriod = मिली ();

}

}

शून्य गेटइवेंट () {// डिवाइस से ईवेंट प्राप्त करें

सीएनटी++;

}

शून्य क्लीनडिस्प्ले (){// स्पष्ट एलसीडी रूटीन

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

LCD.setCursor(0, 0);

}

चरण 12: फ़ाइलें

इन फ़ाइलों को अपने Arduino पर डाउनलोड और इंस्टॉल करें।

प्रत्येक.ino फ़ाइल को उसी नाम से एक फ़ोल्डर में रखें।

सिफारिश की: