מעגל שלט רחוק IR Arduino

נסה את הכלי שלנו לביטול בעיות





בפוסט זה אנו הולכים לבנות מתג שליטה מרחוק אלחוטי מבוסס IR (אינפרא אדום) מבוסס Arduino הניתן להתאמה אישית, המורכב משלט IR ומקלט, תוכלו לשנות בהתאם לצרכים שלכם. בחלק המאוחר יותר של המאמר אנו למדים על גרסה משודרגת חסינת שוטים של שלט רחוק אשר תגיב רק לתדר שהוקצה באופן ייחודי.

אם אתה מעל לרמה למתחילים אתה יכול להשיג את זה בקלות. המעגל המוצע שמוצג כאן כולל רק שלושה פקדים בשלט רחוק ו -3 ממסרים בקצה המקלט. אתה יכול לשנות את הקוד ואת תרשים המעגל כדי לענות על הצרכים שלך.



תזדקק לשני לוחות ארדואינו, הפועלים כמרוחקים ופועלים כמקלט נוסף. אני ממליץ על Arduino pro mini לפרויקט זה, מכיוון שהגדלים שלהם די קטנים והגודל הכללי של השלט יכול להימנע.

אתה יכול להשתמש ב- Arduino pro mini מבוסס 3.3 וולט לשלט רחוק כדי שתוכל להיות מופעל באמצעות שני תא כפתורים או שתי סוללות בגודל AA, בהתאם לצרכים שלך.



במעגל משדר ה- IR יש 3 לחצני כפתור והנורית IR לשליחת פקודות למקלט. כל כפתור תוכנת עם קוד הקסדצימלי ייחודי, אותו קוד הקסדצימלי מתוכנת גם בצד המקלט.

כאשר לחצן נלחץ נורית ה- IR שולחת את הקוד ההקסדצימלי למקלט, המקלט יזהה איזה מהכפתור נלחץ והוא מפעיל / כבה את הממסר המתאים.

השלט הרחוק המוצע משתמש בפרוטוקול 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 טרנזיסטורים מעטים, נגדי הגבלת זרם לטרנזיסטור, ממסרים ודיודות לספיגת ספייק מתח גבוה מסלילי ממסר.

תרשים המעגל מסביר את עצמו.

תוכנית למקלט Arduino:

//-----------------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 בתדירות ייחודית

בסעיפים לעיל למדנו על שלט רחוק פשוט IR שיעבוד עם כל משדר שלט רחוק.
במאמר הבא נלמד כיצד ליצור גרסה משודרגת של הרעיון שלעיל לשליטה חסינת שוטה על מכשירי החשמל הביתיים באמצעות מיקרו-בקר arduino, אשר יעבוד בתדר ייחודי ולעולם לא יפעל במכשיר IR משותף.

שלט רחוק IR חסין טיפשים

מעגל זה יכול להפעיל / לכבות את הגאדג'טים שלך באמצעות הכפתורים שאינם בשימוש של שלט הטלוויזיה או כל שלט אחר שאינו בשימוש שעשוי להיות מונח בארגז הזבל שלך כבר עידנים.

המוטו של פרויקט זה הוא לעזור לאנשים עם אתגרים פיזיים, ולעזור להם לגשת למתג הפעלה / כיבוי של מכשירי החשמל הביתיים הבסיסיים כמו מאווררים או נורות באופן עצמאי.

המטרה השנייה היא לאפשר למשתמש לשלוט בגאדג'טים 'כמו בוס' מבלי לעבור ממצבו הקיים.

המעגל משתמש בתקשורת מסורתית מבוססת IR בין משדר למקלט.

מעגל זה עמיד באחוזים באחוזים כלפי שלטי IR אחרים, ומקורות IR אחרים ופחות רגישים לשגיאות.

הבעיה העיקרית עם מבוסס-מיקרו-בקר מעגל שלט רחוק IR , שנמצא ברחבי האינטרנט, הוא שהוא יכול להפעיל / לכבות עם כל שלט מבוסס IR ויכול לשלוט רק במכשיר אחד ברגע וגם רגיש יותר לטעויות.

מעגל זה מתגבר על הבעיות שצוינו, ואנחנו יכולים לשלוט בכמה גאדג'טים בשלט רחוק אחד ולהקצות מפתחות לגאדג'טים ספציפיים.

לפני שתמשיך בפרויקט זה עליך להוריד את קובצי הספרייה עבור arduino דרך קישור זה ופעל לפי ההוראות המפורטות להלן: github.com/z3t0/Arduino-IRremote

הוראות:

1) לחץ על כפתור 'שיבוט או הורדה' מהקישור הנתון ולחץ על 'הורד ZIP'.

2) חלץ את הקובץ והעבר את תיקיית 'IRremote' לתיקיית הספרייה שלך של Arduino.

3) מחק את תיקיית 'RobotIRremote' מספריית הארדואינו שלך. ל- 'RobotIRremote' יש הגדרה דומה לספריית 'IRremote' המתנגשת ולא מצליחה להעלות את הקוד לארדואינו ולכן מחיקה / הסרה היא חובה.

על ידי שכפול ההוראות לעיל תוכנת ה- IDE של Arduino מוכנה לכל / רוב הפרויקטים מבוססי ה- IR.

הקצאת מפתחות לשלט רחוק:

בשלט הטלוויזיה שלנו לכל מפתח יש קוד הקסדצימלי ייחודי, המשמש לזיהוי איזה מקש נלחץ לצורך פעולה. לפני שתעלה את הקוד הסופי לארדואינו, עליך למצוא מהם הקודים ההקסדצימליים עבור המפתחות שלך.

לשם כך בנה את המעגל הבא על גבי לוח המחוונים ופעל לפי ההוראות.

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-----------//

פתק:

בתכנית:

# הגדר פלט 1 0x111 // הצב את הקוד שהתקבל מכפתור A.

# הגדר פלט 2 0x111 // הצב את הקוד שהתקבל מכפתור B

# הגדר פלט 3 0x111 // הצב את הקוד שהתקבל מכפתור C

· הצב את 3 הקודים הייחודיים שלך מהשלט רחוק במקום זה של 111, 112 ו- 113 והעלה את הקוד. קודים הקסדצימאליים יהיו בין 0 ל -9 ו- A עד F, למשל: 20156, 26FE789, FFFFFF.

· הצב את הקוד שלך עם '0x' (אפס x).

תרשים מעגל:

· לחיצה על מקש מפעילה את הממסר ולחיצה חוזרת הוא יכבה את הממסר.




קודם: חומר דוחה יתושים טבעי המשתמש בנגד נגד ואט גבוה הבא: מעגל גלאי מתכות עמוק בקרקע - סורק קרקע