اردوينو IR دائرة التحكم عن بعد

جرب أداة القضاء على المشاكل





في هذا المنشور ، سنقوم بإنشاء مفتاح تحكم عن بعد لاسلكي قائم على Arduino يعتمد على الأشعة تحت الحمراء (IR) قابل للتخصيص ، والذي يتكون من جهاز تحكم عن بعد IR وجهاز استقبال ، يمكنك التعديل وفقًا لاحتياجاتك. في الجزء الأخير من المقالة ، نتعرف على نسخة مضمونة تمت ترقيتها لجهاز التحكم عن بعد بالأشعة تحت الحمراء والتي ستستجيب فقط للتردد المخصص بشكل فريد.

إذا كنت فوق مستوى المبتدئين يمكنك تحقيق ذلك بسهولة. تحتوي الدائرة المقترحة الموضحة هنا فقط على ثلاثة عناصر تحكم في جهاز التحكم عن بُعد و 3 مرحلات في نهاية جهاز الاستقبال. يمكنك تعديل الكود ومخطط الدائرة لتلبية احتياجاتك.



ستحتاج إلى لوحين من Arduino ، يعملان عن بُعد والآخر يعمل كمستقبل. أود أن أوصي بـ Arduino pro mini لهذا المشروع ، نظرًا لأن أحجامها صغيرة جدًا ويمكن تجنب الحجم الكلي لجهاز التحكم عن بُعد.

يمكنك استخدام Arduino pro mini الذي يعتمد على 3.3 فولت لجهاز التحكم عن بعد ، بحيث يمكنك تشغيله بخلية زرين أو بطاريتين بحجم AA ، وفقًا لاحتياجاتك.



تحتوي دارة إرسال الأشعة تحت الحمراء على 3 أزرار ضغط و LED IR لإرسال أوامر إلى جهاز الاستقبال. تمت برمجة كل زر برمز سداسي عشري فريد ، وتمت برمجة نفس الشفرة السداسية العشرية على جانب جهاز الاستقبال أيضًا.

عند الضغط على زر ، يرسل IR LED الرمز السداسي العشري إلى جهاز الاستقبال ، وسوف يتعرف جهاز الاستقبال على الزر الذي يتم الضغط عليه ويقوم بتبديل المرحل المقابل ON / OFF.

يستخدم جهاز التحكم عن بعد المقترح بروتوكول RC5 للتواصل مع جهاز الاستقبال ، يمكنك تغيير كل شيء عن طريق تعديل الكود.

إذا كنت مبتدئًا في Arduino ، فلا يزال بإمكانك إنجازه فقط اتبع المخطط وتحميل الكود دون تعديل.

الدائرة والبرنامج:

اردوينو الارسال عن بعد:

دائرة التحكم عن بعد IR مضمونة

توضح الدائرة أعلاه كيفية بناء جهاز الإرسال عن بعد Arduino IR.

المقاومات الثلاثة 10K هي مقاومات سحب لأسفل ، والتي تمنع التشغيل العرضي لجهاز التحكم عن بعد بسبب الشحن الثابت ويتم استخدام المقاوم الحد من التيار 220 أوم لـ IR LED.

برنامج جهاز الإرسال عن بعد:

//---------Program developed by R.Girish--------//
#include
IRsend irsend
const int button1 = 4
const int button2 = 5
const int button3 = 6
void setup() {
pinMode(button1, INPUT)
pinMode(button2, INPUT)
pinMode(button3, INPUT)
}
void loop()
{
if (digitalRead(button1) == HIGH)
{
delay(50)
irsend.sendRC5(0x80C, 32)
delay(200)
}
if (digitalRead(button2) == HIGH)
{
delay(50)
irsend.sendRC5(0x821, 32)
delay(200)
}
if (digitalRead(button3) == HIGH)
{
delay(50)
irsend.sendRC5(0x820, 32)
delay(200)
}
}
//---------Program developed by R.Girish--------//

جهاز استقبال اردوينو:

تتكون دائرة مستقبل IR Arduino كما هو موضح أعلاه من مستشعر TSOP1738 عدد قليل من الترانزستورات ، مقاومات الحد الحالية للترانزستور والمرحلات والثنائيات لامتصاص ارتفاع الجهد العالي من ملفات الترحيل.

مخطط الدائرة هو شرح ذاتي.

برنامج مستقبل اردوينو:

//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x80C // code received from button A
#define output2 0x821 // code received from button B
#define output3 0x820 // code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

باتباع التفسيرات أعلاه ، يمكنك إنجاز ثلاثة عناصر تحكم ، إذا كنت ترغب في إضافة المزيد من عناصر التحكم والترحيل ، فأنت بحاجة إلى تحرير الكود ومخطط الدائرة.

يمكنك تعيين الإخراج والمدخلات للدبابيس غير المستخدمة في جهاز الاستقبال وجهاز التحكم عن بعد في البرنامج وتوصيل عدد من الترانزستور والترحيل للمسامير المعنية في جهاز الاستقبال وكذلك توصيل عدد المفاتيح وسحب المقاوم في جهاز التحكم عن بعد.

يمكنك استخدام رمز سداسي عشري عشوائي لتعيين عدد أكبر من الأزرار.

على سبيل المثال: 0xA235 و 0xFFFF و 0xBA556 وما إلى ذلك. وأضف أيضًا نفس القيمة السداسية العشرية في كود المستلم أيضًا. على سبيل المثال: #define output4 0xA235 ، #define outout5 0xFFFF وما إلى ذلك.

عمل جهاز تحكم عن بعد بالأشعة تحت الحمراء بتردد فريد

في الأقسام أعلاه تعلمنا عن جهاز تحكم عن بعد بسيط يعمل بالأشعة تحت الحمراء يعمل مع أي جهاز إرسال عن بعد يعمل بالأشعة تحت الحمراء.
في المقالة التالية سوف نتعلم كيفية عمل نسخة مطورة من المفهوم أعلاه للتحكم المضمون في الأجهزة المنزلية باستخدام متحكم اردوينو الدقيق ، والذي سيعمل بتردد فريد ولن يعمل أبدًا مع هاتف IR المشترك.

جهاز تحكم عن بعد بالأشعة تحت الحمراء مضمون

يمكن لهذه الدائرة تشغيل / إيقاف تشغيل أجهزتك باستخدام الأزرار غير المستخدمة بجهاز التحكم عن بعد في التلفزيون أو أي جهاز تحكم عن بعد آخر غير مستخدم قد يكون موجودًا في صندوق البريد غير المهم على مر العصور.

يتمثل شعار هذا المشروع في مساعدة الأشخاص المعاقين جسديًا ، ومساعدتهم على الوصول إلى مفتاح التشغيل / الإيقاف للأجهزة المنزلية الأساسية مثل المراوح أو الأضواء بشكل مستقل.

الهدف الثاني هو تمكين المستخدم من التحكم في الأدوات 'مثل الرئيس' دون الحاجة إلى الانتقال من منصبه الحالي.

تستخدم الدائرة الاتصالات التقليدية القائمة على الأشعة تحت الحمراء بين المرسل والمستقبل.

هذه الدائرة مضمونة بنسبة مائة بالمائة لأجهزة التحكم عن بعد الأخرى بالأشعة تحت الحمراء ومصادر الأشعة تحت الحمراء الأخرى وأقل عرضة للأخطاء.

المشكلة الرئيسية في عدم وجود متحكم دائرة التحكم عن بعد بالأشعة تحت الحمراء ، الموجود في جميع أنحاء الإنترنت ، هو أنه يمكن تشغيله / إيقاف تشغيله باستخدام أي جهاز تحكم عن بعد يعمل بالأشعة تحت الحمراء ويمكنه التحكم في جهاز واحد فقط على الفور وأيضًا أكثر عرضة للأخطاء.

هذه الدائرة تتغلب على القضايا المحددة أعلاه ، ويمكننا ذلك التحكم في عدة أدوات بجهاز تحكم واحد وتعيين مفاتيح لأدوات معينة.

قبل متابعة هذا المشروع ، تحتاج إلى تنزيل ملفات المكتبة الخاصة بـ arduino من هذا الرابط واتباع التعليمات الواردة أدناه: github.com/z3t0/Arduino-IRremote

تعليمات:

1) انقر فوق الزر 'استنساخ أو تنزيل' من الرابط المحدد واضغط على 'تنزيل ZIP'.

2) قم باستخراج الملف ونقل مجلد “IRremote” إلى مجلد مكتبة Arduino.

3) احذف مجلد 'RobotIRremote' من مكتبة اردوينو الخاصة بك. يحتوي 'RobotIRremote' على تعريف مماثل لمكتبة 'IRremote' التي تتعارض مع عدم القدرة على تحميل الكود إلى Arduino ، لذا فإن الحذف / الإزالة إلزامي.

من خلال تكرار التعليمات المذكورة أعلاه ، يكون برنامج Arduino IDE جاهزًا لأي / معظم المشاريع القائمة على IR.

تعيين مفاتيح لجهاز التحكم عن بعد:

في جهاز التحكم عن بعد الخاص بالتلفزيون ، يحتوي كل مفتاح على رمز سداسي عشري فريد ، والذي يستخدم للتعرف على المفتاح الذي يتم الضغط عليه لإجراء عملية. قبل تحميل الكود النهائي على Arduino ، تحتاج إلى العثور على الرموز السداسية العشرية لمفاتيحك.

للقيام بذلك ، قم بإنشاء الدائرة التالية في اللوح واتبع التعليمات.

1) افتح Arduino IDE وقم بتحميل رمز المثال 'IRrecv Demo'

2) افتح الشاشة التسلسلية واضغط على المفتاح الموجود في جهاز التحكم عن بُعد الذي تريد استخدامه.

سترى رمز سداسي عشري منبثق بمجرد الضغط على المفتاح. هذا هو الرمز السداسي العشري لهذا المفتاح المحدد.

3) افعل الشيء نفسه بالنسبة لمفتاحين آخرين (3 مفاتيح معطاة في هذا المشروع للتحكم في 3 أجهزة)

· سنستخدم هذه الرموز السداسية العشرية في البرنامج الرئيسي وتحميلها إلى اردوينو.

برنامج:
//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x111 // place your code received from button A
#define output2 0x112 // place your code received from button B
#define output3 0x113 // place your code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

ملاحظة:

في برنامج:

#define output1 0x111 // ضع الرمز الذي تلقيته من الزر A.

#define output2 0x111 // ضع الكود الذي تلقيته من الزر B.

#define output3 0x111 // ضع الكود الذي تلقيته من الزر C.

· ضع 3 أكواد فريدة من جهاز التحكم عن بُعد في هذا المكان المكون من 111 و 112 و 113 وقم بتحميل الكود. ستكون الرموز السداسية العشرية من 0 إلى 9 ومن A إلى F ، على سبيل المثال: 20156، 26FE789، FFFFFF.

· ضع الرمز الخاص بك مع '0x' (صفر x).

مخطط الرسم البياني:

· يؤدي الضغط على المفتاح إلى تشغيل التتابع ، وبالضغط عليه مرة أخرى ، فإنه يؤدي إلى إيقاف تشغيل التتابع.




زوج من: طارد البعوض الطبيعي باستخدام مقاومة عالية واط في المادة التالية: دائرة الكشف عن المعادن في التربة العميقة - الماسح الأرضي