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

Тема:

  1. Частый гость
    Автор темы
    Аватар для Ursus82
    Регистрация
    30.03.2011
    Адрес
    Жуковский М.О.
    Возраст
    37
    Сообщений
    498

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

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

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

Название:	ir_send.JPG 
Просмотров:	213 
Размер:	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. Частый гость Аватар для maxlenin
    Регистрация
    27.08.2012
    Адрес
    нижегородская обл
    Сообщений
    187

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

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

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

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

  4. Частый гость
    Автор темы
    Аватар для Ursus82
    Регистрация
    30.03.2011
    Адрес
    Жуковский М.О.
    Возраст
    37
    Сообщений
    498

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

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

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

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

Ваши права

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