شِفر (کود) آردوینو و ویدئو: ماجیول حساس(حس کننده) شعله برای آردوینو
در این آموزش، نحوهٔ استفاده از ماجیول حساس(حس کننده) شعله با آردوینو را بررسی خواهیم کرد. حساس(حس کننده) شعله وجود شعله را تشخیص میدهد و در صورت تشخیص میتواند آلارم یا یک نشانگر را فعال کند. در پایان این پروژه، شما یک سیستم عملی خواهید داشت که در هنگام تشخیص شعله با هشدار صوتی و نمایش بصری واکنش نشان میدهد.


ماجیول حساس(حس کننده) شعله با استفاده از یک الایدی مادونقرمز برای تشخیص شعله کار میکند. وقتی شعلهای شناسایی شود، ماجیول سیگنالی تولید میکند که میتوان از آن برای فعالسازی اجزای دیگر مانند بیزر یا الایدی استفاده کرد. این پروژه شامل سیمکشی حساس(حس کننده) شعله به آردوینو و نوشتن یک برنامهٔ ساده برای پردازش ورودی و خروجی خواهد بود.
برای درک بهتر شِفر (کود) و سیمکشی، توصیه میکنم ویدیوی مرتبط را از زمان 00:00 تماشا کنید.
توضیح سختافزار
اجزای اصلی در این پروژه شامل ماجیول حساس(حس کننده) شعله، یک برد آردوینو و یک بیزر یا LED برای هشدار است. حساس(حس کننده) شعله چهار پایه دارد: پایه خروجی دیجیتال (DO)، پایه خروجی آنالوگ (AO)، پایه تغذیه (VCC) و پایه زمین (GND). پایه خروجی دیجیتال هنگام تشخیص شعله سیگنال HIGH ارسال میکند، در حالی که خروجی آنالوگ مقادیر متغیری بر اساس شدت شعله ارائه میدهد.
آردوینو خروجی دیجیتال را میخواند تا تعیین کند آیا شعلهای وجود دارد یا خیر. وقتی حساس(حس کننده) شعله را تشخیص دهد، آردوینو میتواند با استفاده از یک پایه خروجی آلارم یا چراغ را فعال کند. حساسیت تشخیص شعله را میتوان با استفاده از پتانسیومتر داخلی روی ماجیول تنظیم کرد.
جزئیات برگه مشخصات
| تولیدکننده | عمومی |
|---|---|
| شماره قطعه | LM393 |
| ولتاژ منطق/ورودی-خروجی | ۵ ولت |
| ولتاژ تغذیه | 2-36 ولت |
| جریان خروجی (برای هر کانال) | 20 میلیآمپر |
| جریان اوج (به ازای هر کانال) | 50 mA |
| راهنمای فرکانس PWM | قابل اعمال نیست |
| آستانههای منطقی ورودی | 0.8 V (پایین)، 2.0 V (بالا) |
| افت ولتاژ / Rدرین-سورس (روشن)/ اشباع | 0.2 V |
| محدودیتهای حرارتی | ۱۲۵ درجه سانتیگراد |
| بسته | TO-220 |
| یادداشتها / واریانتها | حساسیت قابل تنظیم |
- برای ماجیول، تأمین ولتاژ مناسب بین 2 تا 36 V را تضمین کنید.
- برای تشخیص بهینهٔ شعله، LED مادونقرمز حساس(حس کننده) را پاک و بدون مانع نگه دارید.
- اگر ماجیول نزدیک به حد جریان پیک خود کار میکند، از هیتسینک استفاده کنید.
- در هنگام سیمکشی مراقب باشید تا از بروز اتصال کوتاه یا اتصالات نادرست جلوگیری شود.
- حساسیت را با استفاده از پتانسیومتر تعبیهشده روی برد برای کاربردهای مختلف تنظیم کنید.
- اطمینان حاصل کنید که خروجی آلارم میتواند بار متصل (بیزر/LED) را تحمل کند.
دستورالعملهای سیمکشی


برای سیمکشی ماجیول حساس(حس کننده) شعله به آردوینو، ابتدا پایه VCC حساس(حس کننده) شعله را به پایه 5V روی آردوینو وصل کنید. سپس پایه GND حساس(حس کننده) را به یکی از پایههای GND روی آردوینو متصل کنید. پایه خروجی دیجیتال (DO) از حساس(حس کننده) شعله باید به پایه دیجیتال 2 روی آردوینو متصل شود، که ما آن را بهعنوانFLAMEدر شِفر (کود). در نهایت، یک دستگاه هشداردهنده، مانند بیزر، را به پایه دیجیتال 8 روی آردوینو متصل کنید که به عنوانALARM.
مطمئن شوید که همهٔ اتصالات محکم هستند، زیرا اتصالات شل میتوانند منجر به رفتار ناپایدار شوند. اگر میخواهید از خروجی آنالوگ استفاده کنید، پایه خروجی آنالوگ (AO) را به یک پایه آنالوگ روی آردوینو مانند A0 متصل کنید، اما این برای عملکرد پایه اختیاری است. در ویدئو، روشهای سیمکشی جایگزین نیز مطرح شدهاند (در ویدئو در 02:30).
نمونههای شِفر (کود) و راهنمای گامبهگام
شِفر (کود) زیر حساس(حس کننده) شعله را مقداردهی اولیه کرده و نمایشگر مسلسل را راهاندازی میکند:
#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
}در اینجا پایههای حساس(حس کننده) شعله و آلارم را تعریف کرده و ارتباط سریال را با نرخ 9600 baud مقداردهی اولیه میکنیم. این به ما اجازه میدهد برای اشکالزدایی پیامها را در نمایشگر مسلسل چاپ کنیم.
سپس در حلقهٔ اصلی، حساس(حس کننده) شعله را میخوانیم:
void loop() {
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");
}
delay(200);
}این بخش از شِفر (کود) وضعیت حساس(حس کننده) شعله را بررسی میکند. اگر شعله را تشخیص دهد (HIGH)، آلارم را فعال میکند و پیام آتش! آتش! را در نمایشگر مسلسل چاپ میکند. اگر شعلهای وجود نداشته باشد (LOW)، آلارم را خاموش میکند و پیام آرامش را چاپ میکند. حلقه شامل تأخیر 200 میلیثانیهای است که میتوان آن را برای تغییر حساسیت تشخیص تنظیم کرد.
نمایش / چه انتظاری داشته باشید
هنگامی که سیستم روشن میشود، نمایشگر مسلسل عبارت Robojax.com Fire Module Test را نمایش میدهد و سپس عبارت Peace را تا زمان تشخیص شعله نشان میدهد. پس از تشخیص شعله، بیزر به صدا درمیآید و LED روشن میشود که نشاندهنده وضعیت آتش است. میتوانید حساسیت حساس(حس کننده) را با تنظیم پتانسیومتر روی ماجیول امتحان کنید. مراقب نتایج مثبت کاذب باشید، مانند مواردی که ناشی از سیگنالهای مادون قرمز ریموت کنترلها هستند (در ویدئو در 04:15).
برچسبهای زمانی ویدئو
- 00:00- معرفی ماجیول حساس(حس کننده) شعله
- ۰۲: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 (PDF)ti.com
فایلها📁
هیچ فایلی موجود نیست.