Отправка ИК-сигнала

kost82
Offline
Зарегистрирован: 30.11.2015

Добрый день!

Вопрос по библиотеке Arduino-IRremote: решил я с помощью этой библиотеки управлять офисным кондиционером. Купил приемник (TSOP31238) пару ИК-диодов (TSAL6100 и L-7113F3C) и начал пробовать. Сигнал с пульта я принял без проблем, для этого загрузил скетч из примеров библиотеки IRrecvDump (и еще пробовал IRrecvDumpV2), направил пульт в приемник и считал код. Результат чтения: код кнопки 0xC3120700 (32 бита) и протокол NEC.

Дальше я взял из примеров библиотеки код для отправки и немного его модернизировал:

#include <IRremote.h>

#define BUTTON 7

IRsend irsend;

void setup()
{
}

void loop() {
  if (digitalRead(BUTTON)) {
    irsend.sendNEC(0xC3120700, 32);
    delay(40);
    Serial.println("SEND");
  }
  delay(500); //5 second delay between each signal burst
}

То есть по нажатию кнопки я отправляю этот самый код при помощи функции sendNEC, вторым аргументом она принимает разрядность кода (32 бита). Схема простая: на 3 пине Arduino Uno висит ИК-диод, последовательно с резистором на 220 Ом, а на 7 пине - кнопка с подтяжкой на массу резистором 10К. И вроде бы все хорошо, ИК-диод моргает (проверял глядя через камеру телефона), но кондиционер никак не реагирует. Пробовал подносить всю конструкцию ближе - тоже безрезультатно (хрен пойми где спрятан ИК приемник в этом кондиционере, но подносил со всех возможных сторон к нему свое устройство - толку ноль). Посмотрел через камеру телефона в родной пульт - там ИК-диод моргает поярче. Тогда подцепил параллельно первому - второй токоограничивающий резистор на 220 Ом (других под рукой не было) - моргает чуть ярче, но результата нет. Напрямую без резисторов еще ярче светит, но результат тоже нулевой.

Подскажите пожалуйста, что я делаю не так? Может ИК-диод помощнее взять, на 60мВт, например, вместо 30? Насколько критична длина волны, например 940 и 950 нм - есть какая-нибудь разница для приемника в кондиционере?

negavoid
Offline
Зарегистрирован: 09.07.2016

kost82
Offline
Зарегистрирован: 30.11.2015

Извиняюсь, но я немного не понял чем это поможет? Я подключал диод практически напрямую к выходу ардуины (надо конечно токоограничивающий резистор туда воткнуть чтобы порту не поплохело), но по-идее он получал 5 вольт через такой же ключ-транзистор встроенный в микросхему.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

kost82, (1)обычные ИК-светодиоды потребляют порядка 100мА, и напрямую к ноге  мк их никто не включает. Только через ключевой транзистор.(2) у кондиционеров бывают очень длинные пачки импульсов,  поспрашивайте гугля, на  тему захвата и эмуляции пультов от кондея очень много написано.

 

ВН
Offline
Зарегистрирован: 25.02.2016

на ИК-диоды часто до 1А в импульсе подается, см. даташит.

лень разбираться, что там за параметр 32, но если это частота модуляции в килогерцах, так у вас приемник на 38, а не 32.

И прямой или инверсный сигнал для ИКМ имеет значение, потому транзистор лучше включать через схему фиксации, чтобы не спалить ИК-диод при ошибках в программе или  зависании проца

 

svm
Offline
Зарегистрирован: 06.11.2016

Управление кондиционерами очень сильно различается. Зачастую они отправляют несколько посылок подряд, в зависимости от передаваемой команды. Например у меня у Электролюкса длина посылки изменяется от 72 до 500 символов. Стандартная программа принимает кажется до 255 символов. Поэтому Вы можете увидеть не все, и соответственно не все передаете. Не помню где, но в интернете нашел вариант программы приинимающий посылки неограниченной длины. Записал в RAW формате и его-же передаю. Недостаток - невозможность изменить команду т.к. алгоритм формирования команд у производителей отличается, а разбираться с ним лень. В настоящий момент работает только включение на фиксированной температуре, скорости вентилятора ну и прочее, и выключение. В принципе для удаленного управления достаточно. Для некоторых моделей есть вполне вменяемое управление, где-то на ГИТхабе встречал.

kost82
Offline
Зарегистрирован: 30.11.2015

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

svm
Offline
Зарегистрирован: 06.11.2016

kost82 пишет:

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

Ошибаетесь, чаще при включении передаются все настройки запомненные в пульте (температура, положение шторок и т.д. и т.п.), сам кондиционер ничего не помнит. Поищите в инете - ИК управление сплит системами. Начните хотя-бы с этого: https://habr.com/ru/company/iridiummobile/blog/389049/ Не помню есть-ли у меня ссылки. Вечером посмотрю дома.

svm
Offline
Зарегистрирован: 06.11.2016