Arduino DIY Geiger কাউন্টার: 12 টি ধাপ (ছবি সহ)
Arduino DIY Geiger কাউন্টার: 12 টি ধাপ (ছবি সহ)
Anonim
Arduino DIY Geiger কাউন্টার
Arduino DIY Geiger কাউন্টার
Arduino DIY Geiger কাউন্টার
Arduino DIY Geiger কাউন্টার

সুতরাং আপনি একটি DIY Geiger কাউন্টার অর্ডার করেছেন এবং আপনি এটি আপনার Arduino এর সাথে সংযুক্ত করতে চান। আপনি লাইনে যান এবং নকল করার চেষ্টা করুন কিভাবে অন্যরা তাদের Geiger কাউন্টারকে Arduino এর সাথে সংযুক্ত করেছে শুধুমাত্র কিছু ভুল খুঁজে পেতে। যদিও আপনার Geiger কাউন্টার কাজ করে বলে মনে হয় না DIY তে বর্ণিত কিছুই কাজ করে না যখন আপনি আপনার Geiger কাউন্টারটি আপনার Arduino এর সাথে সংযুক্ত করেন।

এই নির্দেশাবলীতে আমি এই সমস্যাগুলির কিছু সমস্যা সমাধানের জন্য আচ্ছাদন করব।

মনে রাখবেন; আরডুইনোকে একসঙ্গে এক ধাপে একত্রিত করুন এবং কোড করুন, যদি আপনি সরাসরি একটি সমাপ্ত প্রকল্পে যান এবং সেখানে একটি মিসড ওয়্যার বা কোডের লাইন থাকে তবে সমস্যাটি খুঁজে পেতে আপনাকে চিরতরে নিতে পারে।

ধাপ 1: সরঞ্জাম এবং যন্ত্রাংশ

সরঞ্জাম এবং যন্ত্রাংশ
সরঞ্জাম এবং যন্ত্রাংশ

প্রোটোটাইপ বক্স আমি একটি Ferrero Rocher ক্যান্ডি বক্স ব্যবহার করেছি।

ছোট রুটিবোর্ড

16x2 LCD

Arduino বোর্ড ইথার একটি UNO বা Nano

220 Ω প্রতিরোধক

পাত্র 10 kΩ নিয়মিত প্রতিরোধক।

DIY Geiger কাউন্টার কিট

জাম্পার তার

ব্যাটারি সংযোগকারী বা জোতা

অসিলোস্কোপ

সূক্ষ্ম নাক প্লায়ার

ছোট স্ট্যান্ডার্ড স্ক্রু ড্রাইভার

ধাপ 2: আপনার Geiger কাউন্টার একত্রিত করুন

আপনার Geiger কাউন্টার একত্রিত করুন
আপনার Geiger কাউন্টার একত্রিত করুন

আপনার Geiger টিউব কোন ক্ষতি; এবং আপনার Geiger কাউন্টার কাজ করবে না, তাই আপনার Geiger টিউব ক্ষতি প্রতিরোধ করার জন্য প্রতিরক্ষামূলক এক্রাইলিক কভার ব্যবহার করুন।

ভবিষ্যতে ভাঙ্গন রোধ করার জন্য আমি কিভাবে একটি ভাঙা Geiger টিউব দিয়ে একই Geiger কাউন্টার মেরামত করেছি এবং প্রতিরক্ষামূলক এক্রাইলিক কভার লাগিয়েছি তা এই নির্দেশযোগ্য।

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

ধাপ 3: গিগার কাউন্টারকে বৈদ্যুতিকভাবে পরীক্ষা করা

গিগার কাউন্টারকে বৈদ্যুতিকভাবে পরীক্ষা করা হচ্ছে
গিগার কাউন্টারকে বৈদ্যুতিকভাবে পরীক্ষা করা হচ্ছে
গিগার কাউন্টার বৈদ্যুতিকভাবে পরীক্ষা করা হচ্ছে
গিগার কাউন্টার বৈদ্যুতিকভাবে পরীক্ষা করা হচ্ছে
গিগার কাউন্টার বৈদ্যুতিকভাবে পরীক্ষা করা হচ্ছে
গিগার কাউন্টার বৈদ্যুতিকভাবে পরীক্ষা করা হচ্ছে

প্রথমে বিদ্যুৎ সরবরাহের জন্য সঠিক ভোল্টেজ ব্যবহার করুন; ইউএসবি কর্ড আপনার কম্পিউটার থেকে 5 ভোল্ট ডিসি সরবরাহ করে, তবে 3 এএ ব্যাটারি হোল্ডার 1.5 ভোল্ট ক্ষারীয় ব্যাটারির জন্য মোট ভোল্টেজ 4.5 ভোল্ট তৈরি করে। আপনি যদি 1.2 ভোল্ট রিচার্জেবল NI-Cd বা NI-MH ব্যাটারী ব্যবহার করেন তাহলে আপনার মোট 4.8 ভোল্টের ভোল্টেজের জন্য 4 AA ব্যাটারি হোল্ডার লাগবে। আপনি যদি.5.৫ ভোল্টের কম ব্যবহার করেন তাহলে Geiger কাউন্টারের মতো কাজ নাও করতে পারে।

Geiger কাউন্টার আউটপুট খুব কম সার্কিট্রি আছে; যতক্ষণ স্পিকার একটি টিক শব্দ করে, এবং LED ঝলক দেয়, ততক্ষণ আপনার VIN পিনে একটি সংকেত পাওয়া উচিত।

আউটপুট সংকেত সম্পর্কে নিশ্চিত হতে; ওসিলোস্কোপ প্রোবের ধনাত্মক দিকটি ভিআইএন এবং অসিলোস্কোপ প্রোবের নেতিবাচক দিককে মাটিতে সংযুক্ত করে আউটপুটে একটি অসিলোস্কোপ সংযুক্ত করুন।

গিগার কাউন্টার ট্রিগার করার জন্য শুধু ব্যাকগ্রাউন্ড রেডিয়েশনের অপেক্ষার চেয়ে আমি গিগার কাউন্টার প্রতিক্রিয়া বাড়ানোর জন্য স্মোক ডিটেক্টর আয়ন চেম্বার থেকে americium-241 ব্যবহার করেছি। Geiger কাউন্টারের আউটপুট +3 ভোল্টে শুরু হয়েছিল এবং প্রতিবার Geiger টিউব আলফা কণার প্রতি প্রতিক্রিয়া দেখিয়ে 0 ভোল্টে নেমে আসে এবং এক মুহূর্ত পরে +3 ভোল্টে ফিরে আসে। এই সংকেত আপনি Arduino সঙ্গে রেকর্ডিং করা হবে।

ধাপ 4: তারের

তারের
তারের
তারের
তারের
তারের
তারের
তারের
তারের

আপনি Arduino এবং আপনার কম্পিউটারের সাথে Geiger কাউন্টার সংযোগ করতে পারেন দুটি উপায় আছে।

Arduino এ GND কে Geiger কাউন্টারে GND এর সাথে সংযুক্ত করুন।

Arguino এ 5V কে Geiger কাউন্টারে 5V এর সাথে সংযুক্ত করুন।

গিগার কাউন্টারে ভিআইএনকে আরডুইনোতে ডি 2 এর সাথে সংযুক্ত করুন।

গিগার কাউন্টারে স্বাধীন বিদ্যুতের সাথে সংযুক্ত।

Arduino এ GND কে Geiger কাউন্টারে GND এর সাথে সংযুক্ত করুন।

গিগার কাউন্টারে ভিআইএনকে আরডুইনোতে ডি 2 এর সাথে সংযুক্ত করুন।

আপনার কম্পিউটারে Arduino সংযুক্ত করুন।

ধাপ 5: কোড

কোড
কোড
কোড
কোড
কোড
কোড

Arduino IDE খুলুন এবং কোডটি লোড করুন।

// এই স্কেচটি প্রতি মিনিটে ডালের সংখ্যা গণনা করে।

// Arguino এ GND কে Geiger কাউন্টারে GND এর সাথে সংযুক্ত করুন।

// গিগার কাউন্টারে 5V এর সাথে Arduino এর 5V সংযোগ করুন।

// গিগার কাউন্টারে ভিআইএনকে আরডুইনোতে ডি 2 এর সাথে সংযুক্ত করুন।

স্বাক্ষরবিহীন দীর্ঘ গণনা; // জিএম টিউব ইভেন্টের জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ আগের মিলিস; // সময় পরিমাপের জন্য পরিবর্তনশীল

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

গণনা ++;

}

#LOG_PERIOD 60000 // গণনা হার নির্ধারণ করুন

অকার্যকর সেটআপ () {// সেটআপ

গণনা = 0;

Serial.begin (9600);

পিনমোড (2, ইনপুট);

attachInterrupt (digitalPinToInterrupt (2), impulse, FALLING); // বাহ্যিক বাধা সংজ্ঞায়িত করুন

Serial.println ("কাউন্টার শুরু করুন");

}

অকার্যকর লুপ () {// প্রধান চক্র

স্বাক্ষরবিহীন দীর্ঘ কারেন্টমিলিস = মিলিস ();

যদি (currentMillis - previousMillis> 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);" এবং "সিরিয়াল.প্রিন্ট (সিপিএম);"।

Serial.println (cpm); প্রতিটি গণনা তার নিজস্ব লাইনে মুদ্রণ করবে।

সিরিয়াল.প্রিন্ট (সিপিএম); একই লাইনে প্রতিটি গণনা মুদ্রণ করার মতো একটি বড় সংখ্যা দেখাবে যা গণনাটি কী তা বলা অসম্ভব।

ধাপ 7: J305 ব্যাকগ্রাউন্ড বিকিরণ পরিমাপ

J305 ব্যাকগ্রাউন্ড বিকিরণ পরিমাপ
J305 ব্যাকগ্রাউন্ড বিকিরণ পরিমাপ
J305 ব্যাকগ্রাউন্ড বিকিরণ পরিমাপ
J305 ব্যাকগ্রাউন্ড বিকিরণ পরিমাপ

প্রথমটি হল পটভূমি বিকিরণের পরিমাপ, প্রাকৃতিক বিকিরণ যা ইতিমধ্যে প্রাকৃতিকভাবে বিদ্যমান। তালিকাভুক্ত সংখ্যা হল CPM (গণনা প্রতি মিনিট), যা প্রতি মিনিটে মোট পরিমাপ করা তেজস্ক্রিয় কণা।

J305 ব্যাকগ্রাউন্ড গড় গণনা ছিল 15.6 CPM।

ধাপ 8: স্মোক সেন্সর বিকিরণের J305 পরিমাপ

J305 স্মোক সেন্সর রেডিয়েশনের পরিমাপ
J305 স্মোক সেন্সর রেডিয়েশনের পরিমাপ
J305 স্মোক সেন্সর রেডিয়েশনের পরিমাপ
J305 স্মোক সেন্সর রেডিয়েশনের পরিমাপ

গিগার কাউন্টারের জন্য আপনাকে বারবার একই গণনা দেওয়া অস্বাভাবিক নয় তাই এটি একটি বিকিরণ উত্স দিয়ে পরীক্ষা করুন। আমি ধোঁয়া শনাক্তকারী থেকে আমেরিকান আয়ন চেম্বার থেকে বিকিরণ পরিমাপ ব্যবহার করেছি। ধোঁয়া সেন্সর আমেরিকামকে আলফা কণার উত্স হিসাবে ব্যবহার করে যা বাতাসে ধোঁয়ার কণাগুলিকে আয়নায়িত করে। আমি সেন্সরের ধাতব ক্যাপটি সরিয়ে দিয়েছি যাতে আলফা এবং বিটা কণা গামা কণার সাথে গিগার টিউবে যেতে পারে।

যদি সবকিছু ঠিক থাকে তবে গণনাগুলি পরিবর্তন করা উচিত।

আমেরিকান -241 একটি ধোঁয়া ডিটেক্টর আয়ন চেম্বার থেকে গড় গণনা ছিল 519 সিপিএম।

ধাপ 9: SBM-20

এসবিএম -20
এসবিএম -20
এসবিএম -20
এসবিএম -20

এই Arduino স্কেচ সংশোধিত সংস্করণ অ্যালেক্স Boguslavsky দ্বারা লিখিত।

এই স্কেচ 15 সেকেন্ডে ডালের সংখ্যা গণনা করে এবং এটি প্রতি মিনিটে গণনায় রূপান্তরিত করে যা কম ক্লান্তিকর করে তোলে।

কোড আমি যোগ করেছি “Serial.println (“কাউন্টার শুরু করুন”);”।

কোড আমি পরিবর্তন করেছি; "সিরিয়াল.প্রিন্ট (সিপিএম);" থেকে "Serial.println (cpm);"।

"#LOG_PERIOD 15000 নির্ধারণ করুন"; গণনার সময় 15 সেকেন্ডে সেট করে, আমি এটিকে পরিবর্তন করে “#ডিফাইন লগ_পেরিওড 5000” বা 5 সেকেন্ড করেছিলাম। আমি 1 মিনিট, বা 15 সেকেন্ড এবং 5 সেকেন্ডের জন্য গণনার মধ্যে গড়ের মধ্যে কোন প্রশংসনীয় পার্থক্য খুঁজে পাইনি।

#অন্তর্ভুক্ত

#ডিফাইন LOG_PERIOD 15000 // মিলিসেকেন্ডে লগিং পিরিয়ড, প্রস্তাবিত মান 15000-60000।

#ডিফাইন MAX_PERIOD 60000 // এই স্কেচ পরিবর্তন না করে সর্বোচ্চ লগিং পিরিয়ড

স্বাক্ষরবিহীন দীর্ঘ গণনা; // জিএম টিউব ইভেন্টের জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ সিপিএম; // CPM এর জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন int গুণক; // এই স্কেচে CPM গণনার জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ আগের মিলিস; // সময় পরিমাপের জন্য পরিবর্তনশীল

void tube_impulse () {// Geiger Kit থেকে ইভেন্ট ক্যাপচার করার জন্য সাব -প্রসেসর

গণনা ++;

}

void setup () {// setup subprocedure

গণনা = 0;

cpm = 0;

গুণক = MAX_PERIOD / LOG_PERIOD; // গুণক গণনা, আপনার লগ সময়কাল উপর নির্ভর করে

Serial.begin (9600);

attachInterrupt (0, tube_impulse, FALLING); // বাহ্যিক বাধা সংজ্ঞায়িত করুন

Serial.println ("কাউন্টার শুরু করুন"); // কোড আমি যোগ করেছি

}

অকার্যকর লুপ () {// প্রধান চক্র

স্বাক্ষরবিহীন দীর্ঘ কারেন্টমিলিস = মিলিস ();

যদি (currentMillis - previousMillis> LOG_PERIOD) {

পূর্ববর্তী মিলিস = বর্তমান মিলিস;

cpm = গণনা * গুণক;

Serial.println (cpm); // কোড আমি পরিবর্তন করেছি

গণনা = 0;

}

}

SBM-20 পটভূমির গড় গণনা ছিল 23.4 CPM।

ধাপ 10: একটি LCD দিয়ে Geiger কাউন্টার তারের

একটি LCD দিয়ে Geiger কাউন্টার তারের
একটি LCD দিয়ে Geiger কাউন্টার তারের

এলসিডি সংযোগ:

এলসিডি কে পিন থেকে জিএনডি

এলসিডি একটি পিন থেকে 220 Ω প্রতিরোধক Vcc

LCD D7 পিন থেকে ডিজিটাল পিন 3

LCD D6 পিন থেকে ডিজিটাল পিন 5

LCD D5 পিন থেকে ডিজিটাল পিন 6

LCD D4 পিন থেকে ডিজিটাল পিন 7

এলসিডি পিন থেকে ডিজিটাল পিন 8 সক্ষম করুন

মাটিতে LCD R/W পিন

এলসিডি আরএস পিন থেকে ডিজিটাল পিন 9

10 kΩ পাত্র সমন্বয় করার জন্য LCD VO পিন

LCD Vcc পিন থেকে Vcc

GCD থেকে LCD Vdd পিন

পাত্র 10 kΩ নিয়মিত প্রতিরোধক।

Vcc, Vo, Vdd

গিগার কাউন্টার

VIN থেকে ডিজিটাল পিন 2

5 V থেকে +5V

GND to ground

ধাপ 11: LCD সহ Geiger কাউন্টার

LCD সহ Geiger কাউন্টার
LCD সহ Geiger কাউন্টার
LCD সহ Geiger কাউন্টার
LCD সহ Geiger কাউন্টার
LCD সহ Geiger কাউন্টার
LCD সহ Geiger কাউন্টার

// লাইব্রেরি কোড অন্তর্ভুক্ত করুন:

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#ডিফাইন LOG_PERIOD 15000 // মিলিসেকেন্ডে লগিং পিরিয়ড, প্রস্তাবিত মান 15000-60000।

#ডিফাইন MAX_PERIOD 60000 // এই স্কেচ পরিবর্তন না করে সর্বোচ্চ লগিং পিরিয়ড

#সংজ্ঞা দিন 60000.0 // (60 সেকেন্ড) এক মিনিটের পরিমাপের সময়কাল

অস্থির স্বাক্ষরবিহীন দীর্ঘ CNT; // ডোজিমিটার থেকে বিরতি গণনার জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ গণনা; // জিএম টিউব ইভেন্টের জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ সিপিএম; // CPM এর জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন int গুণক; // এই স্কেচে CPM গণনার জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ আগের মিলিস; // সময় পরিমাপের জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ সময়কাল; // সময় পরিমাপের জন্য পরিবর্তনশীল

স্বাক্ষরবিহীন দীর্ঘ সিপিএম; // CPM পরিমাপের জন্য পরিবর্তনশীল

// ইন্টারফেস পিনের সংখ্যা দিয়ে লাইব্রেরি আরম্ভ করুন

লিকুইডক্রিস্টাল এলসিডি (9, 8, 7, 6, 5, 3);

অকার্যকর সেটআপ () {// সেটআপ

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 এ ইভেন্ট

}

অকার্যকর লুপ () {

lcd.setCursor (0, 0); // এলসিডিতে প্রিন্ট টেক্সট এবং সিএনটি

lcd.print ("CPM:");

lcd.setCursor (0, 1);

lcd.print ("CNT:");

lcd.setCursor (5, 1);

lcd.print (CNT);

if (millis ()> = dispPeriod + PERIOD) {// যদি এক মিনিট শেষ হয়

cleanDisplay (); // সাফ এলসিডি

// সঞ্চিত সিএনটি ইভেন্ট সম্পর্কে কিছু করুন…।

lcd.setCursor (5, 0);

CPM = CNT;

lcd.print (CPM); // ডিসপ্লে সিপিএম

CNT = 0;

dispPeriod = মিলিস ();

}

}

অকার্যকর GetEvent () {// ডিভাইস থেকে ইভেন্ট পান

CNT ++;

}

অকার্যকর cleanDisplay () {// LCD রুটিন পরিষ্কার করুন

lcd.clear ();

lcd.setCursor (0, 0);

lcd.setCursor (0, 0);

}

ধাপ 12: ফাইল

আপনার Arduino এ এই ফাইলগুলি ডাউনলোড এবং ইনস্টল করুন।

প্রতিটি.ino ফাইল একই নামের একটি ফোল্ডারে রাখুন।

প্রস্তাবিত: