Лекција 21/31: Користење инфрацрвено далечинско управување со Arduino | SunFounder Robojax
Вовед
Во оваа лекција, истражуваме во фасцинантниот свет на инфрацрвената (IR) комуникација со изградба на проект кој декодира сигнали од стандарден далечински управувач користејќи Arduino. Овој проект ви овозможува да откриете кое копче е притиснато на IR далечинскиот управувач и да активирате дејства соодветно, како што е вклучување на зумер. Способноста да комуницирате со IR далечински управувачи отвора широк опсег на практични апликации, од едноставна домашна автоматизација до прилагодени контролни системи.
Еве неколку инспиративни идеи за тоа што можете да изградите со оваа технологија:
- Замена за универзален далечински управувач: Креирајте прилагоден далечински управувач за вашиот телевизор, аудио систем или други IR-контролирани уреди.
- Домашна автоматизација: Контролирајте светла, вентилатори или други апарати со притискање на копче на стандарден далечински управувач.
- Интерактивни проекти: Изградете безбедносен систем кој активира аларм кога ќе се притисне одредено копче.
- Контрола на роботика: Користете IR далечински управувач за безжично контролирање на движењето и дејствата на робот.
- Помагала за пристапност: Развијте едноставен далечински управувач со големи копчиња за лица со ограничена подвижност.
Хардвер и компоненти
Овој проект е изграден околу неколку едноставни компоненти, кои обично се вклучени во почетни комплети како SunFounder 3-во-1 комплетот. Ќе ви требаат:
- Arduino плоча (на пр., Uno)
- IR приемник модул (на пр., TSOP38238 или сличен)
- Стандарден IR далечински управувач (со CR2025 батерија)
- Пасивен зумер
- Поврзувачки жици и breadboard
Водич за поврзување
Еве едноставниот дијаграм за поврзување за овој проект. IR приемникот е клучната компонента. Кога гледате во заоблената површина на приемникот, распоредот на пиновите е следниов:
- Десен пин: Поврзете го со 5V пинот на Arduino.
- Среден пин: Поврзете го со GND пинот на Arduino.
- Лев пин (Сигнал): Поврзете го со дигиталниот пин 11 на Arduino.
Дополнително, за делот за дејство на проектот, поврзете го позитивниот (подолг) крак на зумерот со дигиталниот пин 2 и другиот крак со GND.
Објаснување на кодот
Овој проект се потпира на IRremote библиотеката за да ја обработи сложената задача на декодирање на инфрацрвените сигнали. Кодот е структуриран така што прво ги учи специфичните кодови од вашиот далечински управувач, а потоа ги користи за активирање на дејства. Ајде да ги разложиме деловите што може да ги конфигурира корисникот.
Прво, го дефинираме пинот на кој е поврзана сигналната жица на IR приемникот. Ова е клучна конфигурација што мора да одговара на вашето физичко поврзување.
const int IR_RECEIVE_PIN = 11; // Дефинирајте го бројот на пинот за IR сензорот
Во setup() функцијата, IR приемникот се иницијализира користејќи го пинот што штотуку го дефиниравме. Ова ѝ кажува на библиотеката да започне со слушање на сигнали на тој пин.
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Стартувајте го IR приемникот
Јадрото на логиката за преземање дејства е во loop(). Кодот проверува дали е притиснато копче и го декодира. Функцијата decodeKeyValue() е прилагодена функција што го преведува суровиот хексадецимален код од далечинскиот управувач во читлив стринг како „POWER“ или „MUTE“. Ова е делот што ќе го менувате за да одговара на вашиот специфичен далечински управувач. Примерот на кодот дефинира buzzerPin и го вклучува само кога е притиснато копчето „POWER“.
const int buzzerPin = 2; // Дефинирајте го пинот за зумерот
// ... внатре во loop()
if (decodedValue == "POWER") {
digitalWrite(buzzerPin, HIGH); // Вклучете го зумерот
} else {
digitalWrite(buzzerPin, LOW); // Исклучете го зумерот
}
Како да користите: Функцијата decodeKeyValue() е клучот за прилагодување на овој проект. За да ја користите со вашиот сопствен далечински управувач, прво мора да го стартувате кодот со отворен Serial Monitor. Притиснете го секое копче на вашиот далечински управувач и запишете ја хексадецималната вредност што се печати за секое. Потоа, ажурирајте ја switch наредбата во функцијата decodeKeyValue() за да ги мапирате тие вредности на значајни имиња. Потоа можете да ги користите овие имиња во вашите if наредби за да активирате различни дејства, исто како што прави примерот за копчето „POWER“.
Жив проект и демонстрација
Откако кодот ќе се постави, отворете го Serial Monitor со брзина на пренос од 9600. Насочете го вашиот далечински управувач кон IR приемникот и притиснете копче. Serial Monitor ќе го прикаже соодветното име на копчето (на пр., „POWER“, „MUTE“). За да го видите дејството на дело, притиснете го копчето „POWER“. Ќе слушнете како зумерот се вклучува. Притискањето на кое било друго копче, како „MUTE“, ќе го исклучи зумерот. Ова демонстрира едноставен, но моќен концепт: користење на далечински управувач за активирање на дигитални излези на вашиот Arduino.
Поглавја
- [00:00] Вовед во инфрацрвено далечинско управување со Arduino
- [01:25] Преглед на IR приемникот и предавателот
- [02:24] Разбирање на IR приемниот модул и жиците
- [03:31] Инсталирање на IRremote библиотеката
- [04:22] Отворање и објаснување на кодот за декодирање
- [07:29] Поставување на кодот и тестирање на копчињата од далечинскиот управувач
- [08:41] Додавање акција: Контролирање на зумер
- [10:37] Преглед на претстојните IR проекти
/*
Lesson 21/31: Decoding Infrared from remote
Get this code and watch video Download and resource page https://robojax.com/RJT604
YouTube video https://www.youtube.com/watch?v=EAlqaVy8fYY
*/
#include <IRremote.h>
const int IR_RECEIVE_PIN = 11; // Define the pin number for the IR Sensor
String lastDecodedValue = ""; // Variable to store the last decoded value
void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud rate
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the IR receiver
}
void loop() {
if (IrReceiver.decode()) {
String decodedValue = decodeKeyValue(IrReceiver.decodedIRData.command);
if (decodedValue != "ERROR") {
Serial.println(decodedValue);
delay(100);
}
IrReceiver.resume(); // Enable receiving of the next value
}
}
String decodeKeyValue(long result)
{
switch(result){
case 0x16:
return "0";
case 0xC:
return "1";
case 0x18:
return "2";
case 0x5E:
return "3";
case 0x8:
return "4";
case 0x1C:
return "5";
case 0x5A:
return "6";
case 0x42:
return "7";
case 0x52:
return "8";
case 0x4A:
return "9";
case 0x9:
return "+";
case 0x15:
return "-";
case 0x7:
return "EQ";
case 0xD:
return "U/SD";
case 0x19:
return "CYCLE";
case 0x44:
return "PLAY/PAUSE";
case 0x43:
return "FORWARD";
case 0x40:
return "BACKWARD";
case 0x45:
return "POWER";
case 0x47:
return "MUTE";
case 0x46:
return "MODE";
case 0x0:
return "ERROR";
default :
return "ERROR";
}
}
Common Course Links
Common Course Files
Работи што можеби ќе ви требаат
-
Amazon
-
eBay
Ресурси и референци
Сè уште нема ресурси.
Датотеки📁
Arduino библиотеки (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB