সুচিপত্র:

Arduino ভিত্তিক পালস আবেশন আবিষ্কারক - এলসি -ফাঁদ: 3 ধাপ
Arduino ভিত্তিক পালস আবেশন আবিষ্কারক - এলসি -ফাঁদ: 3 ধাপ

ভিডিও: Arduino ভিত্তিক পালস আবেশন আবিষ্কারক - এলসি -ফাঁদ: 3 ধাপ

ভিডিও: Arduino ভিত্তিক পালস আবেশন আবিষ্কারক - এলসি -ফাঁদ: 3 ধাপ
ভিডিও: The heart pulse sensor with Arduino 2024, নভেম্বর
Anonim
আরডুইনো ভিত্তিক পালস ইন্ডাকশন ডিটেক্টর - এলসি -ট্র্যাপ
আরডুইনো ভিত্তিক পালস ইন্ডাকশন ডিটেক্টর - এলসি -ট্র্যাপ

একটি সহজ আরডিনো পালস ইন্ডাকশন মেটাল ডিটেক্টরের জন্য শুধুমাত্র একটি সাপ্লাই ভোল্টেজ সহ আরও ধারণা খুঁজতে গিয়ে আমি টিমোর হোমপেজে এসেছি:

www.digiwood.ee/8-electronic-projects/2-metal-detector-circuit

তিনি এলসি-ট্র্যাপ নীতি ব্যবহার করে একটি সাধারণ পালস ইন্ডাকশন ডিটেক্টর তৈরি করেছিলেন। অনুরূপ সার্কিটগুলি এখানে TechKiwiGadgets দ্বারা Instructable এ পোস্ট করা হয়েছিল। টেমো সার্কিট একটি পিআইসি মাইক্রোকন্ট্রোলারের অভ্যন্তরীণ তুলনাকারী ব্যবহার করে, এইভাবে কম বাহ্যিক উপাদানগুলির প্রয়োজন হয়

তাই আমাকে এই পরিকল্পনার জন্য PIC- কন্ট্রোলারের পরিবর্তে Arduino ব্যবহার করার জন্য চ্যালেঞ্জ করা হয়েছিল এবং আমি কতদূর পেতে পারি তা দেখুন।

ধাপ 1: পরিকল্পিত

পরিকল্পিত
পরিকল্পিত
পরিকল্পিত
পরিকল্পিত
পরিকল্পিত
পরিকল্পিত

Arduino পরিকল্পিত একটু বেশি জটিল কারণ Arduino তুলনাকারীর ইনপুট একটি অভ্যন্তরীণ এনালগ সংকেত রুট করার অনুমতি দেয় না। এটি একটি সাধারণ ভোল্টেজ ডিভাইডারের জন্য দুটি উপাদান যুক্ত করে। এটি ফ্লিপ কয়েল ডিজাইনের 9 এর তুলনায় 12 টি বাহ্যিক উপাদান (স্পিকার এবং 16x2 এলসিডি বাদে) সহ একটি নকশার দিকে নিয়ে যায়।

টিমোর ওয়েবসাইটে পরিকল্পিত কাজের নীতি খুব ভালভাবে ব্যাখ্যা করা হয়েছে। মূলত কয়েলটি চালিত হয় এবং তারপর সুইচ অফ হয়ে যায়। সুইচ অফ করার পরে, কুণ্ডলী এবং কনডেন্সার সমান্তরালে একটি স্যাঁতসেঁতে দোলন তৈরি করবে। দোলনের ফ্রিকোয়েন্সি এবং ক্ষয় কুণ্ডলীর সান্নিধ্যে ধাতু দ্বারা প্রভাবিত হয়। সার্কিটের আরো বিস্তারিত জানার জন্য Teemo বা TechKiwi এর পৃষ্ঠা দেখুন এখানে Instructables।

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

এই ক্ষেত্রে আমি একাধিক বাধা পাব কারণ ভোল্টেজ তুলনাকারীর রেফারেন্স ভোল্টেজের চারপাশে দোল খাচ্ছে। দোলন শেষে, কুণ্ডলীতে ভোল্টেজ 5V এর কাছাকাছি স্থির হবে, কিন্তু ঠিক নয়। আমি প্রায় 4.9 ভোল্টের ভোল্টেজ পাওয়ার জন্য 200 ওহম এবং 10 কে ওহম সহ একটি ভোল্টেজ ডিভাইডার বেছে নিয়েছি

স্কিম্যাটিক্সের জটিলতা কমাতে আমি D4 এবং D5 ব্যবহার করে GND (10k রেজিস্টরের জন্য) এবং 5V (220 Ohm রোধের জন্য) প্রদান করেছি। পিনগুলি ডিটেক্টরের শুরুতে সেট করা আছে।

এই সংস্করণে, আমি ভলিউম নিয়ন্ত্রিত মাল্টি টোন অ্যাপ্রাক ব্যবহার করে একটি স্পিকার সংযোগ যুক্ত করেছি যেমন বর্ণনা করা হয়েছে কিভাবে একটি Arduino ভিত্তিক মেটাল ডিটেক্টর প্রোগ্রাম করতে হবে। এটি লক্ষ্যের বৈশিষ্ট্যগুলিকে আলাদা করার পাশাপাশি সংকেত শক্তির অনুভূতি পেতে দেয়। স্পিকারটি অ্যাডিওনোনাল 5 পিন হেডারের সাথে সংযুক্ত করা যেতে পারে। হেডারের বাকি 3 টি পিন পুশ-বোতামগুলির জন্য ব্যবহার করা হবে (প্রয়োগ করা হবে)।

ধাপ 2: প্রোগ্রামিং

প্রোগ্রামিং
প্রোগ্রামিং
প্রোগ্রামিং
প্রোগ্রামিং
প্রোগ্রামিং
প্রোগ্রামিং

এখন যেহেতু সার্কিটটি ডিজাইন করা হয়েছে এবং প্রোটোটাইপ তৈরি করা হয়েছে, এখন সময় এসেছে ধাতু সনাক্ত করার জন্য উপযুক্ত পদ্ধতি খুঁজে বের করার।

1. ডাল গণনা

দোলনের ডাল গণনা যতক্ষণ না এটি সম্পূর্ণভাবে ক্ষয় হয় ততক্ষণ একটি ধারণা।

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

দোলনের প্রতিটি তরঙ্গ দুটি বাধা সৃষ্টি করে। একটি নিচে যাওয়ার সময় এবং একটি আবার উপরে যাওয়ার সময়। রেফারেন্স ভোল্টেজকে ঠিক একটি দোলন তরঙ্গের চূড়ায় সেট করতে, নিচে যাওয়ার এবং উপরে যাওয়ার সময় যতটা সম্ভব সংক্ষিপ্ত হওয়া উচিত (ছবি দেখুন)। দুর্ভাগ্যবশত এখানে Arduino পরিবেশের ওভারহেড সমস্যা তৈরি করে।

বিরতির প্রতিটি ট্রিগার এই কোডের জন্য কল করে:

ISR (ANALOG_COMP_vect) {

Toggle1 = Toggle0 // save last value Toggle0 = TCNT1; // নতুন মান পান}

এই কোডটি কিছু সময় নেয় (যদি আমি ঠিক মনে রাখি, প্রায় 78 নির্দেশ চক্র জাদুকরী প্রায় 5 মাইক্রোসেকেন্ড @ 16MHz)। অতএব দুটি ডালের মধ্যে ন্যূনতম সনাক্তযোগ্য দূরত্ব ঠিক এই সময়টি লাগে, যদি দুটি ট্রিগারের মধ্যে সময় কম হয় (ছবি দেখুন), এটি সনাক্ত করা যাবে না, কারণ দ্বিতীয় বিঘ্ন সনাক্ত করার আগে কোডটি সম্পূর্ণভাবে কার্যকর করা হয়েছে

এটি সংবেদনশীলতার ক্ষতির দিকে পরিচালিত করে। একই সময়ে, আমি লক্ষ্য করেছি, যে দোলনাগুলির স্যাঁতসেঁতে বাহ্যিক প্রভাব যাই হোক না কেন খুব সংবেদনশীল, এইভাবে এই পদ্ধতিটি মোটামুটি কিছুটা কঠিন করে তোলে।

2. ফ্রিকোয়েন্সি পরিমাপ

ধাতু সনাক্ত করার আরেকটি উপায় হল দোলনের ফ্রিকোয়েন্সি পরিমাপ করা। দোলনের স্যাঁতসেঁতে পরিমাপের তুলনায় এটির একটি বড় সুবিধা রয়েছে কারণ ফ্রিকোয়েন্সি পরিবর্তন ধাতুর বৈষম্যের অনুমতি দেয়। যদি কুণ্ডলীর কাছে লৌহঘটিত উপাদান থাকে, ফ্রিকোয়েন্সি ধীর হয়ে যায়, যদি কুণ্ডলীর কাছে মূল্যবান ধাতু থাকে তবে ফ্রিকোয়েন্সি বৃদ্ধি পাবে।

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

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

ডেটা প্রসেস করা হচ্ছে।

কুণ্ডলীর সময় করার জন্য লুপ () ফাংশনের জন্য কলিংয়ের উপর ভিত্তি করে প্রাথমিক কোড। যদিও ফলাফল খারাপ ছিল না, আমার সময় উন্নত করার তাগিদ ছিল। এটি করার জন্য, আমি একটি সম্পূর্ণ টাইমার ভিত্তিক কোড তৈরি করেছিলাম, যার ফলে একটি আর্ডুইনো ভিত্তিক মেটাল ডিটেক্টরকে কিভাবে প্রোগ্রাম করা যায় তা পৃথকভাবে নির্দেশিত হয়। এই নির্দেশযোগ্য সময়, ডেটা ক্রঞ্চিং এলসিডি আউটপুট ইত্যাদি বিস্তারিতভাবে ব্যাখ্যা করে

1. এলসিডি

প্রথম পদ্ধতি ছিল 10 ডাল পরিমাপ করা এবং তারপর LCD- তে মানগুলি দেখানো। যেহেতু আমি জানতে পেরেছি যে I2C ডেটা স্থানান্তর খুব ধীর ছিল, আমি প্রতি পালস মাত্র একটি অক্ষর আপডেট করতে কোডে পরিবর্তন করেছি।

2. ন্যূনতম মান পদ্ধতি

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

এর ক্ষতিপূরণ দেওয়ার জন্য, আমি একটি "সীমানা" তৈরি করেছি যার মধ্যে মান নির্ভরযোগ্য ছিল। I. ই। যখন প্রত্যাশিত মান থেকে টাইমার 1 এর 35 টি চক্রের বেশি মান দূরে ছিল, তখন এই মানগুলি উপেক্ষা করা হয়েছিল (নির্দেশিকাতে "কিভাবে একটি Arduino ভিত্তিক মেটাল ডিটেক্টর প্রোগ্রাম করতে হবে") বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে)

এই পদ্ধতিটি খুব স্থিতিশীল বলে প্রমাণিত হয়েছে।

3. ভোল্টেজ

টিমোর মূল নকশাটি 5 ভোল্টের নিচে চালিত। যেহেতু আমার অনুমান ছিল "আরো ভোল্ট = আরো শক্তি = আরো সংবেদনশীলতা" আমি 12V দিয়ে শুরুতে ইউনিটটি চালিত করেছি। এর ফলে MOSFET গরম হয়ে যায়। এই হিটিং-আপের ফলে পরিমাপকৃত মানগুলির একটি সাধারণ ড্রিফট হয়, যা ডিটেক্টরের ঘন ঘন পুনরায় ভারসাম্য বজায় রাখে। ভোল্টেজ কমিয়ে 5V করে MOSFET এর তাপ প্রজন্মকে এমন একটি স্তরে কমিয়ে আনা যায় যেখানে রিডিংয়ের প্রায় কোন প্রবাহ দেখা যায় নি। এটি সার্কিটটিকে আরও সহজ করে তুলেছিল, কারণ আরডুইনো-এর অন-বোর্ড ভোল্টেজ নিয়ন্ত্রকের আর প্রয়োজন ছিল না।

একটি MOSFET এর জন্য আমি প্রাথমিকভাবে IRL540 বেছে নিয়েছি। এই MOSFET যুক্তি স্তরের সাথে সামঞ্জস্যপূর্ণ, কিন্তু 100V এর সর্বোচ্চ ভোল্টেজ রেটিং রয়েছে। আমি 200V রেটিং সহ একটি IRL640 তে পরিবর্তনের জন্য আরও ভাল পারফরম্যান্সের আশা করছিলাম। দুর্ভাগ্যবশত ফলাফল একই ছিল। সুতরাং একটি IRL540 অথবা একটি IRL640 কাজটি করবে।

ধাপ 3: চূড়ান্ত ফলাফল

চূড়ান্ত ফলাফল
চূড়ান্ত ফলাফল
চূড়ান্ত ফলাফল
চূড়ান্ত ফলাফল
চূড়ান্ত ফলাফল
চূড়ান্ত ফলাফল

ডিটেক্টরের সুবিধা হল যে এটি মূল্যবান এবং লৌহঘটিত উপাদানের মধ্যে পার্থক্য করে। অসুবিধা হল, এই সহজ পরিকল্পিত সঙ্গে সংবেদনশীলতা যে ভাল না। পারফরম্যান্সের তুলনা করতে আমি ফ্লিপ-কয়েল ডিটেক্টরের মতো একই রেফারেন্স ব্যবহার করেছি। সম্ভবত কিছু pinpointing জন্য ভাল, কিন্তু সম্ভবত বাস্তব অনুসন্ধানের জন্য হতাশাজনক।

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

48 মিমি turns 100 মিমি দিয়ে কুণ্ডলী ব্যবহার করে ফলাফল অর্জন করা হয়েছিল।

বরাবরের মত, মতামতের জন্য খুলুন

প্রস্তাবিত: