Управление arduino с ик приемником tsop 1833 arduino+

Дата поста: 05-02-2018

Недавно мне понадобилось управлять пультом от телевизора маленький проект на arduino. Суть заключалась в том, чтобы управлять кондиционером через саму arduino с датчиком температуры. К моему кондиционеру идёт достаточно удобный пульт, но нам ведь необходимо автоматизировать включение, выставление температуры и выключение. В результате долгих поисков смог найти для себя решение. О нём подробно под катом.

Как это работает

Подключаем IR приёмник, направляем пульт ДУ на приёмник, записываем сигнал и выводим его на Serial. (т.к. это первая часть статьи мы не рассматриваем отправку сигнала. Речь об отправке пойдёт как раз во второй части).

Что нам понадобится

  • Arduino (или аналоги, я использую Tosduino — подешевле раза в 2, полная совместимость с обычным arduino)
  • Светодиод (LED)
  • Резистор на 220 kOm
  • IR приёмник из серии TSOP22

Подключение

IR Receiver (Приёмник)

Arduino IR Receiver
GND (GrouND) левая нога
5 V средняя нога
digital pin 2 правая нога

Светодиод LED

Arduino Breadboard Arduino
pin number 11 резистор 220 kOm GND (GrouND)

IR технология

Самый дешевый способ для удаленного управления устройством в видимой доступности с помощью инфракрасного излучения. Почти всей аудио и видео техникой можно управлять таким образом. Благодаря широкому распространению необходимые компоненты довольно дешевы, что делает эту технологию идеальной для нас, любителей использовать ИК-пульта для наших собственных проектов.

Инфракрасное излучение на самом деле нормальный свет с определенным цветом. Мы, люди, не можем видеть этот цвет, потому что его длина волны 950 нм, что ниже видимого спектра. Это одна из причин, почему ИК выбран для нужд телемеханики, мы хотим использовать его, но мы не заинтересованы его видеть. Хотя мы не можем видеть инфракрасный свет, излучаемый от пульта дистанционного управления, но это не означает, что мы не можем сделать его видимым.

Видеокамера или цифровой фотоаппарат «видит» инфракрасный свет, как вы можете видеть на видео ниже. Даже самые дешевые сотовые телефоны имеют встроенные камеры. Просто наведите пульт на такую ??камеру, нажмите любую кнопку, и вы увидите светодиодные мерцания.

TSOP22

TSOP22 — Серия миниатюрных приемников для инфракрасных систем дистанционного управления. PIN диод и предусилитель собраны на выводной рамке, и выполнен в виде ИК-фильтра. Демодулированный выходной сигнал может быть непосредственно декодирован с помощью микропроцессора. TSOP22 — это стандартный приемник, поддерживает все основные коды передачи.

Part Carrier Frequency
TSOP2230 30 kHZ
TSOP2233 33 kHZ
TSOP2236 36 kHZ
TSOP2237 36.7 kHZ
TSOP2238 38 kHZ
TSOP2240 40 kHZ
TSOP2256 56 kHZ

IRremote.h

Скачать библиотеку IRremote можно с моего репозитория на Github.com

Для установки данной библиотеки скопируйте содержимое архива в: arduino-1.x/libraries/IRremote Где arduino-1.x — это папка куда установлена Arduino IDE После чего должен быть доступен файл arduino-1.x/libraries/IRremote/IRremote.cpp и IRremote.h

Пример №1 — получаем код кнопки пульта ДУ

Данный скетч прочитает код нажатой на пульте кнопки и отправит информацию об этой кнопке в Serial порт для того чтобы мы могли потом этим кодом воспользоваться.

Я буду использовать эти коды кнопок во всех следующих примерах:

Пример №2 — присваиваем имя для кнопки ПДУ

Отправим названия кнопок в Serial порт. (предварительно мы должны поймать коды этих кнопок и привязать им названия, смотрите в код, думаю там всё понятно будет).

Пример №3 — включаем LED по кнопке ПДУ

Теперь научим нашу Arduino включать светодиод (LED) на PIN 11 через кнопку на пульте

Пример №4 — ШИМ с ПДУ

Теперь давайте будем управлять яркостью нашего светодиода (так как он подключен к 11 порту, который имеет ШИМ то проблем не должно возникнуть). Для управления яркостью будут использоваться кнопки вверх и вниз на пульте ДУ.

Ну вот как то так. Во второй части статьи пойдёт речь о том, как полученный сигнал нам отправить на нашу технику. В моём случае это был кондиционер. Так же во второй части будет видео, которое покажет сборку под ключ, от начала и до конца + пример работы.

ИК приемник + Ардуино. Подключение

Подключение ИК приемника к Ардуино ► расскажем, как использовать библиотеку IRremote.h и продемонстрируем скетч для IR приемника Arduino со светодиодом и серво.

Рассмотрим на этом занятии подключение ИК приемника к Ардуино. Расскажем какую библиотеку следует использовать для IR приемника, продемонстрируем скетч для тестирования работы инфракрасного приемника от пульта дистанционного управления и разберем команды в языке C++ для получения сигнала. Сразу отметим, что IR датчик Ардуино подходит не к каждому пульту, частота сигнала может отличаться.

Устройство ИК приемника. Принцип работы

Приемники инфракрасного излучения получили сегодня широкое применение в бытовой технике, благодаря доступной цене, простоте и удобству в использовании. Эти устройства позволяют управлять приборами с помощью пульта дистанционного управления и их можно встретить практически в любом виде техники. Но, несмотря на это, постепенно Bluetooth модуль набирает все большую популярность.

Принцип работы IR ресивера. Обработка сигнала от пульта ДУ

ИК-приемник на Ардуино способен принимать и обрабатывать инфракрасный сигнал, в виде импульсов заданной длительности и частоты. Используется при изготовлении датчика препятствия и дальномера для Arduino. Обычно ИК-приемник имеет три ножки и состоит из следующих элементов: PIN-фотодиод, усилитель, полосовой фильтр, амплитудный детектор, интегрирующий фильтр и выходной транзистор.

Под действием инфракрасного излучения в фотодиоде, у которого между p и n областями создана дополнительная область из полупроводника (i-область), начинает течь ток. Сигнал поступает на усилитель и далее на полосовой фильтр, который настроен на фиксированную частоту: 30; 33; 36; 38; 40 и 56 килогерц и защищает приемник от помех. Помехи могут создавать любые бытовые приборы.

Как подключить ИК приемник к Ардуино

Корпуса инфракрасных приемников содержат оптический фильтр для защиты прибора от внешних электромагнитных полей, изготавливаются они специальной формы для фокусировки принимаемого излучения на фотодиоде. Для подключения IR приемника к Arduino UNO используют три ножки, которые соединяют с — GND, 5V и A0. Советуем для начала использовать 3,3 Вольта, чтобы не сжечь ИК датчик при настройке.

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • IR приемник;
  • пульт ДУ;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».

Схема подключения ИК приемника к аналоговому порту Ардуино

Подключите IR приемник по схеме, представленной выше, и подключите светодиоды к 12 и 13 пину. Перед загрузкой программы, вам потребуется установить библиотеку IRremote.h, если она не была еще установлена. Данная библиотека не относится к стандартным библиотекам среды программирования Arduino IDE. Скачать библиотеку IRremote.h и готовый скетч можно одним архивом с Google Диск по ссылке здесь.

Скетч для ИК приемника Arduino со светодиодом

Пояснения к коду:

  1. библиотека IRremote.h содержит набор команд и позволяет упростить скетч;
  2. оператор decode_results присваивает получаемым сигналам от пульта дистанционного управления имя переменной results .

ИК датчик можно применять во многих устройствах на микроконтроллере Ардуино, в том числе, можно сделать дистанционное управление сервоприводом на Ардуино от ИК приемника. При настройке следует включить монитор порта Arduino IDE и узнать какой сигнал отправляет та или иная кнопка на пульте ДУ. Полученные коды следует использовать в скетче после знака двойного равенства в условиях if () .

Скетч для ИК приемника Ардуино и серовомотора

Пояснения к коду:

  1. в условиях if (results.value == 16724175) следует поставить свои значения, они будут появляться на мониторе порта при нажатии кнопок на пульте ду.

Чтобы сигнал от пульта ДУ принимался ИК приемником Ардуино, пульт должен быть с той же частотой, на которую настроен фильтр в IR приемнике. Поэтому не каждый пульт дистанционного управления подойдет для работы. Следует подбирать IR приемник и IR передатчик с одной частотой. После фильтра сигнал поступает на амплитудный детектор, интегрирующий фильтр и выходной транзистор.

Эксперимент c Arduino №14. ИК пульт дистанционного управления

Введение

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

Благодаря своей дешевизне, простоте, экономичности и универсальности, ИК пульт всегда будет занимать свое место среди устройств дистанционного управления, наряду с Bluetooth, радио, и WiFi.

Принцип действия

ИК-приемник на Ардуино способен принимать и обрабатывать инфракрасный сигнал, в виде импульсов заданной длительности и частоты.

Под воздействием инфракрасного излучения в фотодиоде начинает течь ток. Сигнал поступает на встроенный усилитель и далее – на полосовой фильтр, настроенный на фиксированную частоту, который защищает приемник от помех.

Чтобы сигнал от пульта ДУ принимался ИК приемником Ардуино, пульт должен быть настроен на соответствующую частоту. Поэтому не каждый пульт ДУ подойдет для нашего ИК приемника.

Схема подключения

Разберем на распиновку ИК приемника. Традиционный ИК-приемник имеет три контакта:

Распиновка ИК приемника для пульта ДУ

  • Питание (VCC, 5V)
  • Земля (GND)
  • Данные (выходное напряжение, VOUT)

Для удобства можно использовать и готовые модули ИК приемника, которые дополнят ИК приемник RC-фильтром.

Давайте же соберем что-нибудь!

Задача

Светодиод, управляемый дистанционно.

Необходимые компоненты

Итак, нам понадобится:

  • 1 пульт ДУ. Подойдет практически любой ИК пульт дистанционного управления.
  • Плата Ардуино, макетная плата, перемычки

В качестве светодиода будем использовать встроенный светодиод ардуино.

Схема сборки

Соберем такую схему:

Скетч

Для работы нашего скетча нам понадобится специальная библиотека — Arduino-IRremote, которую потребуется установить.

Загрузим в ардуино такой скетч:

Результат

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

Если вы используете какой-то другой пульт, то программу потребуется настроить на код нажимаемой вами кнопки. Для этого программа выводит все коды, получаемые от пульта.

Объяснение

Для работы с пультом нам потребуется объявить два объекта: типа IRrecv – для приемника и типа decode_results – для разбора полученных приемником данных.

decode_results irData; // переменная для получения данных от ИК приемника

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

Чтобы приемник начал работать на прием, необходимо его включить. Мы это делаем в функции setup():

Метод decode() позволяет получить данные от приемника.

Если decode() возвращает значение > 0, то сигнал поступил, и его можно проанализировать.

Чтобы понять какой именно сигнал получил, мы анализируем свойство value объекта данных:

Чтобы продолжить получение данных, надо вызвать метод resume():

Заключение

Теперь вы умеете управлять устройством Ардуино не вставая с дивана 😉. Не нужно разводить кнопки. Или кнопки можно просто продублировать пультом.

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

Обзор модуля HX1838 с ИК пультом — 21 кнопка

Автор: Сергей · Опубликовано 19.02.2019 · Обновлено 26.09.2019

В этой статье расскажу о популярном инфракрасном пульте управления модель HX1838 (ИК пульт), а так же покажу пример подключения ИК пульта и Arduino. С его помощью можно создавать роботов с дистанционным управлением, управлять различными устройствами и так далее.

Технические параметры

► Модель: HX1838
► Датчик пульта: VS1833B
► Напряжение питания: 3.3 В — 5 В.
► Количество кнопок: 21 шт.
► Расстояние приема: до 8 м (зависит от внешних факторов).
► Габариты платы модуля: 24 мм х 16 мм х 33 мм
► Габариты пульта: 87 мм х 40 мм х 7 мм

Общие сведения

Что значит инфракрасный?
Инфракрасное излучение — это форма света, похожая на обычный свет. Единственная разница между ИК-светом и видимым светом — это частота и длина волны. Инфракрасное излучение находится за пределами диапазона видимого света, поэтому люди не могут его видеть. Поскольку ИК является светом, для связи от приемника до передатчик, необходима прямая видимость.

ИК передатчика и приемника
Для инфракрасной связи требуется ИК-передатчик и ИК-приемник. Передатчик похож на стандартный светодиод, за исключением того, что он излучает свет в ИК-спектре. Если посмотреть на переднюю часть пульта, можно увидеть ИК-передатчик.

ИК-приемник представляет собой фотодиод и предварительный усилитель, который преобразует ИК-свет в электрический сигнал. Так как всегда есть посторонние ИК шумы (дневной свет, лампы и так далее) и чтобы все эти шумы не мешали передачи сигнала, была выбрана частота в 38 кГц с длиной волны 940 нм (большинство ИК пультов работают на этой частоте). Таким образом, ИК-приемник будет знать, что сигнал на частоте 38 кГц был отправлен от передатчика.

Назначение выводов
► VCC: «+» питание модуля
► GND: «-» питание модуля
► D0: цифровой выход

Подключение
модуля HX1838 с ИК пультом к Arduino

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуля HX1838 с ИК пультом — 21 кнопка x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.

Подключение:
ИК приемник, можно подключить напрямую или воспользоватся небольшой платой, которая обычно идет в комплекте (в примере используется плата). Собираем схему согласно рисунку ниже.

Программа:
После сборки схемы, можно скачать и установить библиотеку «IRremote«, далее скачиваем или копируем скетч и загружаем его в плату Arduino.

Источники:

http://xn--18-6kcdusowgbt1a4b.xn--p1ai/%D0%B8%D0%BA-%D0%BF%D1%80%D0%B8%D0%B5%D0%BC%D0%BD%D0%B8%D0%BA-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE/

http://jarduino.ru/2019/09/15/arduino-exp14-ir-remote-control/

http://robotchip.ru/obzor-modulya-hx1838-s-ik-pultom/

http://developer.alexanderklimov.ru/arduino/7segment_display.php

Ссылка на основную публикацию