يمكن أن ننجز مشروع و نتحكّم فيه بإستعمال جهاز تحكّم عن بعد بتقنيّة الأشعّة تحت الحمراء (Télécommande infra-rouge)
ليكون هناك تحكّم عن بعد يجب توفير دارة الباث (جهاز تحكّم عن بعد) ودارة المتقبّل (مشروع يحتوي على أردوينو و مكوّن لتقبّل أشعّة تحت الحمراء
1-جهاز تحكّم عن بعد
يمكن إستعما أي جهاز تحكّم عن بعد(خاصة بالتلفاز أو لعبة إلكترونيّة…)
سنستعمل في تجاربنا هذاالجهاز التحكّم المتوفّر في موقع

مهما كان الزرالمضغوط عليه فإن الجهاز التحكّم عن بعد سرسل أشعّة تحت الحمراء في شكل رموز
2- متقبّل للأشعّة تحت الحمراء (Capteur infrarouge)
هناك عدّة أنواع من مكوّنات المتقبّلة للأشعّة تحت الحمراء (متكوّنة من قطبين أو 3 أقطاب)
سنعتمد في هذا الدرس على النوع الثّاني

- القطب الأوّل يركّب في الموجب
- القطب الثّاني يركّب في السّالب
- القطب الثالث يركّب في أحد المنافذ للوحة أردوينو
الدّارة الكهربائيّة البسيطة

لقد قمنا بإنجاز دارة كهربائيّة المتكوّنة من جهاز تحكّم عن بعد للأشعة تحت الحمراء و مكوّن لتقبّل الأشعّة تحت الحمراء وصمام المشع لتحكّم فيه
الهدف الأوّل من هذه التجربة قراءة الرموز المرسلة من جهاز تحكم عن بعد عند الضغط على الأزرار
و الهدف الثاني إستغلال رمز لأي زر لإضاءة الصمام المشع و زر الأحمر لإطفاء الصمام المشع
العديد من المكوّنات الإلكترونيّة يجب البحث في الأنترنات عن المكتبات الخاصة بها لتوفير العشارات من الأسطر و ربح للوقت و غالبا هذه المكتبات تكون مجرّبة و بدون أخطاء
برنامج جهاز التحكّم
#include <IRremote.h>
IRrecv rec(2); //here put receiver pin
decode_results res;
void setup() {
Serial.begin(9600);
rec.enableIRIn();
pinMode(13,OUTPUT);
digitalWrite(13,LOW);}
void loop() {
if (rec.decode(&res)){
Serial.println(res.value );
if(res.value==0x707005FA){
digitalWrite(13,HIGH);}
else if(res.value==0x7070857A){
digitalWrite(13,LOW); }
rec.resume();
}
}
ملاحظة بالنسبة للسطر الثاني IRrecv rec(2)
يجب التعديل على المنفذ و تغيير رقم المنفذ الذي تمّ إدخال فيه القطب الثالث من المكوّن المتلقّي للأشعة تحت الحمراء و حسب دارتنا إستعملت المنفذ 2
تمّت إضافة Serial.println(res.value )
لإخراج الرموز جهاز تحكّم عن بعد حسب الأزرر
و هذه بعض الأكواد المتحصّل عليها
زر رقم 0 | 16593103 |
زر رقم 1 | 16582903 |
زر رقم 2 | 16615543 |
زر رقم 3 | 16599223 |
زر رقم 4 | 16591063 |
زر رقم 5 | 16623703 |
زر رقم 6 | 16607383 |
زر رقم 7 | 16586983 |
زر رقم 8 | 16619623 |
زر رقم 9 | 16603303 |
زر الأحمر إغلاق | 16580863 |
زر التشغيل | 16621663 |
شاهد هذا الفيديو أكثر توضيحا
الآن نعدّل على البرنامج لكي عند الضغط على الزر 1 يضيء الصمام المشع و يصبح كالأتي
الصمام المشع في المنفذ رقم 3
#include <IRremote.h>
IRrecv rec(2); //here put receiver pin
decode_results res;
void setup() {
Serial.begin(9600);
rec.enableIRIn();
pinMode(3,OUTPUT);
}
void loop() {
if (rec.decode(&res)){
Serial.println(res.value );
if(res.value==16582903){
digitalWrite(3,HIGH);}
rec.resume();
}
}
شاهد هذا الفيديو لأكثر تفاصيل
و هذا رابط لهذا التمرين على موقع tinkercad
تمرين ثاني
تعديل على الدّارة السابقة و لكن في هذه المرّة تحتوي على 9 صمامات مشعّة و مكرك كهربائي مثل هذه الدّارة الكهربائيّة

نريد
عند الضغط على الزر رقم 1 يضيء الصمام المشع رقم 1
عند الضغط على الزر رقم 2 يضيء الصمام المشع رقم 2
عند الضغط على الزر رقم 3 يضيء الصمام المشع رقم 3
عند الضغط على الزر رقم 4 يضيء الصمام المشع رقم 4
عند الضغط على الزر رقم 5 يضيء الصمام المشع رقم 5
عند الضغط على الزر رقم 6 يضيء الصمام المشع رقم6
عند الضغط على الزر رقم 7 يضيء الصمام المشع رقم 7
عند الضغط على الزر رقم 8 يضيء الصمام المشع رقم 8
عند الضغط على الزر رقم 9 يضيء الصمام المشع رقم 9
عند الضغط على الزر رقم 0 يشتغل المحرّك
عند الضغط على الزر الأحمر تنطفئ كل الصمامات المشعّة و بتوقّف المحرّك عن الدواران
وعند الضغط على الزر التشغيل play كل العناصر تشتغل
شاهد هذا الفيديو لأكثر توضيح
حاول أن تنجز التمرين قبل مشاهدة هذا الإصلاح
#include <IRremote.h>
IRrecv rec(2); //here put receiver pin
decode_results res;
void setup() {
Serial.begin(9600);
rec.enableIRIn();
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(13,OUTPUT);
}
void loop() {
if (rec.decode(&res)){
Serial.println(res.value );//delay(1000);
if(res.value==16593103){
digitalWrite(13,HIGH);}
else if(res.value==16582903){digitalWrite(3,HIGH);}
else if(res.value==16615543){digitalWrite(4,HIGH);}
else if(res.value==16599223){digitalWrite(5,HIGH);}
else if(res.value==16591063){digitalWrite(6,HIGH);}
else if(res.value==16623703){digitalWrite(7,HIGH);}
else if(res.value==16607383){digitalWrite(8,HIGH);}
else if(res.value==16586983){digitalWrite(9,HIGH);}
else if(res.value==16619623){digitalWrite(10,HIGH);}
else if(res.value==16603303){digitalWrite(11,HIGH);}//16621663
else if(res.value==16621663){
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(13,HIGH);
}
else if(res.value==16580863){
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(13,LOW);
}
rec.resume();
}
}
شاهد هذا التمرين على موقع Tinkercad
أي إستفسار أو إقتراح حول هذا التمرين الرجاء إضغط هنا