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


ফ্লেম সেন্সর মডিউলটি শিখা শনাক্ত করতে একটি ইনফ্রারেড LED ব্যবহার করে কাজ করে। যখন একটি শিখা শনাক্ত হয়, মডিউলটি একটি সংকেত আউটপুট করে যা অন্যান্য উপাদান, যেমন একটি বাজার বা একটি LED সক্রিয় করতে ব্যবহার করা যেতে পারে। এই প্রকল্পে ফ্লেম সেন্সরটি Arduino-এর সাথে সংযুক্ত করা এবং ইনপুট ও আউটপুট পরিচালনা করার জন্য একটি সহজ প্রোগ্রাম লেখা জড়িত থাকবে।
কোড এবং ওয়্যারিং সম্পর্কে আরও স্পষ্ট ধারণার জন্য, আমি আপনাকে সংশ্লিষ্ট ভিডিওটি দেখতে উৎসাহিত করছি (ভিডিওতে 00:00 সময়ে)।
হার্ডওয়্যার ব্যাখ্যা
এই প্রকল্পের প্রধান উপাদানগুলির মধ্যে রয়েছে ফ্লেম সেন্সর মডিউল, একটি Arduino বোর্ড এবং সতর্কতার জন্য একটি বাজার বা LED। ফ্লেম সেন্সরের চারটি পিন রয়েছে: একটি ডিজিটাল আউটপুট পিন (DO), একটি অ্যানালগ আউটপুট পিন (AO), একটি পাওয়ার পিন (VCC) এবং একটি গ্রাউন্ড পিন (GND)। ডিজিটাল আউটপুট পিনটি যখন একটি শিখা শনাক্ত হয় তখন একটি HIGH সংকেত পাঠায়, যখন অ্যানালগ আউটপুট শিখার তীব্রতার উপর ভিত্তি করে পরিবর্তনশীল মান প্রদান করে।
Arduino ডিজিটাল আউটপুট পড়ে নির্ধারণ করে যে একটি শিখা উপস্থিত আছে কিনা। যখন সেন্সর একটি শিখা শনাক্ত করে, তখন Arduino একটি আউটপুট পিন ব্যবহার করে একটি অ্যালার্ম বা আলো সক্রিয় করতে পারে। শিখা শনাক্তকরণের সংবেদনশীলতা মডিউলের একটি অন্তর্নির্মিত পটেনশিওমিটার ব্যবহার করে সামঞ্জস্য করা যেতে পারে।
ডেটাশিট বিবরণ
| প্রস্তুতকারক | জেনেরিক |
|---|---|
| পার্ট নম্বর | LM393 |
| লজিক/IO ভোল্টেজ | 5 V |
| সাপ্লাই ভোল্টেজ | 2–36 V |
| আউটপুট কারেন্ট (প্রতি চ্যানেল) | 20 mA |
| পিক কারেন্ট (প্রতি চ্যানেল) | 50 mA |
| PWM ফ্রিকোয়েন্সি নির্দেশিকা | প্রযোজ্য নয় |
| ইনপুট লজিক থ্রেশহোল্ড | 0.8 V (নিম্ন), 2.0 V (উচ্চ) |
| ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন | 0.2 V |
| থার্মাল সীমা | 125 °C |
| প্যাকেজ | TO-220 |
| নোট / ভেরিয়েন্ট | সামঞ্জস্যযোগ্য সংবেদনশীলতা |
- মডিউলের জন্য 2 থেকে 36 V এর মধ্যে সঠিক ভোল্টেজ সরবরাহ নিশ্চিত করুন।
- সর্বোত্তম শিখা শনাক্তকরণের জন্য সেন্সরের ইনফ্রারেড LED পরিষ্কার রাখুন।
- যদি মডিউলটি তার পিক কারেন্ট সীমার কাছাকাছি কাজ করে তবে একটি হিটসিংক ব্যবহার করুন।
- শর্ট সার্কিট বা ভুল সংযোগ এড়াতে ওয়্যারিংয়ে সতর্ক থাকুন।
- বিভিন্ন অ্যাপ্লিকেশনের জন্য অনবোর্ড পটেনশিওমিটার ব্যবহার করে সংবেদনশীলতা সামঞ্জস্য করুন।
- যাচাই করুন যে অ্যালার্ম আউটপুট সংযুক্ত লোড (বাজার/LED) পরিচালনা করতে পারে।
ওয়্যারিং নির্দেশাবলী


ফ্লেম সেন্সর মডিউলটি Arduino-এর সাথে সংযোগ করতে, প্রথমে ফ্লেম সেন্সরের VCC পিনটি Arduino-এর 5V পিনের সাথে সংযুক্ত করুন। তারপর, সেন্সরের GND পিনটি Arduino-এর একটি GND পিনের সাথে সংযুক্ত করুন। ফ্লেম সেন্সরের ডিজিটাল আউটপুট পিন (DO) Arduino-এর ডিজিটাল পিন 2-এর সাথে সংযুক্ত করা উচিত, যাকে আমরা কোডে FLAME হিসাবে উল্লেখ করব। অবশেষে, একটি অ্যালার্ম ডিভাইস, যেমন একটি বাজার, Arduino-এর ডিজিটাল পিন 8-এর সাথে সংযুক্ত করুন, যাকে ALARM হিসাবে উল্লেখ করা হয়।
নিশ্চিত করুন যে সমস্ত সংযোগ নিরাপদ, কারণ আলগা সংযোগ অসামঞ্জস্যপূর্ণ আচরণের দিকে নিয়ে যেতে পারে। আপনি যদি অ্যানালগ আউটপুট ব্যবহার করতে চান, তাহলে অ্যানালগ আউটপুট পিন (AO) Arduino-এর একটি অ্যানালগ পিনের সাথে সংযুক্ত করুন, যেমন A0, তবে এটি মৌলিক কার্যকারিতার জন্য ঐচ্ছিক। ভিডিওতে, বিকল্প ওয়্যারিং পদ্ধতিগুলিও আলোচনা করা হয়েছে (ভিডিওতে 02:30 সময়ে)।
কোড উদাহরণ ও ব্যাখ্যা
নিম্নলিখিত কোড স্নিপেট ফ্লেম সেন্সরটি আরম্ভ করে এবং সিরিয়াল মনিটর সেট আপ করে:
#define FLAME 2 // সেন্সরের DO পিন এই পিনে সংযুক্ত করুন
#define ALARM 8 // অ্যালার্মের জন্য পিন 8
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT); // FLAME ইনপুট পিন সংজ্ঞায়িত করুন
pinMode(ALARM, OUTPUT); // ALARM আউটপুট পিন সংজ্ঞায়িত করুন
}
এখানে, আমরা ফ্লেম সেন্সর এবং অ্যালার্মের জন্য পিনগুলি সংজ্ঞায়িত করি এবং 9600 বাউডে সিরিয়াল যোগাযোগ আরম্ভ করি। এটি আমাদের ডিবাগিংয়ের জন্য সিরিয়াল মনিটরে বার্তা মুদ্রণ করতে দেয়।
এরপর, আমরা মূল লুপে ফ্লেম সেন্সরটি পড়ি:
void loop() {
int fire = digitalRead(FLAME); // FLAME সেন্সর পড়ুন
if(fire == HIGH) {
digitalWrite(ALARM, HIGH); // বাজার চালু করুন
Serial.println("Fire! Fire!");
} else {
digitalWrite(ALARM, LOW); // বাজার বন্ধ করুন
Serial.println("Peace");
}
delay(200);
}
কোডের এই অংশটি ফ্লেম সেন্সরের অবস্থা পরীক্ষা করে। যদি এটি একটি শিখা শনাক্ত করে (HIGH), এটি অ্যালার্ম সক্রিয় করে এবং সিরিয়াল মনিটরে "Fire! Fire!" মুদ্রণ করে। যদি কোনও শিখা না থাকে (LOW), এটি অ্যালার্ম বন্ধ করে এবং "Peace" মুদ্রণ করে। লুপটিতে 200 মিলিসেকেন্ডের একটি বিলম্ব অন্তর্ভুক্ত রয়েছে, যা শনাক্তকরণের সংবেদনশীলতা পরিবর্তন করতে সামঞ্জস্য করা যেতে পারে।
প্রদর্শন / কী আশা করবেন
যখন সিস্টেমটি চালু হয়, সিরিয়াল মনিটর "Robojax.com Fire Module Test" প্রদর্শন করবে এবং তারপরে "Peace" যতক্ষণ না একটি শিখা শনাক্ত হয়। একবার একটি শিখা শনাক্ত হলে, বাজারটি বাজবে এবং LED আলোকিত হবে, যা একটি আগুনের অবস্থা নির্দেশ করে। আপনি মডিউলের পটেনশিওমিটার সামঞ্জস্য করে সেন্সরের সংবেদনশীলতা পরীক্ষা করতে পারেন। মিথ্যা ইতিবাচক সম্পর্কে সতর্ক থাকুন, যেমন রিমোট কন্ট্রোলের ইনফ্রারেড সংকেত দ্বারা সৃষ্ট (ভিডিওতে 04:15 সময়ে)।
ভিডিও টাইমস্ট্যাম্প
- 00:00 - ফ্লেম সেন্সর মডিউলের ভূমিকা
- 02:30 - ওয়্যারিং নির্দেশাবলী
- 04:15 - শিখা শনাক্তকরণের প্রদর্শন
/*
* This is code for a Flame Sensor module for Arduino.
* Watch the video https://youtu.be/OZkZIP3KlHQ
* Other Arduino libraries and videos https://robojax.com
* *
Flame Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on January 18, 2018 at 22:21 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*
*/
/*
What does it do?
When the infrared diode sees the flame, it sends the digital output DO to
also, the level of flame is represented with the analog output.
*/
// 4 Infrared Obstacle code for Robojax.com
#define FLAME 2 // connect DO pin of sensor to this pin
#define ALARM 8 // pin 8 for Alarm
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT);//define FLAME input pin
pinMode(ALARM, OUTPUT);//define ALARM output pin
// Flame sensor code for Robojax.com
}
void loop() {
// Flame sensor code for Robojax.com
int fire = digitalRead(FLAME);// read FLAME sensor
if( fire == HIGH)
{
digitalWrite(ALARM,HIGH);// set the buzzer ON
Serial.println("Fire! Fire!");
}else{
digitalWrite(ALARM,LOW); // Set the buzzer OFF
Serial.println("Peace");
// Flame sensor code for Robojax.com
}
delay(200);
}
সম্পদ ও রেফারেন্সসমূহ
-
বাহ্যিকLM393 datasheet (PDF)ti.com
ফাইলসমূহ📁
কোনো ফাইল উপলব্ধ নেই।