- Робоче пояснення:
- Розшифровка ІК-сигналів пульта дистанційного керування за допомогою Arduino:
- Опис ланцюга:
- Опис коду:
Раніше ми розглядали багато типів домашньої автоматизації з використанням різних технологій, таких як домашня автоматизація на основі DTMF, автоматизована домашня автоматизація за допомогою ПК за допомогою Arduino, контрольована домашня автоматизація через Bluetooth. У цьому проекті ми використовуємо інфрачервоний бездротовий зв’язок для управління побутовою технікою. У цьому проекті Arduino використовується для контролю всього процесу. Ми надсилаємо деякі команди в систему управління, використовуючи пульт дистанційного керування для телевізора / DVD / MP3 для управління побутовою технікою змінного струму. Після прийому сигналу від ІЧ-пульта Arduino надсилає відповідний сигнал реле, які відповідають за ввімкнення або вимкнення побутової техніки через драйвер реле.
Робоче пояснення:
Робота цього проекту легко зрозуміла. Коли ми натискаємо будь-яку кнопку ІК-пульта дистанційного керування, тоді пульт віддає код у вигляді послідовності закодованих імпульсів із частотою модулювання 38 кГц. Ці імпульси приймаються датчиком TSOP1738 і зчитуються Arduino, а потім Arduino декодує отриманий потік імпульсів у шістнадцяткове значення і порівнює це декодоване значення із заздалегідь визначеним шістнадцятковим значенням натиснутої кнопки. Якщо якесь збіг відбувається, тоді Arduino виконує відносну операцію, і відповідний результат також відображається на РК-дисплеї 16x2 за допомогою відповідних команд. У цьому проекті ми використали 3 лампи різних кольорів, для демонстрації яких вказується вентилятор, світло та телевізор.
Існує багато типів ІЧ-пультів для різних пристроїв, але більшість із них працюють на частоті близько 38 кГц. У цьому проекті ми контролюємо побутову техніку за допомогою пульта ІК-телевізора. Для виявлення ІК-віддаленого сигналу ми використовуємо ІЧ-приймач TSOP1738. Цей датчик TSOP1738 може розпізнавати частотний сигнал 38 кГц. Робота ІЧ-пульта дистанційного керування та TSOP1738 може бути детально висвітлена в цій статті: ІЧ-передавач та приймач
Компоненти:
- Arduino UNO
- TSOP1738
- ІК-телевізор / DVD-пульт
- ULN2003
- Реле 5 вольт
- Лампочка з тримачем
- Підключення проводів
- Хлібна дошка
- РК-дисплей 16x2
- Блок живлення
- PVT
- IC 7805
У цьому проекті ми використовували 7, 8 та 9 цифрові кнопки ІЧ-пульта дистанційного керування для керування вентилятором, світлом та телевізором відповідно, а кнопка ON / OFF (кнопка живлення) використовується для одночасного ввімкнення та вимкнення всіх приладів.
Тут ми використовували метод перемикання для увімкнення та вимкнення окремого побутового приладу. Переключити метод це не що інше, як отримати те, незалежно від того, натискається кнопка навіть разів чи непарних разів. Це можна отримати, отримавши нагадування, розділивши його на 2 (i% 2). Якщо є нагадування, пристрій буде ввімкнено, а якщо нагадування 0, його буде вимкнено. Припустимо, натиснута клавіша 7 на пульті дистанційного керування, тоді пульт віддає сигнал Arduino через ІЧ-приймач TSOP. Потім Arduino декодує його і зберігає декодоване значення у змінній результатів. Тепер змінна результатів має шістнадцяткове значення 0x1FE00FF, після зіставлення її із заздалегідь визначеним шістнадцятковим значенням ключа 7 (див. Зображення вище), Arduino вмикає вентилятор. Тепер, коли ми знову натискаємо ту саму клавішу (клавіша 7), тоді ІЧ надсилає той самий код. Arduino отримує той самий код і відповідає такому ж коду, як і раніше, але цього разу Вентилятор вимкнений через перемикання біта (i% 2).
Розшифровка ІК-сигналів пульта дистанційного керування за допомогою Arduino:
Ось список віддалених декодованих кодів виводу DVD NEC:
Якщо ви не знаєте розшифрованого виходу для вашого ІЧ-пульта, його можна легко знайти, просто виконайте такі дії:
- Завантажте віддалену бібліотеку ІЧ звідси
- Розпакуйте його та помістіть у свою папку Arduino 'Libraries'. Потім перейменуйте витягнуту папку на IRremote.
- Запустіть наведену нижче програму з вашого Arduino і відкрийте вікно Serial Monitor у Arduino IDE. Тепер натисніть будь-яку кнопку ІК-пульта дистанційного керування та перегляньте відповідний декодований шістнадцятковий вихід у вікні послідовного монітора.
* IRremote: IRrecvDemo - демонструє отримання ІЧ-кодів за допомогою IRrecv * ІЧ-детектор / демодулятор повинен бути підключений до входу RECV_PIN. * Версія 0.1, липень 2009 р. * Авторське право 2009 р. Кен Ширріф * http://arcfn.com * / #include
Вищевказана програма взята з папки "приклади" бібліотеки IRremote. Ви можете переглянути інші приклади, щоб дізнатись більше про використання ІЧ-пульта дистанційного керування. Отже, ось як ми розшифрували ІК-віддалений вихід.
Опис ланцюга:
Підключення цієї схеми дуже просте, тут рідкокристалічний дисплей використовується для відображення стану побутової техніки, яка безпосередньо підключена до arduino в 4-бітному режимі. Виводи даних РК-дисплею, а саме RS, EN, D4, D5, D6, D7, підключені до цифрового виводу arduino 6, 7, 8, 9, 10, 11. А вихідний висновок TSOP1738 безпосередньо підключений до цифрового виводу No 14 (A) Ардуїно. А штифт Vcc підключений +5 вольт і штифт GND, підключений до заземлювальної клеми ланцюга. Драйвер реле, а саме ULN2003, також використовується для керування реле. 5-вольтові реле SPDT 3 використовуються для управління СВІТЛОМ, ВЕНТИЛЯТОРОМ і телевізором. А реле підключаються до виводів номер 3, 4 і 5 Arduino через драйвер реле ULN2003 для управління СВІТЛОМ, ВЕНТИЛЯТОРОМ і телевізором відповідно.
Опис коду:
У програмувальній частині цього проекту Насамперед у програмуванні ми включаємо бібліотеку для ІЧ-пульта, яка легко доступна в Google. І визначити pin та оголосити змінні.
#включати
А потім включіть заголовок для рідкокристалічного дисплея, а потім ми визначаємо дані та керуючі штифти для РК-дисплеїв та побутової техніки.
#включати
Після цього нам потрібно ініціалізувати РК-дисплей і вказати напрямок штифта, який використовується для вентилятора, світла та телевізора.
void setup () {Serial.begin (9600); lcd.begin (16,2); pinMode (вентилятор, ВИХІД); pinMode (Світло, ВИХІД); pinMode (телевізор, ВИХІД);
Як вже пояснювалося, нижче частина коду використовується для порівняння отриманого шістнадцяткового значення з уже визначеним шістнадцятковим кодом цієї кнопки. Якщо він збігається, то відносна операція виконується за допомогою відповідних функцій, які задані в коді.
недійсний цикл () {if (unrecv.decode (& results)) {Serial.println (results.value, HEX); затримка (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (вентилятор, х);