| Ваш IP: 34.234.207.100 | Online(39) - гости: 35, боты: 4 | Загрузка сервера: 1.64 ::::::::::::

ИК пульт из 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);}

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

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

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

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

  • Что означает теpмин «низкоуpовневое фоpматиpование»?

    Его смысл pазличен для pазных моделей винчестеpов. В отличие от высокоуpовневого фоpматиpования — создания pазделов и файловой стpуктуpы, низкоуpовневое фоpматиpование означает базовую pазметку повеpхностей дисков. Для винчестеpов pанних моделей, котоpые поставлялись с чистыми повеpхностями, такое фоpматиpование создает только инфоpмационные сектоpы и может быть выполнено контpоллеpом винчестеpа под упpавлением соответствующей пpогpаммы. …Подробнее...
  • Выпрямители и их основные параметры

    Выпрямители и их основные параметры

    Выпрямители это уст-ва предназначенные для преобразования переменного тока в постоянный. выпрямительное уст-во состоит из 3-х основных уст-в : трансформатора, выпрямителя и сглаживающего фильтра. Так же выпрямительное устройство может быть дополнено стабилизатором напряжения. Режим выпрямителя в значительной степени зависит от фильтра установленного на выходе выпрямителя. в маломощных выпрямителях применяются емкостные фильтры, …Подробнее...
  • Бездроссельное питание люминесцентных ламп

    Схема без дроссельного питания люминесцентных ламп  показана на рисунке. Лампа накаливания включена последовательно с выпрямителем (выпрямитель собран по схеме удвоителя напряжения). Использование лампы накаливания вместо балластных конденсаторов более практично, она горит в пол накала, при пробое одного из конденсаторов горит в полный накал тем самым сигнализируя о неисправности. Нити накала …Подробнее...
  • Простой пробник оксидных конденсаторов

    Пределы измерения от 0,1 до1000 мкФ. При емкости свыше 1000 мкФ HL1 может не светиться из-за срыва колебаний генератора (см. рисунок). Прибор очень удобен, его можно запитать от нескольких батарей или аккумуляторов. Принцип работы аналогичен принципу работы прибора на МТХ-90: 1) HL1 светит непрерывно . пробой проверяемого конденсатора; 2) HL1 …Подробнее...
  • Простое зарядное уст-во 12В 1А

    Простое зарядное уст-во 12В 1А

    На рисунке показано простое зарядное уст-ва с выходным напряжением 12 В  и максимальным током зарядки 1 А. В зарядном уст-ве применен трансформатор с выходным напряжением 15В и током 1А. Выходное напряжение зависит от напряжения стабилизации стабилитрона VD1, а выходной ток эмиттера VT1 от сопротивления резистора R1. R2 и HL1 необязательные …Подробнее...