Урок 5 - Управление Arduino с помощью пульта ДУ (IR). Библиотека IRremote

.Урок 5 - Управление Arduino с помощью пульта ДУ (IR). Библиотека IRremote

При создании проектов на Arduino. Часто возникает вопрос, с помощью чего управлять проектом. И желательно на расстоянии. Кнопки уже не модно.

Самый просто и доступный способ это управление с помощью пульта дистанционного управления и IR приемника . Реализовать можно различные проекты, например вытяжку с ик управлением.

Для урока я буду использовать вот такой набор и Arduino UNO.

 пульт с IR приемником

Купить пульт с IR приемником всего за 100 руб. можно тут.

Приемники могут быть распаянные как в моем случае.

IR приемником

IR приемником

И вот такого плана.

IR приемникомIR приемником

Различий в подключении нет. Первый просто удобнее для тестирования и проверки работы. При подключении самое главное не перепутать ноги и подключить правильно. В противном случае приемник может сгореть.

Подключаем IR к Arduino UNO вот по такой схеме

Подключаем к Arduino UNO вот по такой схеме. К другим Ардуинкам подключается аналогично.

Для работы нам понадобиться библиотека IRremote. Скачать ее можно тут.

С библиотекой устанавливается ряд примеров. Нам понадобиться IrrecvDemo.

IrrecvDemo

IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  Serial.begin(9600);
  // In case the interrupt driver crashes on setup, give a clue
  // to the user what's going on.
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // Start the receiver
  Serial.println("Enabled IRin");
}
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

После того как скетч загружен и IR приемник подключен можно проверить какой код соответствует той или иной кнопке пульта ДУ. Поднажимайте на кнопки и в мониторе последовательного порта (Ctrl+Shift+M) вы уведите следующее.

;FF18E7
FFFFFFFF
FFA857
FF02FD
FF18E7
FF38C7
FF4AB5
FF5AA5
FF10EF
FF5AA5
FFFFFFFF
FF10EF
FF5AA5

 в мониторе последовательного порта (Ctrl+Shift+M) вы уведите следующее

У вас возник наверное вопрос что за повторяющая команда FFFFFFFF. Это команда выводиться когда вы долго удерживаете кнопку на пульте и на Ардуино приходить одинаковая команда. В этом нет ни чего страшного, а иногда это даже полезно. На основе данной команды я сделал управление машинкой с помощью пульта ДУ. При этом машинка едет только тогда, когда нажата кнопка пульта. Отпускаем и машина перестает ехать и поворачивать.

Само простое, чем можно управлять это включение и выключения встроенного светодиода на плату Arduino при помощи пульта дистанционного управления и инфракрасного приемника.

Схема подключения как и в примере выше. Коды кнопок моего пульта:

//FF10EF   — стрелочка вправо
//FF5AA5   — стрелочка влево

У вашего пульта команды будут другие. Код получается вот такой.

//FF10EF   — стрелочка вправо
//FF5AA5   — стрелочка влево
#include "IRremote.h"
IRrecv irrecv(11); // указываем вывод, к которому подключен приемник
decode_results results;
void setup() {
  irrecv.enableIRIn(); // запускаем прием
}
void loop() {
  if ( irrecv.decode( &results )) { // если данные пришли
    switch ( results.value ) {
    case 0xFF10EF:
        digitalWrite( 13, HIGH );
        break;
    case 0xFF5AA5:
        digitalWrite( 13, LOW );
        break;
    }    
    irrecv.resume(); // принимаем следующую команду
  }
  delay(100);
}

Вот так можно легко научить вашу Arduinо понимать команды с пульта.


Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.

Спасибо за внимание!

Понравилась статья? Поделитесь ею с друзьями:

Вернуться в раздел: Уроки Arduino: Подключение датчиков и модулей к Arduino Дата публикации 13 марта , 2018

Комментарии

Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.

dmibr
#13 dmibr (30 января, 2022 в 17:53)
У меня второй скетч заработал только после указания режимов портов в
void setup(){
[code]irrecv.enableIRIn();[code]pinMode(12, OUTPUT);
pinMode(11, INPUT);
}[/code]

[/code]
Александр Рычков
#12 Гость: Александр Рычков (12 марта, 2019 в 19:51)

Конфликтуют ли эти библиотеки (SoftwareSerial.h и IRremote.h)

Подключен пульт IR и блютуз шилд, проблема в приеме данных от блютуза при

irrecv.enableIRIn(); (кракозябру принимает), а если убрать

irrecv.enableIRIn(); то принимает нормально...

Евсей Петров
#11 Гость: Евсей Петров (12 марта, 2019 в 19:51)

Прекрасная функция - работа при удержании кнопки. Можно регулировать открытие жалюзи, створок. Или увеличение потока вытяжки.

Есения Хуфенбах
#10 Гость: Есения Хуфенбах (12 марта, 2019 в 19:50)

Прекрасная статья.Спасибо авторам :)

Евсей Петров
#9 Гость: Евсей Петров (12 марта, 2019 в 19:50)

Познавательная информация. Интересно, можно это как-нибудь привязать к открыванию ворот во двор. И на какое расстояние можно рассчитывать.

Артур Нахалов
#8 Гость: Артур Нахалов (12 марта, 2019 в 19:49)

Отличная статья, авторам спасибо,буду пробовать, да ,кстати, с часами все получилось

Никита
#7 Гость: Никита (12 марта, 2019 в 19:49)

спасибо большое за статью! очень познавательно и увлекательно. попробую применить это дело на практике...

Diana Raina
#6 Гость: Diana Raina (12 марта, 2019 в 19:49)

Очень интересная статья и познавательная, спасибо. А вот у меня такой вопрос. Вы говорите что смогли управлять машинкой с помощью путьта. Нажимаете едет, разжимаете останавливается. а возможно ли проделать так, чтобы нажал поехала, разжатие не останавливает машинку, машинка все еще едет. А вот повторное нажатие уже останавливает машинку?

Евгений Столяров
#5 Гость: Евгений Столяров (12 марта, 2019 в 19:48)

А возможно ли организовать чтобы, например, включался светодиод но только на время удержания кнопки, и гас сразу после ее освобождения. Спасибо.

Сергей Рясков
#4 Гость: Сергей Рясков (12 марта, 2019 в 19:48)

я как всегда восхищен я здесь узнаю для себя больше !

Александр Ковальский
#3 Гость: Александр Ковальский (12 марта, 2019 в 19:48)

Интересная статья, как можно использовать Arduino. Все грамотно расписано, попробую на практике.

Надежда Парыгина
#2 Гость: Надежда Парыгина (12 марта, 2019 в 19:47)

Интересная тема управление с помощью пульта. Попробую сделать, может получится.

Вячеслав Литвинець
#1 Гость: Вячеслав Литвинець (12 марта, 2019 в 19:47)

Cпасибо, реально интерестно и познавательно, yзнал много нового)


Cлучайные товары

Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Telegram

Portal-PK (Портал ПК) © 2015 - 2024
Разработка проектов
AT Block
DWIN Box