| Ваш IP: 18.204.227.117 | Online(57) - гости: 19, боты: 38 | Загрузка сервера: 1.3 ::::::::::::

ИК пульт из Arduino

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

Соберите схему показанную на рисунке и загрузите скетч.

#include <IRremote.h> // https://rcl-radio.ru/wp-content/uploads/2019/06/IRremote.zip
#include <boarddefs.h>
  IRsend irr;
 
void setup(){
  Serial.begin(9600);
  irr.enableIROut(38); // 38 kHz out D9
  pinMode(2,INPUT);
  pinMode(3,INPUT);
  pinMode(4,INPUT);
  pinMode(5,INPUT);
}
 
void loop() {
  if(digitalRead(2)==HIGH){irr.sendNEC(0x1A001134, 32);}
  if(digitalRead(3)==HIGH){irr.sendNEC(0x2A004516, 32);}
  if(digitalRead(4)==HIGH){irr.sendNEC(0x3A006780, 32);}
  if(digitalRead(5)==HIGH){irr.sendNEC(0x4A001122, 32);}
  delay(200);
}

Далее ко второй плате Arduino подключите модуль ИК приемника

Загрузите скетч

#include <boarddefs.h>
#include <IRremote.h>
IRrecv irrecv(12); // указываем вывод модуля IR приемника
 
  decode_results ir; 
 
void setup() {
 irrecv.enableIRIn();Serial.begin(9600);
 pinMode(13,OUTPUT);
 
}
 
void loop() {
  if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();}// IR приемник - чтение, в мониторе порта отображаются коды кнопок
  if(ir.value==0x1A001134){digitalWrite(13,HIGH);}
  if(ir.value==0x2A004516){digitalWrite(13,LOW);}
  ir.value=0;
}

Откройте монитор порта и нажмите поочередно кнопки подключенные к первой плате Arduino, в мониторе порта Вы увидите следующую информацию

Как видно на скриншоте, в мониторе порта второй платы отображаются коды кнопок которые посылает ИК передатчик с первой платы Arduino. Дополнительно активирован цифровой выход D13 во второй плате к которой подключен светодиод (находится на плате Arduino), при нажатии на кнопку 1 (первая плата) светодиод загорается, при нажатии на кнопку 2 гаснет.


ИК удлинитель

Следующий пример позволяет плате Arduino принимать команды с ИК пульта и туже передавать нужный код на конечное устройство. Соответственно к плате Arduino подключаются одновременно ИК-датчик и ИК-диод.

#include <IRremote.h> // https://rcl-radio.ru/wp-content/uploads/2019/06/IRremote.zip
#include <boarddefs.h>
  IRsend irr;
  IRrecv irrecv(12); // указываем вывод модуля IR приемника
  decode_results ir; 
  byte w;
 
void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  irr.enableIROut(38); // 38 kHz out D9
}
 
void loop() {
  if( irrecv.decode( &ir )) {Serial.print("0x");Serial.print( ir.value,HEX);irrecv.resume();}
  if(ir.value==0){w=0;}
 
  if(ir.value==0x2FD00FF){w=1;ir.value=0;irr.enableIROut(38);irr.sendNEC(0x1A001134, 32);Serial.println(" code 1 ");delay(50);}
  if(ir.value==0xFFFFFFFF && w==1){ir.value=0;irr.enableIROut(38);irr.sendNEC(0x1A001134, 32);Serial.println(" code 1 ");delay(50);}
 
  if(ir.value==0x2FD42BD){w=2;ir.value=0;irr.enableIROut(38);irr.sendNEC(0x1A001555, 32);Serial.println(" code 2 ");delay(50);}
  if(ir.value==0xFFFFFFFF && w==2){ir.value=0;irr.enableIROut(38);irr.sendNEC(0x1A001555, 32);Serial.println(" code 2 ");delay(50);}
 
  irrecv.enableIRIn();
  delay(200);
}

В работе ИК-удлинителя есть одна сложность, дело в том что при нажатии кнопки пульта код кнопки который нужно передать через Arduino на конечное уст-во содержит уникальный код (можно посмотреть в мониторе порта), а вот удержание любой кнопки пульта передает код 0xFFFFFFFF (как правило), как раз эта особенность учтена в скетче. Скетч различает к какой кнопке относится код 0xFFFFFFFF, а к какой нет.

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

if(ir.value==КОД_КНОПКИ_ПУЛЬТА){w=1;ir.value=0;irr.enableIROut(38);irr.sendNEC(КОД_КОТОРЫЙ НУЖНО_ПЕРЕДАТЬ, 32);Serial.println(» code 1 «);delay(50);}

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

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Узел задержки включения громкоговорителей

    Узел задержки включения громкоговорителей

    На рисунке показана схема узла задержки включения громкоговорителей. Часто бывает, что при включении усилителя НЧ в динамиках слышен громкий щелчок в момент включения. Чтобы устранить этот дефект необходимо акустическую систему подключать к усилителю через узел задержки включения громкоговорителей. В момент включения питания усилителя акустика будет отключена при помощи реле, после …Подробнее...
  • Преобразователь напряжения для питания от гальванического элемента электронных приборов

    Преобразователь собран по схеме с обратной связью по току нагрузки и имеет ряд особенностей. В трансформаторе преобразователя отсутствуют базовые обмотки. Выходной ток является током базы транзисторов VT1 и VT2. Выходное напряжение преобразователя (на конденсаторе С2) равно сумме напряжений выпрямленного с обмотки 4-7 трансформатора Т1 и входного. Устойчивая работа и надежный …Подробнее...
  • Имитатор стерео сигнала на TDA3810

    Имитатор стерео сигнала на TDA3810

    Имитатор стерео сигнала позволяет «оживить» звук моно путем имитации стерео. Это делается путем сдвига фазы между правым и левым каналом, тем самым звук обретает глубину. Переключатель подключенный к выводу 11 микросхемы отключает и включает режимы: моно/стерео.Подробнее...
  • Стереодин

    При включении головок громкоговорителей по схеме, показанной на рис., можно поучить псевдостереофоническое звучание. Головки 1 и 2 включены синфазно в области НЧ звукового диапазона и противофазно в области ВЧ, за счет чего и осуществляется стерео эффект. Головки вместе с деталями стереодина помещены в одном ящике на фронтальной панели. Необходимо что …Подробнее...
  • К(КР)140УД6А(Б), КР140УД608А(Б), К740УД4-1А(Б) (справочные данные)

    К(КР)140УД6А(Б), КР140УД608А(Б), К740УД4-1А(Б) относят к ОУ средней точности со встроенной коррекцией и защитой входа и выхода от перегрузки. Электрические параметры: Uпит. ном — 2*15В I пот — 3мА Ku — 70*10³(А), 50³(Б) Uсм — 5мВ (А), 8мВ(Б) TKUсм — 20(А)мкв/Сº, 135(Б)мкв/Сº Iвх — 30нА(А), 50нА(Б) ΔIвх — 10нА(А), 15нА(Б) Кос.сф …Подробнее...