حساس الأشعة تحت الحمراء IR
مقدمة
تم اكتشاف الأشعة تحت الحمراء بالصدفة من قبل عالم فلك يُدعى ويليام هيرشل في
عام 1800، أثناء قياس درجة حرارة كل لون من الضوء، حيث لاحظ أن درجة الحرارة
خلف الضوء الأحمر كانت أعلى.
الأشعة تحت الحمراء غير مرئية للعين البشرية، لأن طولها الموجي أطول من الضوء
المرئي (على الرغم من أنها لا تزال على نفس الطيف الكهرومغناطيسي)، وتصدر أشعة
تحت الحمراء عن أي شيء ينبعث منه حرارة.
ما هو حساس الأشعة تحت الحمراء وكيف يعمل
جهاز إلكتروني يتكون الحساس من مرسل ومستقبل يعملان بالاشعة تحت الحمراء, يتم ارسال اشارة من المرسل وفي حال وجود حاجز أو جسم أمام الحساس تنعكس الاشارة ويتم استقبالها من قبل المستقبل فالحساس لا يقوم بقياس المسافة وإنما فقط يقوم باستشعار الاجسام الموجودة أمامه.
التطبيقات الرئيسية لحساس الأشعة تحت الحمراء
- يستخدم في عمل روبوت تجنب العوائق, فكما ذكرنا أن وظيفة هذا الحساس هو الاستشعار فيما إذا كان هنك أي جسم أمامه.
- يستخدم في عمل روبوت تتبع المسار, من خلال الاعتماد على اللون الأسود فكما نعلم أن اللون الأسود يمتص الأشعة تحت الحمراء على عكس اللون الأبيض الذي يقوم بعكسها.
مكونات حساس الأشعة تحت الحمراء
- مرسل ومستقبل أشعة تحت الحمراء
- مقاومة متغيرة لتحديد مجال الاستشعار.
- مقارن جهد LM358.
- ليد خاص بالتغذية.
- ليد خاص بالخرج.
مواصفات حساس الأشعة تحت الحمراء
- جهد العمل: 3.3 الى 5 فولت
- تيار العمل: 20 مللي أمبير تقريباً
- مجال الاستشعار: 2 الى 10 سم
- زاوية الاستشعار: 35 درجة تقريباً
العناصر المستخدمة لعمل المشروع
- أردوينو أونو
- حساس IR
- أسلاك توصيل
- bread board
مخطط التوصيل
الكود البرمجي
int IRSensor = 9; // connect IR sensor module to Arduino pin D9
int LED = 13; // connect LED to Arduino pin 13
void setup(){
Serial.begin(9600); // Init Serial at 115200 Baud Rate.
pinMode(IRSensor, INPUT); // IR Sensor pin INPUT
pinMode(LED, OUTPUT); // LED Pin Output
}
void loop(){
int sensorStatus = digitalRead(IRSensor); // Set the GPIO as Input
if (sensorStatus == 1) // Check if the pin high or not
{
// if the pin is high turn off the onboard Led
digitalWrite(LED, LOW); // LED LOW
Serial.println("Motion Detected!"); // print Motion Detected! on the serial monitor window
}
else {
//else turn on the onboard LED
digitalWrite(LED, HIGH); // LED High
Serial.println("Motion Ended!"); // print Motion Ended! on the serial monitor window
}
}