Включение и выключение нагрузки по нажатию кнопки на ИК пульте
- Войдите на сайт для отправки комментариев
Сб, 26/08/2017 - 15:15
Всем доброго дня!
Являюсь новичком в миру ардуино, только купил его и начал мастерить. Задача такова:
нужно одновременно с включением телевизора с его пульта включать подключенные через релюшку к ардуине колонки. при выключении телевизора выключать колонки. Хочу осуществить это так:
подключить к ардуине ИК приемник, считать код кнопки питания на пульте телевизора.
Нужно включать и выключать колонки именно при нажатии одной кнопки на пульте.
Нашел такой скетч в сети:
#include <IRremote.h> // библиотека для ИК int RECV_PIN = 6; // pin ИК приемника IRrecv irrecv(RECV_PIN); // создаем объект получения сигнала с заданного порта decode_results results; // переменная хранящая результат int LED = 8; // pin нашего светодиода void setup() { irrecv.enableIRIn(); // включаем ИК-приемник pinMode(LED, OUTPUT); // устанавливает режим работы - выход } void loop() { if (irrecv.decode(&results)) { // если есть сигнал if (results.value == 0xFF40BF) { // код моей кнопки "FF40BF". У Вас он будет дугой! digitalWrite(LED, HIGH); // зажигаем светодиод } if (results.value == 0xFF32CD) { // код моей кнопки "FF32CD". У Вас он будет дугой! digitalWrite(LED, LOW); // тушим светодиод } irrecv.resume(); // получаем следующее значение } }
Но тут используются разные кнопки для включения и выключения. Помогите пожалуйста переделать скетч, чтобы реагировал на нажатие одной кнопки.
Вы точно не хотите почитать какую-нибудь книжку и хоть чуть-чуть научиться программировать?
Ну, сегодня я необъяснимо добрый, так что про кнопку я Вам подскажу, но очень советую поучиться, чтобы не выглядеть .... в общем без обид, но Ваш вопрос выглядит как вопрос идиота, не способного освоить программу 6-го класса средней школы.
Вместо строк 14-19 вставьте такие
doc_bravn, плохая затея. Нет гарантии что устройства будут включатся/отключаться одновременно. Нужно либо включать разными кнопками, либо полность изменить схемотехнику, включая например от детектора тока в цепи питания телевизора, или детектора звука.
правильно будет работать, если включать одной кнопкой, а выключать другой.
Вы точно не хотите почитать какую-нибудь книжку и хоть чуть-чуть научиться программировать?
Ну, сегодня я необъяснимо добрый, так что про кнопку я Вам подскажу, но очень советую поучиться, чтобы не выглядеть .... в общем без обид, но Ваш вопрос выглядит как вопрос идиота, не способного освоить программу 6-го класса средней школы.
Вместо строк 14-19 вставьте такие
Да, согласен с вами полностью. Я только сегодня впервые взял в руки ардуину. Обязательно займусь изучением литературы.
Спасибо вам огромное за помощь!
doc_bravn, плохая затея. Нет гарантии что устройства будут включатся/отключаться одновременно. Нужно либо включать разными кнопками, либо полность изменить схемотехнику, включая например от детектора тока в цепи питания телевизора, или детектора звука.
Почему думаете будет плохо срабатывать? Разными кнопками конечно тоже можно. Есть на пульте пара кнопок которые вообще никак не задействованы, просто есть и все. Видимо пульт универсальный для нескольких моделей и где-то все задействованы, а где-то не все.
Детектор тока... Если только сделать так чтобы он срабатывал когда возрастает нагрузка после выхода из режима сна телевизора.
после включения/выключения поставьте защитную паузу, В вашем случае просто delay() хотя бы на 200-300 мс. иначе буде менять состояние пока нажата кнопка на пульте: вкл-выкл-вкл-выкл-вкл-выкл... ;) пульт же шлет код не один раз, а много, пока кнопка нажата.
Детектор тока... Если только сделать так чтобы он срабатывал когда возрастает нагрузка после выхода из режима сна телевизора.
Именно, причём я видел в инете подобный готовый проект. Ссылку не сохранял.
А если в телевизоре есть USB порт, то всё совсем просто -можно к нему подключить реле, которое будет коммутировать колонки.
А что, в StandBy на USB выходе нет питания? Не знал, надо у себя проверить.
ЕвгенийП, зависит от телека. На шибко умных скорее всего есть питание :)
А что, в StandBy на USB выходе нет питания? Не знал, надо у себя проверить.
У меня как раз в телике на USB входе в режиме StandBy есть питание. Первое, что мне пришло в голову это подключить реле к USB порту и им управлять. Но потом обнаружилось, что питание есть всегда и такой тип управления не подходит. Поэтому и стал заморачиваться с ардуиной и пультом.
Из неразрушающего это пожалу можно токовый датчик на провод питания повесить.
или, если есть скарт, то там сигнальный провод есть
или, может в hdmi разьемы тоже есть сигнал какой
Из неразрушающего это пожалу можно токовый датчик на провод питания повесить.
или, если есть скарт, то там сигнальный провод есть
или, может в hdmi разьемы тоже есть сигнал какой
Скарт есть в телевизоре. Подскажете каким именно образом можно его использовать?
Нашел вот такой датчик тока:
https://ru.aliexpress.com/item/Non-invasive-Split-Core-Current-Transform...
Его можно использовать для того чтобы засечь, что телевизор вышел из спящего режима и включить колонки?
Нашел вот такой датчик тока:
https://ru.aliexpress.com/item/Non-invasive-Split-Core-Current-Transformer-AC-current-sensor-100A-SCT-013-000/2008308345.html?spm=a2g0v.10010108.1000014.2.38f7f731LhWWRH&traffic_analysisId=recommend_3035_null_null_null&scm=1007.13338.80878.000000000000000&pvid=00001a53-db70-4ef2-b531-c7bc118e20fe&tpp=1
Его можно использовать для того чтобы засечь, что телевизор вышел из спящего режима и включить колонки?
Ну, да, на 100А - как раз то, что нужно :)
Если хотите совсем неразрушающее (т.е. никуда не лезть), померьте что у Вас на звуковых и видеовыходах, а также на Clock разъема SCART.
Но я бы делал по-колхозному - "неэстетично, зато просто и практично".
Померял бы сколько тока жрёт из розетки телевизор в StandBy и в работе. Наверняка разница заметная. Сделал бы датчик на эту разницу. И тогда сделал бы "удлинитель" в котором вся бодяга и сидит. Этот удлиниитель втыкал бы в розетку, а телевизор и колонки уже в него. Он бы следил, как только телевизор начал жрать ток - включал бы колоночныую розетку. Как прекратил - выключал бы. Как бонус добавил бы туда хороший сетевой фильтр.
doc_bravn, на 100 ампер? :) Хотя бы такой, на 5 ампер.
резистор на плате отвечает за выходной ток -можно ещё больше увеличить чувствительность.
Можно и самому транс сделать, вот похожий проект был на датагоре.
Да, со 100А это я переборщил. Потом заметил, что не то.
Есть датчик на 5А
https://ru.aliexpress.com/item/Electricity-Meter-Analog-AC-Current-Transformer-5A-for-Arduino-Free-Shipping/32418436771.html?spm=a2g0v.10010108.1000016.1.38f7f7317DIaOB&isOrigTitle=true
https://ru.aliexpress.com/item/Hot-Sale-New-5A-Range-ACS712-Current-Sensor-Module/32347747831.html?spm=a2g0s.8937460.0.0.2W8GuL
Но он в разрыв цепи ставится.
Что по поводу этих датчиков скажете?
doc_bravn, на 100 ампер? :) Хотя бы такой, на 5 ампер.
резистор на плате отвечает за выходной ток -можно ещё больше увеличить чувствительность.
Можно и самому транс сделать, вот похожий проект был на датагоре.
Да, со 100А это я переборщил. Потом заметил, что не то. :-)
Такой как вы приложили датчик я тоже нашел. Осталось теперь разобраться как его приделать и написать под него скетч.
Но он в разрыв цепи ставится.
Что по поводу этих датчиков скажете?
Если делать так, как я описал (типа удлинитель), то в разрыв цепи и надо.
Может ничего не городить и завести все на обучаемый пульт?
Он стоит рублей триста в электротоварах :)
А в скарте там 8й вывод. Если включен тв - 0вольт, если a/v выбран - то 12
Но это все предположения. Нужна знать вашу схему подключения все аппаратуры. Но наверняка он не используется.
Протестируйте, что там с напряжениями на восьмом выводе :)
Может ничего не городить и завести все на обучаемый пульт?
Он стоит рублей триста в электротоварах :)
Что мне даст обучаемый пульт если у колонок нет пульта. Обучать пульт включать колонки у которых нет дистанционного управления?
Добрый вечер.
Расскажите, как продвижение? Код кнопки включения/выключения с пульта от телевизора смогли узнать? Распознается каждый раз нормально?
Добрый вечер.
Расскажите, как продвижение? Код кнопки включения/выключения с пульта от телевизора смогли узнать? Распознается каждый раз нормально?
Добрый вечер.
Пока продвижения еще никакого. На работе пока занят был и не до этого было. В среду как раз планирую заняться. Тогда расскажу что получилось.
Наконец-то добрался до ардуино и датчиков. Подключил IR reciever, реле. Считал код кнопки с пульта. Отредактировал скетч. Залил. Работает именно так как мне было нужно. При нажатии кнопки на пульте включает реле, при повторном нажатии этой же кнопки выключает реле. Игрался минут 20 включал и выключал. Срабатывание 100%, ни разу не было пропуска или ложного включения-выключения.
Наконец-то добрался до ардуино и датчиков. Подключил IR reciever, реле. Считал код кнопки с пульта. Отредактировал скетч. Залил. Работает именно так как мне было нужно. При нажатии кнопки на пульте включает реле, при повторном нажатии этой же кнопки выключает реле. Игрался минут 20 включал и выключал. Срабатывание 100%, ни разу не было пропуска или ложного включения-выключения.
Подскажите, а весь скетч, после замены тех трёх строк, в итоге состоит из 19 строчек? Не ругайте строго, только начинаю познавать Arduino) А с вами можно как-то связаться именно по этой схеме, просто нужно такое же устройство и есть вопросы?)
У меня используется Arduino Leonardo R3.
Можете написать мне в почту doc.bravn@gmail.com
Скетч который сейчас залит и работает в ардуине такой:
У меня используется Arduino Leonardo R3. Скетч который сейчас залит и работает в ардуине такой:
Огромное человеческое спасибо)
Где копипаста скетча и копипаста ругани?
Где схема по которой подключал?
Это зависит от Вашего желания. Абсолютно не вижу причины, почему бы благородному дону не прикупить втридорога диод с транзистором, которые ему, в общем-то, не нужны, если ему, вдруг, по каким-то причинам, этого захотелось.
Любой диод подключается только через резистор. Если подключить напрямую к питанию или к пину - или диод сгорит, или выход ардуины
Понятно, значит ни схемы, ни скетча, ни копипасты сообщения компилятора мы не увидим.
Ну, тогда разбирайтесь сами.
Скетч
01
/*********************************************************************
02
* Замена принятого кода ИК пульта Dune HD TV-102 *
03
* на коды управления телевизором SAMSUNG *
04
* IR_change *
05
* ИК приемник - PIN 2 *
06
* ИК диод - PIN 13 *
07
* Реле - PIN 5 *
08
* 08.09.217г. *
09
*********************************************************************/
10
11
#include <IRremote.h>
12
13
int
RECV_PIN = 2;
14
int
RELAY_PIN = 5;
15
unsigned
long
ON_OFF = 0xFDC23D;
// Кнопка пульта Dune HD TV-102 включение
16
//Аналогично можно прописывать остальные кнопки пульта
17
IRrecv irrecv(RECV_PIN);
18
decode_results results;
19
IRsend irsend;
20
21
void
setup
()
22
{
23
pinMode(RELAY_PIN, OUTPUT);
24
digitalWrite(RELAY_PIN,LOW);
25
Serial
.begin(115200);
26
irrecv.enableIRIn();
// Start the receiver
27
}
28
29
void
loop
() {
30
if
(irrecv.decode(&results)) {
31
if
( results.value != ON_OFF) {
32
// Исключили из принятого ненужное, оставили только прописанные команды пульта
33
delay(200);
/*без этой строки неустойчивое управление,
34
значение подбираем: чем больше значение - тем больше задержка,
35
чем меньше значение - тем хуже управление, у меня от 100 до 200*/
36
Serial
.print(
"Not declared command - "
);
37
38
}
39
40
if
( results.value==ON_OFF ) {
41
delay(200);
42
Serial
.print(
"ON_OFF - "
);
43
irrecv.resume();
44
irsend.sendSAMSUNG(0xE0E040BF, 32);
// Передаем команду вкл/выкл
45
digitalWrite(RELAY_PIN, !digitalRead(RELAY_PIN));
46
delay(100);
47
irrecv.enableIRIn();
48
};
49
50
Serial
.println(results.value, HEX);
51
irrecv.resume();
52
}
53
delay(40);
54
}
Схему не знаю как нарисовать. Напишу словами.
ИК приемник - PIN2 (работает отлично)
ИК диод - PIN3 (не могу разобраться)
Реле на PIN5 (работает отлично)
Все подключено на плату Arduino NANO. Описанная проблема именно на этой плате.
Сообщение компилятора:
'class IRsend' has no member named 'sendSAMSUNG'
На Ардуино UNO все работает.
Вот такое устройство.
а гугал перевоччик что на это
'class IRsend' has no member named 'sendSAMSUNG'
говорит?
На уно sendSAMSUNG тоже работает?
Нет, работает только sendNEC
Один из вопросов как сделать чтобы на Samsung я мог управлять
У класса IRsend нет члена с именем sendSAMSUNG
я переводил но не знаю что с этим делать
заглянуть в .h файл библиотеки и убедиться, что там нет отправки кода Samsung
Как сделать чтобы добавить код Samsung?
Как сделать чтобы добавить код Samsung?
Найти версию библиотеки, в которой она есть (в моей, например, есть - только что проверил. Но где её брал - не помню). Ищите на гитхабе. Ну, или для начала гляньте ещё на свою, они там дефайнами выключаются.
Открываю свою библиотеку IRremote.h
Вот содержимое. Самсунга нету.
Библиотека в виде папки с файлами. Я ее скопировал туда где все библиотеки Ардуино находятся но ничего не изменилось.
Не получилось найти готовый ИК светодиод с транзистором, решил сделать сам. Из готового пульта достал транзистор S9014
Нашел его распиновку. Как правильно подключить светодиод к нему? Какой пин транзистора к какому пину диода?
Картинку прилагаю. Распиновку напишу словами тоже
Транзистор
1 - эмиттер, 2 - база, 3 - коллектор
Диод
1 - VCC, 2 - GND
https://g.io.ua/img_aa/large/4230/75/42307529.jpg
Библиотека в виде папки с файлами. Я ее скопировал туда где все библиотеки Ардуино находятся но ничего не изменилось.
А ту, что была, удалили?
По поводу диода с транзистором - не выпендривайтесь. Диодл и так должен работать, особенно, если перестанете искать у него "плюс" и "vcc", которых у него нет, а подключите его правильно. Схему-то так и не выложили, выкладывайте, будем смотреть, с чего он у Вас сгорел.
Подключение диода разобрался. Чтоб сделать схему начал искать как же ее рисовать. Нашел ресурс где из деталей собрал то что мне надо и там оказывается автоматически и транзистор и резистор образовался с номиналом и куда подключать. Может кому интересно будет вот здесь делал https://www.circuito.io/
Теперь осталось победить самсунг. Я старую библиотеку (папку IRremote) не удалял. Новая библиотека о которой писал выше (папка называется Arduino-IRremote-master) лежит рядом. Как мне все совместить теперь?
Моя схема. Диод работает прекрасно теперь (на NEC).
Моя схема. Диод работает прекрасно теперь (на NEC).
ИМХО, не долго он так проработает...
Live fast, die young.
Как спасти диод? Подскажите.
Как спасти диод? Подскажите.
сообщение #31
Понял. 100 Ом хватит на ИК диод хватит?
Удалил библиотеку старую. Компилятор не ругается. Скетч подправил
было irsend.sendNEC (sendNEC было раньше подсвечено оранжевым)
стало irsend.sendSAMSUNG (sendSAMSUNG не подсвечено оранжевым)
Залил скетч с кодом для самсунга. Не работает.
Чувствую разгадка близко)