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