Показано с 1 по 4 из 4

Тема: Конвертер ИК сигналов на arduino

  1. #1
    Частый гость
    Автор темы

    Регистрация
    30.03.2011
    Адрес
    Жуковский М.О.
    Возраст
    43
    Сообщений
    498

    По умолчанию Конвертер ИК сигналов на arduino

    Всем привет!
    Давно хотел регулировать громкость усилителя пультом от телевизора.
    Решил банально и просто через ардуинку.
    Считываем коды кнопок пульта усилителя и передаем их через диод по нажатию другого пульта.
    Нужно всего 3 детали: arduino nano v3, ИК приемник TSOP1738 или аналог, ИК светодиод.
    Программируется через USB питается тоже через USB. У меня конструкция питается прям от порта в телевизоре.
    Вот куда и как паять:
    Нажмите на изображение для увеличения. 

Название:	ir_recv.JPG 
Просмотров:	512 
Размер:	26.1 Кб 
ID:	297300 Нажмите на изображение для увеличения. 

Название:	ir_send.JPG 
Просмотров:	687 
Размер:	23.2 Кб 
ID:	297301

    Нужна библиотека irremote
    Вот код программы:

    Скрытый текст

    Код:
    /*-----( Import needed libraries )-----*/
     
    #include "IRremote.h"
     
    /*-----( Declare Constants )-----*/
    int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11
     
    /*-----( Declare objects )-----*/
    IRrecv irrecv(receiver);           // create instance of *irrecv*
    decode_results results;            // create instance of *decode_results*
    IRsend irsend;
    /*-----( Declare Variables )-----*/
     
     
    void setup()   /*----( SETUP: RUNS ONCE )----*/
    {
      irrecv.enableIRIn(); // Start the receiver
     
    }/*--(end setup )---*/
     
    
    
    void loop() {
      if ( irrecv.decode( &results )) { // если данные пришли
        
    //vol+
        if ( results.value == 0xE0E0E01F ) {
                delay(40);
            irsend.sendNEC(0x4C8A857, 32);
            irrecv.enableIRIn();
        }
       if ( results.value == 0xC2CACC33 ) {
                delay(40);
            irsend.sendNEC(0x4C8A857, 32);
            irrecv.enableIRIn();
        }
       if ( results.value == 0x4C8A857 ) {
                delay(40);
            irsend.sendNEC(0x4C8A857, 32);
            irrecv.enableIRIn();
        }
       if ( results.value == 0x10EE31C ) {
                delay(40);
            irsend.sendNEC(0x4C8A857, 32);
            irrecv.enableIRIn();
        }
    //vol-
       if ( results.value == 0xE0E0D02F ) {
          delay(40);
            irsend.sendNEC(0x4C86897, 32);
             irrecv.enableIRIn();
        }
       if ( results.value == 0xC2CADC23 ) {
          delay(40);
            irsend.sendNEC(0x4C86897, 32);
             irrecv.enableIRIn();
        }
       if ( results.value == 0x4C86897 ) {
          delay(40);
            irsend.sendNEC(0x4C86897, 32);
             irrecv.enableIRIn();
        }
       if ( results.value == 0x10E13EC ) {
          delay(40);
            irsend.sendNEC(0x4C86897, 32);
             irrecv.enableIRIn();
        }
    //mute
       if ( results.value == 0xE0E0F00F ) {
          delay(40);
            irsend.sendNEC(0x4C8807F, 32);
             irrecv.enableIRIn();
        }
       if ( results.value == 0xDF2C7B90 ) {
          delay(40);
            irsend.sendNEC(0x4C8807F, 32);
             irrecv.enableIRIn();
        }
       if ( results.value == 0x4C8807F ) {
          delay(40);
            irsend.sendNEC(0x4C8807F, 32);
             irrecv.enableIRIn();
        }
       if ( results.value == 0x10E837C ) {
          delay(40);
            irsend.sendNEC(0x4C8807F, 32);
             irrecv.enableIRIn();
        }
    //ch
       if ( results.value == 0x4C850AF ) {
          delay(40);
            irsend.sendNEC(0x4C850AF, 32);
             irrecv.enableIRIn();
        }
    //p
       if ( results.value == 0x4C8B04F ) {
          delay(40);
            irsend.sendNEC(0x4C8B04F, 32);
             irrecv.enableIRIn();
        }
    //red
       if ( results.value == 0x4C800FF ) {
          delay(40);
            irsend.sendNEC(0x4C800FF, 32);
             irrecv.enableIRIn();
        }
    //a
       if ( results.value == 0x4C840BF ) {
          delay(40);
            irsend.sendNEC(0x4C840BF, 32);
             irrecv.enableIRIn();
        }
    //-
       if ( results.value == 0x4C8C03F ) {
          delay(40);
            irsend.sendNEC(0x4C8C03F, 32);
             irrecv.enableIRIn();
        }
    //m
       if ( results.value == 0x4C820DF ) {
          delay(40);
            irsend.sendNEC(0x4C820DF, 32);
             irrecv.enableIRIn();
        }
    //+
       if ( results.value == 0x4C8A05F ) {
          delay(40);
            irsend.sendNEC(0x4C8A05F, 32);
             irrecv.enableIRIn();
        }
    //b
       if ( results.value == 0x4C8609F ) {
          delay(40);
            irsend.sendNEC(0x4C8609F, 32);
             irrecv.enableIRIn();
        }
    
    
    
             irrecv.enableIRIn(); // Start the receiver
      }
    }
    [свернуть]


    Считать коды своих кнопок можно через пример IRrecvDumpV2
    Последний раз редактировалось Ursus82; 17.07.2017 в 11:43.

  2. #2
    Частый гость
    Регистрация
    27.08.2012
    Адрес
    нижегородская обл
    Сообщений
    205

    По умолчанию Re: Конвертер ИК сигналов на arduino

    а дальше?) как усилителю подключить?)

  3. #3
    Старый знакомый Аватар для Злой
    Регистрация
    30.10.2009
    Сообщений
    409

    По умолчанию Re: Конвертер ИК сигналов на arduino

    а дальше лестничный регулятор или в простонародье Никитина.

  4. #4
    Частый гость
    Автор темы

    Регистрация
    30.03.2011
    Адрес
    Жуковский М.О.
    Возраст
    43
    Сообщений
    498

    По умолчанию Re: Конвертер ИК сигналов на arduino

    Дальше все что угодно. У меня усилитель китайский под который это все ваялось.
    К усилителю просто светодиод поднести к ик приемнику.

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •