Дублировать ИК пульт от Кондиционера Hitachi

galileo
Offline
Зарегистрирован: 07.07.2015

Пытаюсь дублировать пульт управления, но никак не удаётся успешно запустить кондиционер с помощью ардуинки.

u0MP9aj.jpg

Пытался всевозможными способами с помощью библиотеки IRRemote, послушался совета статьи
http://stackoverflow.com/questions/22751255/how-to-correctly-receive-and-send-raw-ir-data-from-arduino в которой уточняется что надо увеличить буфер, как я и сделал. 

#define RAWBUF 400

помогло начитать сигнал в 198 байт, который я отправил или попытался отправить на разных частотах, но всё безуспешно.

код:

#include <IRremote.h>

IRsend irsend;

unsigned int powerOn1[198] = {0x9,0x8,0x9,0x19,0x8,0x19,0x9,0x19,0x9,0x18,0x9,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x9,0x8,0x8,0x8,0x9,0x8,0x9,0x8,0x9,0x8,0x8,0x9,0x8,0x8,0x9,0x8,0x9,0x19,0x8,0x19,0x9,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x9,0x8,0x8,0x8,0x9,0x8,0x9,0x8,0x9,0x8,0x8,0x9,0x8,0x8,0x9,0x8,0x9,0x19,0x8,0x19,0x9,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x9,0x8,0x8,0x9,0x8,0x8,0x9,0x8,0x9,0x8,0x9,0x8,0x8,0x9,0x8,0x8,0x9,0x19,0x8,0x1A,0x8,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x9,0x8,0x8,0x9,0x8,0x8,0x9,0x8,0x9,0x8,0x9,0x8,0x8,0x9,0x8,0x8,0x9,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x8,0x19,0x9,0x19,0x8,0x1A,0x8,0x19,0x9,0x8,0x8,0x19,0x9,0x19,0x9,0x8,0x9,0x18,0x9,0x8,0x9,0x19,0x8,0x9,0x8,0x19,0x9,0x8,0x9,0x8,0x8,0x19,0x9,0x8,0x9,0x19,0x8,0x9,0x8,0x19,0x9,0x19,0x8,0x9,0x8,0x8,0x9,0x8,0x9,0x19,0x8,0x9,0x8,0x19,0x9,0x19,0x8,0x9,0x8};

void setup()
{
  pinMode(3, OUTPUT);
 Serial.begin(9600);
}

void loop() {
  int kHz = 0;
Serial.println("IRSendRaw go...");
     // altered the code just to send/test my raw code
       Serial.println("1");
       irsend.sendRaw(powerOn1,198,38);
       do{
                Serial.print("send khz = ");
                Serial.println(kHz);
       delay(1000);
       irsend.sendRaw(powerOn1,198,32);
       }while(kHz++ < 61);
       Serial.println("done");
       delay(5000);
}

 

В результате я получил:

IRSendRaw go...
1
send khz = 0
send khz = 1
send khz = 2
...
send khz = 29
send khz = 30
send khz = 31
send khz = 32
send khz = 33
send khz = 34
send khz = 35
send khz = 36
send khz = 37
send khz = 38
send khz = 39
send khz = 40
send khz = 41
...
send khz = 61
done

Потенциометр ставил на 100 Ом, 200 и даже на 0, светодиод не сгорел.

У меня мысль о том, что ничего не отправляется вообще, потому что на камере мобильника нет никакой реакции, которую можно наблюдать на заводском пульте HITACHI. Тем не менее, если попытаться просто "зажешь" ИК свсетодиод, то он излучает фиолетовый свет

digitalWrite(13, HIGH); 

в вышеуказанном коде светодиод я ставил на PIN 3, как указано в доках.

 

galileo
Offline
Зарегистрирован: 07.07.2015

Я всё-таки думал, может быть нехватает мощности отправить сигнал?

перепробовал разные ИК светодиоды - всё было бесполезно.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
galileo
Offline
Зарегистрирован: 07.07.2015

Проблема в том, что ИК светодиод вообще не горит используя IRRemote, вот наглядное изложение данной проблемы:

http://www.youtube.com/watch?v=eS-Q8FoFpwc

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

полярность перепутана или сжег ик диод, так как у него напряжение меньше чем у красного

galileo
Offline
Зарегистрирован: 07.07.2015

Диод не сгорел, я записал для проверки вот другое видео http://www.youtube.com/watch?v=6UXrTWNnyQw

Я понял в чём дело, убрал резистор и увидел, что ИК светодиод еле еле загорается (через камеру видно). Но мне кажется не хватает мощности, сигнал выходящий из PIN 3 слишком слабый

Может быть надо увеличить мощность транзистором как-то?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

странно. напряжение падения ИК диодов насколько помню 1.2В. или мне только такие попадались. Видно твой диод более высоковольтный

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

galileo
Offline
Зарегистрирован: 07.07.2015

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

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

galileo, это точно не ик-фотодиод? :-)

galileo
Offline
Зарегистрирован: 07.07.2015

уверен

может в плате ардуино что-то сломалось?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

http://amperka.ru/product/ir-led

что то не так у тебя

Характеристики
Длина волны: 940 нм
Падение напряжения: 1,2–1,5 В
Прямой ток: 20 мА
Угол обзора: 30°

может ты его попалил слишком высоким током и он деградировал. резистор какой на него вешал?

AntonK
Offline
Зарегистрирован: 13.07.2015

Я недавно запускал панасоник.  С чем столкнулся опишу может чего поможет.

ИК диоды пробывал разные. Одни купил на рынке без тестирования (все мертвые оказались).

Потом в магазин заехал там сразу проверили на тестере все ок. 

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

Теперь то что касается чтения сигнала через библиотеку IRRemote.

У меня RAW был равен 132. вроде все значения получил, пробую передавать не работает. Частоты менял и вплотную подносил.

непомогало нечего.  

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

Таким способом я понял что длина RAW в моем случае не 132  а 442. А 132 это только пакет инициализации он оказался у всех кнопок на моем пульте одинаковый, потом была длинная пауза порядка 10000 микросекунд и шел основной пакет всех настроек. 

(пульт кондея передает все настройки сразу температуру, режим , позиция заслонки и тд)

что касается частоты после того когда я составил RAW целиком и отправил в цикле на разных частотах, то на 33 уже команда прошла, а на 36 на самом большом растоянии. 

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

galileo, "amp x010" это внтуренний артикул в амперке, так что что именно там лежит - большой вопрос ) Я думаю тут 2 варианта:  1 -он уже сдох. 2 -это фотодиод.  Включите его как фотодиод, проверьте.

galileo
Offline
Зарегистрирован: 07.07.2015

Вешал резистор, он точно не спалился, вот тут я проверил его путём прямого вывода сигнала HIGH через тот же пин 3

и вот ИК светодиод отлично работает. 
http://www.youtube.com/watch?v=GOdW975L3bk

Мне кажется тут что-то с библиотекой IRRemote, она выдаёт слишком слабый сигнал на ПИН 3, который у неё по умолчанию установлен.

IRRemote Version:
 * Version 0.1 July, 2009  * Copyright 2009 Ken Shirriff

 

galileo
Offline
Зарегистрирован: 07.07.2015

Т.е. мне прислали не то, что надо было ?

а почему он тогда "загорается" при других условиях, с  другим кодом?

digitalWrite(13, HIGH); 

http://www.youtube.com/watch?v=GOdW975L3bk

AntonK
Offline
Зарегистрирован: 13.07.2015

А не пробывали считать коды с пульта телевизора ? и даже на слабом свечении  отправить?

 

galileo
Offline
Зарегистрирован: 07.07.2015

хорошая идея... надо что-то такое попробовать..

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

galileo пишет:

а почему он тогда "загорается" при других условиях, с  другим кодом?

Вы считаете что это загорается? Да его свет еле видно, мои светятся так, что  видно только яркий свет, а у вашего внутренности светодиода рассмотреть можно.  Какой вы ставите токоограничительный резистор? Там ом на 180 нужно (примерно) . Измерьте тестером сколько потребляет, если меньше 10ма, то нужно уменьшать номинал резистора.

AntonK
Offline
Зарегистрирован: 13.07.2015

То как на камере отборажается мигания ИК диода ..  не показатель.  От камеры зависит.

Я когда к панасонику подход искал вообще без резистора подключал.  На разных камерах светился по разному.

Да и сейчас сборка работает без него .  И 3в пролетает спокойно. 

ИК диоды самые простые и дешевые в магазине купил.  Не одного не спалил еще.

galileo У вас в регионе нет радио магазинов?  или точек где пульты продают у них бывают ик диоды.

Я их покупал по 10р штука. У них и тестер сразу был. все проверили.

 

galileo
Offline
Зарегистрирован: 07.07.2015

В Москве, в Чип Дипе и в Амперке покупал, разные ИК диоды: тёмносиние, голубенький (на видео) и прозрачный. Результат одинаковый.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

темносиние скорее всего фотодиоды, голубые и прозрачные ик

bulat943
Offline
Зарегистрирован: 19.09.2016

http://chipenable.ru/index.php/projects-avr/item/98-miniatyurnyy-universalnyy-ik-pult-distantsionnogo-upravleniya.html

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

max.simba
Offline
Зарегистрирован: 07.09.2018

Библиотеки для управления конденционером

Был интересный проект по управлению кондеем в зависимости от температуры.
Долго думал как распарсить посылку, у некоторых моделей она достигает до несколько сотен знаков, да еще и с большими перерывами между блоками.
В общем наткнулся я на интересный проект ToniA на гит хабе: https://github.com/ToniA/Raw-IR-decoder-for-Arduino
И второй его проект с большим количеством библиотек для разных марок конденционеров: https://github.com/ToniA/arduino-heatpumpir
Может кому помогут в своих проектах.