цифровая электроника
вычислительная техника
встраиваемые системы

 

Дистанционное управление для Arduino

Автор: Mike(admin) от 10-01-2014, 13:30

Управлять Arduino с помощью инфракрасного пульта ДУ действительно просто. Сегодня можно найти довольно дешевые и простые ИК-пульты для таких целей.


дистанционное управление Arduino

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


Шаг 1: собираем схему


Во-первых, вам нужно будет взять Arduino. В данном случае используется UNO, но подойдет любая модель. Затем необходимо соединить его с ИК-приемником. У него имеются три вывода: питание (PWR), земля (GND) и сигнальный (SIG). Посадим SIG на 11 порт.


Внимание! Перед подключением датчика проверяйте по документации расположение его выводов!


дистанционное управление Arduino

Шаг 2: скачиваем библиотеку


Теперь нам нужно скачать библиотеку для реализации дистанционного управления. Ее можно найти по следующей ссылке:


https://github.com/shirriff/Arduino-IRremote


дистанционное управление Arduino

Распакуйте этот файл в каталог с библиотеками, например, C:\electronics\arduino-1.0.5\libraries. Если имя библиотеки вам кажется слишком длинным то можете переименовать ее, допустим, в IR.


Шаг 3: добавляем библиотеку к скетчу


В новом скетче выберите Sketch->Import Library->IR


дистанционное управление Arduino

Шаг 4: скопируйте код и скомпилируйте его


Вставьте нижеследующий код в этот новый скетч и выполните компиляцию.



#include <IRemote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}

Шаг 5: откройте монитор последовательного интерфейса


Соедините Arduino с компьютером через интерфейс USB, затем загрузите скетч. Откройте монитор последовательного порта (Serial Monitor), возьмите пульт дистанционного управления и понажимайте на кнопки. На мониторе должны появляться шестнадцатеричные цифры.


дистанционное управление Arduino

Шаг 6: запишите коды кнопок


Теперь вам нужно записать все числа, соответствующие кнопкам.


Например, для такого пульта


дистанционное управление Arduino

коды будут следующими:


PWR FF629D
CH FFE21D
|<< FF22DD
>| FFC23D
>>| FF02FD
- FFE01F
Plus FFA857
EQ FF906F
0 FF6897
100 FF9867
200 FFB04F
1 FF30CF
2 FF18E7
3 FF7A85
4 FF10EF
5 FF38C7
6 FF5AA5
7 FF42BD
8 FF48B5
9 FF52AD

А для такого:


дистанционное управление Arduino

PWR FD00FF
VOL FD807F
FUNC/STOP FD40BF
|<< FD20DF
>| FDA05F
>>| FD609F
DOWN FD10EF
VOL FD906F
UP FD50AF
0 FD30CF
EQ FDB04F
ST/REPT FD708F
1 FD08F7
2 FD8877
3 FD48B7
4 FD28D7
5 FDA857
6 FD6897
7 FD18E7
8 FD9867
9 FD58A7

Шаг 7: работайте с любым пультом


Попробуйте в действии другие пульты управления. Можно использовать даже пульты для телевизоров и пульты на базе смартфонов для управления игрушечными вертолетами.


дистанционное управление Arduino

дистанционное управление Arduino



Перевод © digitrode.ru


<Источник>


Теги: Arduino, пульт ДУ




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
Полярность на первой картинке перепутана, земля должна быть по середине датчика. Надо внимательнее картинки рисовать. Мой датчик VS1838 умер из-за переполюсовке.
Исправте картинку...

Полярность на первой картинке неверная. Земля на средней ноге датчика VS1838. Исправьте ....
Цитата
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 28.08.2013
  • Статус: Пользователь offline
  • Комментариев: 15
  • Публикаций: 1183
^
Для каждой модели датчика распиновка может быть своя. Например, для датчиков типа TSOP24 земля находится на правой ножке, поэтому такая картинка будет справедлива.
В связи с этим в текст добавлена пометка о необходимости проверять расположение выводов датчика.