Дублировать ИК пульт от Кондиционера Hitachi
- Войдите на сайт для отправки комментариев
Пытаюсь дублировать пульт управления, но никак не удаётся успешно запустить кондиционер с помощью ардуинки.
Пытался всевозможными способами с помощью библиотеки 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, как указано в доках.
Я всё-таки думал, может быть нехватает мощности отправить сигнал?
перепробовал разные ИК светодиоды - всё было бесполезно.
https://www.google.ru/?gws_rd=ssl#newwindow=1&q=hitachi%20ir%20codes
Первый же результат, может быть поможет..... https://www.remotecentral.com/cgi-bin/codes/hitachi/
или
https://perhof.wordpress.com/2015/03/29/reverse-engineering-hitachi-air-...
https://www.google.ru/?gws_rd=ssl#newwindow=1&q=hitachi+ir+codes+khz
Проблема в том, что ИК светодиод вообще не горит используя IRRemote, вот наглядное изложение данной проблемы:
http://www.youtube.com/watch?v=eS-Q8FoFpwc
полярность перепутана или сжег ик диод, так как у него напряжение меньше чем у красного
Диод не сгорел, я записал для проверки вот другое видео http://www.youtube.com/watch?v=6UXrTWNnyQw
Я понял в чём дело, убрал резистор и увидел, что ИК светодиод еле еле загорается (через камеру видно). Но мне кажется не хватает мощности, сигнал выходящий из PIN 3 слишком слабый
Может быть надо увеличить мощность транзистором как-то?
странно. напряжение падения ИК диодов насколько помню 1.2В. или мне только такие попадались. Видно твой диод более высоковольтный
не тока не хватает. если параллельно краному красный светодиод занижает напряжение и ик диоду нехватает чтобы гореть. если только ик то будет работать. красный убери
Убирал красный диод, один ИК оставлял, но всё равно еле заметно, уж очень мало энергии чтобы его зажечь. Красный как бы реагирует на малейший ток и его легко заметно, а ИК - как-то по другому устроен
galileo, это точно не ик-фотодиод? :-)
уверен
может в плате ардуино что-то сломалось?
http://amperka.ru/product/ir-led
что то не так у тебя
может ты его попалил слишком высоким током и он деградировал. резистор какой на него вешал?
Я недавно запускал панасоник. С чем столкнулся опишу может чего поможет.
ИК диоды пробывал разные. Одни купил на рынке без тестирования (все мертвые оказались).
Потом в магазин заехал там сразу проверили на тестере все ок.
Когда проверяеш диод на камеру от камеры зависит (на яблоке светит еле еле, а вот старый филипс и вебка на ноуте очень яркое свечение).
Теперь то что касается чтения сигнала через библиотеку IRRemote.
У меня RAW был равен 132. вроде все значения получил, пробую передавать не работает. Частоты менял и вплотную подносил.
непомогало нечего.
Решил проверить осцилографом (но его разумеется у меня небыло). В инете нашел как через микрофоный порт читать ика команды в аудио редактор. берем еще один ИКдиод короткий конец подпаиваем к массе, длинный к сигнальному. редактор скачал бесплатный Audacity, в нем создаешь монодоржку, жмем запись, подносим ик диод пульта к диоду на спайке в плотную прямо друк к другу жмем на пульте кнопку вкл например, сверху зеленый индикатор сигнала в этот момент должно зашкалить. Останавливаем запись находим на дорожке осцилограмму маштабируем смотрим что получилось. Теперь создаем еще одну дорожку и такимже спосбом пишем то что передает ИК диод на сборке с ардуино. Теперь сравниваем две осцилограммы.
Таким способом я понял что длина RAW в моем случае не 132 а 442. А 132 это только пакет инициализации он оказался у всех кнопок на моем пульте одинаковый, потом была длинная пауза порядка 10000 микросекунд и шел основной пакет всех настроек.
(пульт кондея передает все настройки сразу температуру, режим , позиция заслонки и тд)
что касается частоты после того когда я составил RAW целиком и отправил в цикле на разных частотах, то на 33 уже команда прошла, а на 36 на самом большом растоянии.
galileo, "amp x010" это внтуренний артикул в амперке, так что что именно там лежит - большой вопрос ) Я думаю тут 2 варианта: 1 -он уже сдох. 2 -это фотодиод. Включите его как фотодиод, проверьте.
Вешал резистор, он точно не спалился, вот тут я проверил его путём прямого вывода сигнала HIGH через тот же пин 3
и вот ИК светодиод отлично работает.
http://www.youtube.com/watch?v=GOdW975L3bk
Мне кажется тут что-то с библиотекой IRRemote, она выдаёт слишком слабый сигнал на ПИН 3, который у неё по умолчанию установлен.
Т.е. мне прислали не то, что надо было ?
а почему он тогда "загорается" при других условиях, с другим кодом?
http://www.youtube.com/watch?v=GOdW975L3bk
А не пробывали считать коды с пульта телевизора ? и даже на слабом свечении отправить?
хорошая идея... надо что-то такое попробовать..
а почему он тогда "загорается" при других условиях, с другим кодом?
Вы считаете что это загорается? Да его свет еле видно, мои светятся так, что видно только яркий свет, а у вашего внутренности светодиода рассмотреть можно. Какой вы ставите токоограничительный резистор? Там ом на 180 нужно (примерно) . Измерьте тестером сколько потребляет, если меньше 10ма, то нужно уменьшать номинал резистора.
То как на камере отборажается мигания ИК диода .. не показатель. От камеры зависит.
Я когда к панасонику подход искал вообще без резистора подключал. На разных камерах светился по разному.
Да и сейчас сборка работает без него . И 3в пролетает спокойно.
ИК диоды самые простые и дешевые в магазине купил. Не одного не спалил еще.
galileo У вас в регионе нет радио магазинов? или точек где пульты продают у них бывают ик диоды.
Я их покупал по 10р штука. У них и тестер сразу был. все проверили.
В Москве, в Чип Дипе и в Амперке покупал, разные ИК диоды: тёмносиние, голубенький (на видео) и прозрачный. Результат одинаковый.
темносиние скорее всего фотодиоды, голубые и прозрачные ик
http://chipenable.ru/index.php/projects-avr/item/98-miniatyurnyy-universalnyy-ik-pult-distantsionnogo-upravleniya.html
я этот собирал,работает замечательно,рис платы уже не найду-он где-то в компе....
Библиотеки для управления конденционером
Был интересный проект по управлению кондеем в зависимости от температуры.
Долго думал как распарсить посылку, у некоторых моделей она достигает до несколько сотен знаков, да еще и с большими перерывами между блоками.
В общем наткнулся я на интересный проект ToniA на гит хабе: https://github.com/ToniA/Raw-IR-decoder-for-Arduino
И второй его проект с большим количеством библиотек для разных марок конденционеров: https://github.com/ToniA/arduino-heatpumpir
Может кому помогут в своих проектах.