بــــسم الله الرحمن الرحيــــم
في هذ الجزء سنتحدث عن الحساسات المستخدمه في الروبوت و طريقة توصيلها ,
و برمجة الاردوينو .
و برمجة الاردوينو .
اولاً | الـحـسـاسـات :
• حساس الغازات MQ-5 :
يستخدم هذا الحساس لتحديد وجود بعض انواع الغازات ( مثل غاز الطبخ المنزلي ) !
تتغير مقاومة الحساس بتغير تركيز الغاز , يمكن الرجوع للنشرة الفنية للحساس لمعرفة قيمة مقاومة الحساس عند نسبة غاز محددة , و معرفة القيمة التي سيقرأها الاردوينو ( بعد معرفة قيم المقاومات الخارجية المضافة للحساس و فرق الجهد المطبق عليه ) !
او يمكن ببساطة تجريب الحساس و اخذ قراءات بدون وجود الغاز , و بعد وجود الغاز , و اختيار قيمة لنعتبرها حد فاصل بين القيم الطبيعية و الخطرة !
تتغير مقاومة الحساس بتغير تركيز الغاز , يمكن الرجوع للنشرة الفنية للحساس لمعرفة قيمة مقاومة الحساس عند نسبة غاز محددة , و معرفة القيمة التي سيقرأها الاردوينو ( بعد معرفة قيم المقاومات الخارجية المضافة للحساس و فرق الجهد المطبق عليه ) !
او يمكن ببساطة تجريب الحساس و اخذ قراءات بدون وجود الغاز , و بعد وجود الغاز , و اختيار قيمة لنعتبرها حد فاصل بين القيم الطبيعية و الخطرة !
بعد تجريب الحساس , اعتبرنا انه اذا كانت قراءة الحساس اكبر من 300 تعتبر نسبة الغاز خطرة !!
توصيل الحساس كالتالي :
• حساس اللهب :
حساس اللهب هو عبارة عن مستقبل اشعة تحت الحمراء , لأن لهب النار لديه طول موجي محدد يصنف بانه اشعة تحت حمراء ! و بالتالي يمكن تحديد وجود الحريق من خلال هذه الاشعة !
و يمكن تجريب الحساس لمعرفة القراءات التي يعطيها , و تعديل حساسيته من خلال تعديل قيمة المقاومة المتغيرة المضافه له .
توصيل الحساس يكون كالتالي :
• حساس الحرارة :
حساس الحرارة من نوع LM35 ..
هذا الحساس ايضاً تتغير مقاومة بتغير درجة الحرارة المحيطة به , و يمكن حساب درجة الحرارة من خلال معادلة بسيطة .
يتم توصيله كالتالي :
• حساس المسافة :
استخدمنا حساس من نوع Ultrasonic HC - SR04
استخدمنا حساس من نوع Ultrasonic HC - SR04
يمكنك التعرف اكثر على هذا الحساس من خلال هذه المقالة :
و يتم توصيله كالتالي :
و بالنهاية نحتاج لتوصيل طنان كهربائي (Buzzer) لإصدار صوت التنبيه
نقوم بتوصيله كما في الصورة :
شكل الروبوت النهائي :
ثانياً | برمجة الاردوينو :
التوصيلات مع الاردوينو كما في الشكل :
نقوم بكتابة البرنامج التالي (تتبعه جيداً ) لينفذ الروبوت الوظائف التي ذكرناها في بداية المقال :
/*
Ali Hadabeen 13/1/2014
Full experiment at : ali-madness.blogspot.com
*/
#define Buzzer 11
#define trigPin 12
#define echoPin 13
const int IN1=3;
const int IN2=5;
const int IN3=6;
const int IN4=9;
int Flame_sensor = 0;
int Gas_sensor = 0;
int Temp_sensor = 0;
int SPEED_Control=200;
void setup() {
// fIRST , define the Motor's pin as an OUTPUT
pinMode( IN1 ,OUTPUT);// Right Motor 1st wire
pinMode( IN2 ,OUTPUT);// Right Motor 2nd wire
pinMode( IN3 ,OUTPUT);// left Motor 1st wire
pinMode( IN4 ,OUTPUT);// left Motor 2nd wire
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode( Buzzer ,OUTPUT);// Right Motor 1st wire
Serial.begin(9600);
}
void BACKWARD(int Speed){
//When we want to let Motor To Rotate clock wise
// just void this part on the loop section .
analogWrite(IN1,0);
analogWrite(IN2,Speed);
analogWrite(IN3,Speed);
analogWrite(IN4,0);
}
void FORWARD (int Speed){
//When we want to let Motor To Rotate Counter clock wise
// just void this part on the loop section .
analogWrite(IN1,Speed);
analogWrite(IN2,0);
analogWrite(IN3,0);
analogWrite(IN4,Speed);
}
void LEFT(int Speed){
//When we want to let Motor To Rotate Counter clock wise
// just void this part on the loop section .
analogWrite(IN1,0);
analogWrite(IN2,Speed);
analogWrite(IN3,0);
analogWrite(IN4,Speed);
}
void RIGHT(int Speed){
//When we want to let Motor To Rotate Counter clock wise
// just void this part on the loop section .
analogWrite(IN1,Speed);
analogWrite(IN2,0);
analogWrite(IN3,Speed);
analogWrite(IN4,0);
}
void Stop(){
//When we want to let Motor To Rotate clock wise
// just void this part on the loop section .
analogWrite(IN1,0);
analogWrite(IN2,0);
analogWrite(IN3,0);
analogWrite(IN4,0);
}
void loop()
{
// --------------- Gas -------------------------------------
Gas_sensor = analogRead(A0);
if ( Gas_sensor > 300 )
{ Stop();
while (1){
digitalWrite(Buzzer , HIGH );
delay(60);
digitalWrite(Buzzer , LOW );
delay(60);}
}
//-----------------------------------------------------------
// --------------- Flame -----------------------------------
Flame_sensor = analogRead(A1);
if ( Flame_sensor < 950 )
{ Stop();
while (1){
digitalWrite(Buzzer , HIGH );
delay(60);
digitalWrite(Buzzer , LOW );
delay(60);}
}
//-----------------------------------------------------------
// --------------- Temp. -----------------------------------
Temp_sensor = analogRead(A2);
if ( Temp_sensor > 100 )
{ Stop();
while (1){
digitalWrite(Buzzer , HIGH );
delay(60);
digitalWrite(Buzzer , LOW );
delay(60);}
}
//-----------------------------------------------------------
// --------------- Ultrasonic ------------------------------
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if ( distance < 10 )
{ Stop();
digitalWrite(Buzzer , HIGH );
delay(100);
digitalWrite(Buzzer , LOW );
delay(100);
digitalWrite(Buzzer , HIGH );
delay(100);
digitalWrite(Buzzer , LOW );
BACKWARD (SPEED_Control);
delay(200);
Stop();
}
//-----------------------------------------------------------
// -------------- Drive the Robot --------------------------
if (Serial.available())
{
int BluetoothData=Serial.read();
if(BluetoothData=='F'){ // if number 1 pressed ....
FORWARD(SPEED_Control);
}
if(BluetoothData=='B'){ // if number 1 pressed ....
BACKWARD(SPEED_Control);
}
if(BluetoothData=='L'){ // if number 1 pressed ....
RIGHT(SPEED_Control);
}
if(BluetoothData=='R'){ // if number 1 pressed ....
LEFT(SPEED_Control);
}
if(BluetoothData=='S'){ // if number 1 pressed ....
Stop();
}
if(BluetoothData=='0'){ SPEED_Control=0 ;}//Speed
if(BluetoothData=='1'){ SPEED_Control=50; }//Speed
if(BluetoothData=='2'){ SPEED_Control=100; }//Speed
if(BluetoothData=='3'){ SPEED_Control=120; }//Speed
if(BluetoothData=='4'){ SPEED_Control=140; }//Speed
if(BluetoothData=='5'){ SPEED_Control=160; }//Speed
if(BluetoothData=='6'){ SPEED_Control=180; }//Speed
if(BluetoothData=='7'){ SPEED_Control=200; }//Speed
if(BluetoothData=='8'){ SPEED_Control=220; }//Speed
if(BluetoothData=='9'){ SPEED_Control=240; }//Speed
if(BluetoothData=='q'){ SPEED_Control=255; }//Speed
}
//--------------------------Debug----------------------------
/*
Serial.println ("Gas_sensor = " );
Serial.println (Gas_sensor);
Serial.println ("Flame_sensor =");
Serial.println (Flame_sensor);
Serial.println ("Temp_sensor =");
Serial.println (Temp_sensor);
Serial.println ("-------------");
delay(300);
*/
//-----------------------------------------------------------
}
لماذا في متحسس الدخان تم مقارنته ب 300ممكن توضيح
ردحذفالقيمة 300 هي قيمة تجريبية .
حذفقمت بتجربة الحساس بأخذ القراءات عند وجود نسبة معينه من الغاز !!
اذا اردت استخدام الحساس بشكل دقيق يمكنك الرجوع للنشرة الفنية الخاصة بالحساس و حساب مقاومة الحساس الداخلية عند نسبة غاز محددة و و حساب قراءة الحساس من خلال قانون اوم !
ممكن نعرف حساس المسافه شنو فائدته
ردحذفشركة الأوائل توب في النقل و التخزين بالرياض 0506003079
ردحذفتعتبر شركة الأوائل توب في النقل والتخزين من أفضل الشركات في مجال النقل والتخزين ومن أهم مميزات شركتنا في هذا المجال ما يلي فهي تمتلك أسطول من السيارات مجهزة على أعلى مستوى من التجهيزات الحديثة و كذلك مجموعه من العمالة المدربة علي أعلى مستوى من الفنيات والمدربة علي التعامل بحرفية مع جميع أجهزة النقل والأوناش والناقلات الكبيرة
شركة نقل اثاث بالرياض
شركة نقل عفش بالرياض
شركة تخزين عفش بالرياض
شركة شراء اثاث مستعمل بالرياض
شركة مقاولات عامة بالرياض
شركة صيانة مكيفات بالرياض
ردحذفشركة الأوائل توب للتنظيف وتسليك المجاري بالرياض 0506003079
تهتم الشركة بخدمات التنظيف بشكل عام وتوفر كافة أدوات التنظيف الحديثة وكافة المنظفات التي تستخدم في تلك العملية وتهتم بشكل خاص بكافة أجهزة تسليك المجاري والمنظفات التي تقوم بتسليك كافة العوالق التي تتسبب في سد المجاري بشكل كامل كما توفر السيارات التي تستخدم في نقل كافة المعدات إلي موقع العمل
شركة تسليك مجاري بالرياض
شركة تنظيف بيارات بالرياض
شركة كشف تسربات المياه بالرياض
شركة تنظيف خزانات بالرياض
شركة عزل فوم بالرياض
شركة عزل اسطح بالرياض
السلام عليكم
ردحذفانا الان اعمل على نفس المشروع والتسليم قريب جدا واستفدت كثيرا من الموقع ولكن الصور غير موجوده في الجزء الثاني
ممكن الحل للمشكلة؟؟؟
الحساسات الموجوده في الروبوت الحريق ومن مايتكون
ردحذف