Перейти к содержанию

Arduino С Использованием Irremoute


Рекомендуемые сообщения

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

Есть Arduino nano, и при помощи вышеупомянутой библиотеки, я могу считать код кнопки любого пульта, после, я делаю из ардуины пульт, переписав скетч и добавив ИК светодиод, все работает... Но появилась новая хотелка, убрать из данной схемы оптическую развязку и напрямую подсоединить Arduino к кондиционеру или телевизору, и включить устройство. Я выпаял фототранзистор, из платы кондиционера, на эмитор ее припаял свой выход с ардуины, ничего не работает. После знакомыми в этой области было предложено сделать развязку по току, между друиной и платой кондиционера стали керамический конденсатор маленькой емкости и реостат, снова ничего, попробовал вместо фототранзистрора обычный транзистор, а на базу генерить сигнал с друины, ничего, взял оптопару,из другой платы кондиционера, думал тут уж наверняка, но нет... После на форуме нашел запись о том, что для подобного соединения нужно изменить библиотеку IrRemoute, может кто-то из Вас делал что-то подобное до меня и опираясь на опыт подскажет мне доступное решение. Не нужно вопросов, зачем тебе это, во первых меня задело то, что ничего не получается, а значит нужно найти ответ, а во вторых есть одна задумка с использованием этой схемы, а значит есть желание найти ответы. Всем огромное спасибо за уделенное время, буду рад любой помощи...

Ссылка на комментарий
Поделиться на другие сайты

Рассуждаем:

Из утверждения, что "делаю из ардуины пульт, переписав скетч и добавив ИК светодиод, все работает", а также зная, что передача сигнала производится путем манипулирования несущей (36, 38кГц и др.), делаю вывод, что библиотека ардуины уже заполняет информационные импульсы импульсами несущей частоты. Подозреваю, что " фототранзистор, из платы кондиционера," -это интегральный ИК-приемник, на выходе которого только информационные импульсы, без несущей. Убрав этот узел, автор подал на вход "мозгов" "мусор" из несущей и инфоимпульсов.

Решение:

1-формировать инфоимпульсы без использования библиотеки (или изменить ее, если возможно),

2-вернуть на место ИК-приемник, вплотную к нему разместить ИК-светодиод и закрыть все это чем-нибудь непрозрачным, чтобы исключить реагирование на команды ПДУ (если это необходимо).

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

на эмитор ее припаял свой выход с ардуины, ничего не работает.
И не заработает - земли должны бить общие. Если Вы вообще транзистор не перепутали с ТСОПом.

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

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Да с питанием нет проблем, с той же платы кондиционера после стабилизатора можно снять 5 В для друины, а вот менять irremoute второй раз предлагают, думал кто-то делал это до меня и подскажет, спасибо всем отписавшимся! Да, забыл упомянуть, нет осцилографа, а потому не могу сравнить формы сигнала, заполнения и т.д.(((

Изменено пользователем Disa1702
Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я, конечно, с трудом представляю, что означает фраза "менять irremoute", но скажу одно. Если на передатчике стоит светодиод, а на приёмнике - фотодиод (или фототранзистор), то, при передаче сигнала один к одному, всё должно работать. Если на приёмнике стоит ИС (например TSOP), то в передатчике нужно убирать несущую частоту, оставляя только полезный сигнал.

Вы точно выпаяли именно фототранзистор ? Как он выглядет, покажите нам его ?

Ссылка на комментарий
Поделиться на другие сайты

Вечером выложу фото, а irremout редактируется легко, она написана на C, и код ее открыт, там описаны все функции, как и что работает, даже с коментами, но я не знаю C)))

Ссылка на комментарий
Поделиться на другие сайты

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

Не могу понять, почему это не работает, казалось бы, изменений нет)

post-198982-0-56715500-1456846987_thumb.jpg

post-198982-0-93701100-1456846989_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

Не могу понять, почему это не работает, казалось бы, изменений нет)
Вот почему :

Если на приёмнике стоит ИС (например TSOP), то в передатчике нужно убирать несущую частоту, оставляя только полезный сигнал.

Ссылка на комментарий
Поделиться на другие сайты

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

есть функция

void setup()

{

Serial.begin(9600);

}

unsigned int f_vdown[68]={8900 ,4450 ,550 ,600 ,550 ,550 ,550 ,550 ,550 ,550 ,550 ,550 ,600 ,550 ,550 ,550 ,550 ,550 ,600 ,1650 ,550 ,1650 ,550 ,1650 ,600 ,1650 ,550 ,1650 ,550 ,1700 ,550 ,1650 ,600 ,1650 ,550 ,550 ,550 ,550 ,600 ,500 ,600 ,1650 ,550 ,1650 ,600 ,500 ,600 ,550 ,550 ,1650 ,600 ,1650 ,550 ,1650 ,550 ,1650 ,600 ,550 ,550 ,550 ,550 ,1650 ,600 ,1650 ,550 ,550 ,550};

void loop() {

irsend.sendRaw(f_vdown,68,38);

delay(1*10);

}

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

ее код(функции):

sendRaw(unsigned int buf[], int len, int hz)

{

enableIROut(hz);

for (int i = 0; i < len; i++) {

if (i & 1) {

space(buf);

}

else {

mark(buf);

}

}

space(0); // Just to be sure

}

// Note: first bit must be a one (start bit)

кто объяснить сможет начинающему конструктору, как мне сигнал от левака отчистить?

Ссылка на комментарий
Поделиться на другие сайты

Судя по коду.

В sendRaw передаётся массив чисел, кол-во ячеек массива и несущая частота.

Что она делает ? - Перебирает все значения в массиве, чётные передаёт в функцию space (по всей видимости, неактивное состояние выхода), нечётные в mark (активное состояние).

Числа в массиве, по всей видимости - временные интервалы в us.

Несущая частота реализуется не тут, где-то глубже в библиотеке.

Но, Вы можете на основе функции sendRaw сделать свою, без несущей, просто дёргая любой ногой дурины.

Ссылка на комментарий
Поделиться на другие сайты

стоп, но в моем массиве нет нечетных, и следовательно состояние выхода всегда неактивное?

У меня, почему то, такая же мысль сразу промелькнула :) Но не стал советовать :) созвучно с никнеймом "убиватель МК"

Ссылка на комментарий
Поделиться на другие сайты

Чёт/нечет по позиции ячейки, а не по её значению.

Библиотека не реализует никакой протокол, просто тупо повторяет последовательность ноликов/единичек. Модулируя их несущей.

Ссылка на комментарий
Поделиться на другие сайты

круть, теперь даже я начинаю въезжать, а можно еще немного по пристаю? Пока мне везет и меня не послали))

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

Вот еще интересная инфа с форума, может кто-то когда-то сталкнется с этой проблемой, а здесь будет все собрано, и рассуждения на эту тему, тоже)

CEBKACooler, убрать генератор несущей, то есть передавать не промодулированный, а модулирующий сигнал, собсно те нули-единицы, или mark/space, описанные в вашем CIR протоколе. И подключать выход передатчика к проводу, к которому шёл выход фотоприёмника (левый вывод, если смотреть на линзу и выводы вниз, если речь о TSOP1?38/1?40), через оптопару, инвертированный (т. к. когда ИК светодиод светится, на выходе приёмника - ноль, не светится - единица).

Чтобы знать длину mark/space, надо иметь таблицу с описанием протокола (ищется по названию протокола) либо читать исходник IRRemote, там всё есть в #define. Сама IRRemote посылает модулированные пачки, так что в обход фотоприёмника - будет либо не работать, либо работать с тупкой.

Как вариант, можно всё же оставить программу без изменений и посылать так, поставив на провод выхода небольшой конденсатор (0.022-0.1 мкФ), на всякий случай всё же через оптопару.

Как самый дубовый вариант - а что мешает вытащить светодиод из пульта, подвести двумя проводами куда надо, и приклеить на термоклей, в непосредственной близости от фотоприёмника? Минимум усилий, и бонусом - самодельная "оптопара", гарантирующая развязку.

Ссылка на комментарий
Поделиться на другие сайты

То, что библа ШИМ юзает - ежу понятно, непонятно (мне) как он (CCP) поведет себя при таких значениях.

"получаю я кучу прямоугольных импульсов на выходе из друины, а должен??" получаете пачки импульсов несущей (в вашем случае 38кГц), а нужно просто вкл-выкл светодиода.

Ссылка на комментарий
Поделиться на другие сайты

а если знать протокол, я не смогу опираясь на те пачки импульсов переписать мою переменную так, чтобы получить вкл/выкл? Я просто не оч понимаю как, но кажется мне что смогу...

То, что библа ШИМ юзает - ежу понятно, непонятно (мне) как он (CCP) поведет себя при таких значениях.

могу вбить любые значения, только скажите что? И я покажу, как он себя поведет)

Ссылка на комментарий
Поделиться на другие сайты

Так вам и надо "всего лишь" сформировать необходимые посылки "единиц" и "нулей" с необходимыми длительностями. :)

ПС. "могу вбить любые значения, только скажите что? И я покажу, как он себя поведет) "

irsend.sendRaw(f_vdown,68,38); - попробуйте заменить на 0.

Изменено пользователем КЭС
Ссылка на комментарий
Поделиться на другие сайты

Здесь например протокол NEC, как мне имея то что я имею (чтобы не возвращаться на страницу назад копирую)

8900 ,4450 ,550 ,600 ,550 ,550 ,550 ,550 ,550 ,550 ,550 ,550 ,600 ,550 ,550 ,550 ,550 ,550 ,600 ,1650 ,550 ,1650 ,550 ,1650 ,600 ,1650 ,550 ,1650 ,550 ,1700 ,550 ,1650 ,600 ,1650 ,550 ,550 ,550 ,550 ,600 ,500 ,600 ,1650 ,550 ,1650 ,600 ,500 ,600 ,550 ,550 ,1650 ,600 ,1650 ,550 ,1650 ,550 ,1650 ,600 ,550 ,550 ,550 ,550 ,1650 ,600 ,1650 ,550 ,550 ,550

кстати друина считала это вот так

-31996 8950 -4450 550 -550 600 -500 600 -550 550 -550 550 -550 600 -500 600 -1650 550 -550 550 -1700 550 -1650 600 -1650 550 -1650 600 -1650 550 -1650 550 -600 550 -1650 550 -550 550 -1700 550 -550 550 -550 600 -1650 550 -550 550 -550 550 -550 600 -1650 550 -550 550 -1650 600 -1650 550 -550 550 -1700 550 -1650 600 -1650 550

как переделать в нужное для прямого включения в контроллер? напишите начало а я пойму суть и доделаю... спасибо

irsend.sendRaw(f_vdown,68,38); - попробуйте заменить на 0.

Чуть позже отпишусь что получается, соберу все воедино, просто уже кондиционер собрал в кучу, надо плату достать)

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

post-198982-0-30145800-1456852722.gif

Изменено пользователем Disa1702
Ссылка на комментарий
Поделиться на другие сайты

непонятно (мне) как он (CCP) поведет себя при таких значениях
А вот тут, наверно, только одному ежу и известно :)

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...