Пульт для акустики на ардуино

dmawzx
dmawzx аватар
Offline
Зарегистрирован: 02.05.2014

Добрый день!

Подкинули мне задачку, я загорелся, а теперь понимаю что не всё так просто как казалось :)

Сломался пульт от акустики sven ha-1400t. После попыток починить пришла мысль поставить ардуино.

Сейчас пробую библиотеку IRremote, но что-то мне подсказывает что ничего из этого не получится. В библиотеке есть коды на разную технику, а вот на этого производителя нет https://github.com/z3t0/Arduino-IRremote

В пульте стоял кварц на 455 герц. Есть коды от кнопок, но как их передать не понимаю. Может кто подскажет :)

dmawzx
dmawzx аватар
Offline
Зарегистрирован: 02.05.2014

Вот таким скетчем получилось включить/выключить телевизор самсунг:

 #include <IRremote.h>
IRsend irsend; 

void loop() {
  for (int i = 0; i < 3; i++) {
    irsend.sendSAMSUNG(0xE0E040BF, 32);
    delay(40);
  }
delay(3000);
}

 

b707
Offline
Зарегистрирован: 26.05.2017

dmawzx пишет:

Есть коды от кнопок, но как их передать не понимаю. Может кто подскажет :)

Если есть коды, то больше ничего не нужно. В библиотеке указано, как передать произвольный цифровой код, не привязанный к Самсунгу или Панасонику.

dmawzx
dmawzx аватар
Offline
Зарегистрирован: 02.05.2014

Написал я скетч для пульта, может кому пригодится. Единственное что не работает, это увеличение/уменьшение параметров при зажатой кнопке, пока не разобрался как сделать. Можно было конечно написать скетч красивее с использованием массивов, но что-то мои знания пока не позволяют мне этого сделать, может кто научит :)

Хозяин покрасил пульт в золотой. Вместо батареек внутри литиевый аккумулятор от джойтика PS. Снизу имеется гнездо для подзарядки. Новых таких пульв нет в продаже, а этот поживёт новой жизнью :)

/* 
Пульт для JEKi
SVEN HT-480 акустика 5.1
SVEN HA-1400T акустика 5.1

Коды кнопок пульта:
827D00FF mute
827D30CF 5.1ch
827D38C7 standby
827D906F dvd
827DB847 tv
827DF807 tuner
827DB04F c.s.sw vol
827D9867 c.s.sw vol -
827DD827 c.s.sw vol +
827D48B7 5.1vs on
827D08F7 5.1vs off
827DC03F bass +
827D807F m.vol +
827D58A7 treble +
827DA05F bass -
827D40BF m.vol -
827D7887 treble -
 */

#include <IRremote.h> // https://github.com/z3t0/Arduino-IRremote
IRsend irsend;  // пин передатчика 
//для Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, Uno - (3)
//для Мега - (9)
//для ATmega32U4 - (10)
decode_results results;

#include <Keypad.h>
const byte ROWS = 8; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
unsigned char hexaKeys[ROWS][COLS] = {
  {'0','1','2','3'},
  {'4','5','6','7'},
  {'8','9','X','Y'},
  {'A','B','C','D'},
  {'E','F','G','H'},
  {'J','K','L','M'},
  {'N','O','P','R'},
  {'W','Q','T','U'}
};
byte rowPins[ROWS] = {10,9,8,2,7,6,5,4}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {A0,A1,A2,A3}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 

void setup()
{
  //Serial.begin(9600);
}

void loop() {
  char key = customKeypad.getKey();
  if(key)
  {
    //Serial.println(key);    
  }  
 
switch (key) {
    case '8': irsend.sendNEC(0x827D00FF, 32); break; // mute
    case 'N': irsend.sendNEC(0x827D30CF, 32); break; // 5.1ch
    case '0': irsend.sendNEC(0x827D38C7, 32); break; // standby
    case 'K': irsend.sendNEC(0x827D906F, 32); break; // dvd
    case '1': irsend.sendNEC(0x827DB847, 32); break; // tv
    case '3': irsend.sendNEC(0x827DF807, 32); break; // tuner
    case 'O': irsend.sendNEC(0x827DB04F, 32); break; // c.s.sw vol 
    case '5': irsend.sendNEC(0x827D9867, 32); break; // c.s.sw vol -
    case '7': irsend.sendNEC(0x827DD827, 32); break; // c.s.sw vol +
    case 'T': irsend.sendNEC(0x827D48B7, 32); break; // 5.1vs on
    case 'W': irsend.sendNEC(0x827D08F7, 32); break; // 5.1vs off
    case 'Y': irsend.sendNEC(0x827DC03F, 32); break; // bass +
    case '9': irsend.sendNEC(0x827D807F, 32); break; // m.vol +
    case '6': irsend.sendNEC(0x827D58A7, 32); break; // treble +
    case 'F': irsend.sendNEC(0x827DA05F, 32); break; // bass -
    case 'X': irsend.sendNEC(0x827D40BF, 32); break; // m.vol -
    case '2': irsend.sendNEC(0x827D7887, 32); break; // treble -
  }
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Arduino-way in the wild.

Жму руку. За золото особый респект.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

 вот раньше я бы замутил такое, сейчас ни времени, ни желания таки вещи делать нет.

лучше куплю

http://pult-m.ru/product/rc_irc_007128/

https://kraspult.ru/catalog/pult-sven-ha-430t-ha-1400t

http://www.pultov.net/item/8756

dmawzx
dmawzx аватар
Offline
Зарегистрирован: 02.05.2014

xDriver пишет:

 вот раньше я бы замутил такое, сейчас ни времени, ни желания таки вещи делать нет.

лучше куплю

Был вариант купить, кнопок там дофига лишних. А тут оригинальный корпус, только ардуинка внутри. Перепаять и прошить не так долго, только бы прошивку доработать. Нет ещё в прошивке режима сна, аккум жрать будет быстро.