 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
14-03-2020, 11:52 AM
المشاركة 1
|
|
ربط كاشف اللهب Flame Sensor مع الاردوينو لبناء نظام إنذار حريق Fire Alarm System
الدائرة الكهربية :


البرنامج :
كود:
int buzzer = 8;
int LED = 7;
int flame_sensor = 4;
int flame_detected;
void setup()
{
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(flame_sensor, INPUT);
}
void loop()
{
flame_detected = digitalRead(flame_sensor);
if (flame_detected == 1)
{
Serial.println("Flame detected...! take action immediately.");
digitalWrite(buzzer, HIGH);
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}
else
{
Serial.println("No flame detected. stay cool");
digitalWrite(buzzer, LOW);
digitalWrite(LED, LOW);
}
delay(1000);
}
شرح البرنامج :
1- في مقدمة البرنامج تقوم بتعريف أطراف مستشعر اللهب ، و LED والجرس المرتبطين بالاردوينو Arduino. يتم توصيل مستشعر اللهب بالطرف الرقمي 4 من Arduino. الجرس متصل بالطرف الرقمي 8 من Arduino. يتم توصيل LED بالطرف الرقمي 7 من Arduino.
يستخدم المتغير "flame_detected" لتخزين القيمة الرقمية المقروءة من مستشعر اللهب. بناءً على هذه القيمة سنكتشف وجود اللهب.
كود:
int buzzer = 8 ;
int LED = 7 ;
int flame_sensor = 4 ;
int flame_detected ;
2- فى دالة الإعداد setup يتم تحديد حالة الأطراف الرقمية للاردوينو وتهيئة معدل البود Baud rate لمنفذ الاتصال التسلسلى لعرض حالة دائرة اكتشاف اللهب .
كود:
void setup()
{
Serial.begin(9600) ;
pinMode(buzzer, OUTPUT) ;
pinMode(LED, OUTPUT) ;
pinMode(flame_sensor, INPUT) ;
}
3- فى الدالة loop :
أ- فى السطر الأول يتم قراءة الخرج الرقمى من حساس اللهب وتخزينه قى المتغير flame_detected :
كود:
flame_detected = digitalRead(flame_sensor) ;
ب- بناء على القيمة المخزنة فى المتغير flame_detected ، علينا تشغيل إو إيقاف الصفارة والليد ، حيث يتم مقارنة هذه القيمة مع 0 أو 1 . إذا كانت تساوى 1 فهذا يشير إلى اكتشاف لهب ، وعلينا تشغيل الصفارة والليد وعرض رسالة على المنفذ التسلسلى . وإذا كانت بصفر ، فهذا يشير إلى عدم اكتشاف لهب ، وعلينا إيقاف الصفارة والليد . هذه العملية تتكرر كل ثانية للتعرف على وجود حريق أو لهب .
كود:
if (flame_detected == 1)
{
Serial.println("Flame detected...! take action immediately.");
digitalWrite(buzzer, HIGH);
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}
else
{
Serial.println("No flame detected. stay cool");
digitalWrite(buzzer, LOW);
digitalWrite(LED, LOW);
}
delay(1000);
|