Старший Пользователь
Регистрация: 20.03.2012
Возраст: 34
Город: Москва
Регион: 77, 97, 99, 177
Машина: Ford Focus 2, Audi Q7
Сообщений: 163
|
И так отчитываюсь за проделанную работу.
Ардуиной могу делать с пультом все что угодно
Текущий скетч с демонстрацией возможностей.
PHP код:
#include <SoftwareSerial.h> SoftwareSerial MMI(4, 2); //TX, RX пульта
int MMIreceiveByte = 0; // byte reading from MMI byte MMIbyte[8] = {0,0,0,0,0,0,0,0}; // key byte sequence int Delay = 10; //delay in millisec int MMIcom = 0; //boolean value set 1 if comand detected int ComID = 0; // comand ID (for easy select case routine) int otvet = 0; // id otveta
int incomingByte = 0; // byte reading from serial port
//***************************************************** Системные коды *******************************************************************
byte START_12V[8] = {0, 0x67, 0xFF, 0x1A, 0x04, 0xFA, 0x27, 0xC5}; // Ответ пульта после подачи +12 67 FF 1A 4 FA 27 C5 byte Pult_ON[8] = {0, 0x10, 0x02, 0x70, 0x12, 0x10, 0x03, 0xA7}; // Команда включение пульта 10 02 70 12 10 03 A7
byte Pult_ON_Otvet[8] = {0, 0x67, 0xFF, 0x2A, 0xDF, 0xF2, 0x4B, 0x00 }; // Ответ пульта после программного включения 67 FF 2A DF F2 4B 0
byte Knopki_ON[8] = {0x10, 0x02, 0x64, 0x99, 0x01, 0x10, 0x03, 0x23}; // Разрешить подсветку 10 02 64 99 01 10 03 23 byte Podsvetka_ON[8] = {0x10, 0x02, 0x60, 0x9A, 0x01, 0x10, 0x03, 0x20}; // Включение общей подсветки кнопок 10 02 60 9A 01 10 03 20
//***************************************************** Коды кнопок *******************************************************************
byte NAVI_DOWN[8] = {0, 0x67, 0xFF, 0x3E,0xF5, 0xDF, 0xF2, 0x4B}; // Нажатие кнопки 67 FF 3E F5 DF F2 4B *Проверено byte NAVI_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xEA, 0xDF, 0xF2, 0x49}; // Отпустили кнопку 67 FF 3A EA DF F2 49 *Проверено
byte INFO_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF3, 0xDF, 0xF2, 0x49}; //Нажатие кнопки 67 FF 3E F3 DF F2 49 *Проверено byte INFO_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xE6, 0xDF, 0xF2, 0x47}; // Отпустили кнопку 67 FF 3A E6 DF F2 47 *Проверено
byte CAR_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF1, 0xBE, 0xF2, 0x47}; //Нажатие кнопки 67 FF 3E F1 BE F2 47 *Проверено byte CAR_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xE2, 0xBE, 0xF2, 0x45}; // Отпустили кнопку 67 FF 3A E2 BE F2 45 *Проверено
byte SETUP_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xEF, 0xBE, 0xF2, 0x45}; //Нажатие кнопки 67 FF 3E EF BE F2 45 *Проверено byte SETUP_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xDE, 0xBE, 0xF2, 0x43}; // Отпустили кнопку 67 FF 3A DE BE F2 43 *Проверено
byte RADIO_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xCF, 0xDF, 0xF2, 0x25}; //Нажатие кнопки 67 FF 3E CF DF F2 25 *Проверено byte RADIO_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0x9E, 0xDF, 0xF2, 0x23}; // Отпустили кнопку 67 FF 3A 9E DF F2 23 *Проверено
byte MEDIA_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xFB, 0xBE, 0xF2, 0x51}; //Нажатие кнопки 67 FF 3E FB BE F2 51 *Проверено byte MEDIA_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xF6, 0xBE, 0xF2, 0x4F}; // Отпустили кнопку 67 FF 3A F6 BE F2 4F *Проверено
byte NAME_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF9, 0xDF, 0xF2, 0x4F}; // Нажатие кнопки 67 FF 3E F9 DF F2 4F *Проверено byte NAME_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xF2, 0xDF, 0xF2, 0x4D}; // Отпустили кнопку 67 FF 3A F2 DF F2 4D *Проверено
byte TEL_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xF7, 0xBE, 0xF2, 0x4D}; // Нажатие кнопки 67 FF 3E F7 BE F2 4D *Проверено byte TEL_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xEE, 0xBE, 0xF2, 0x4B}; // Отпустили кнопку 67 FF 3A EE BE F2 4B *Проверено
byte LeftReturn_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE7, 0xDF, 0xF2, 0x3D}; // Нажатие кнопки 67 FF 3E E7 DF F2 3D *Проверено byte LeftReturn_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xCE, 0xDF, 0xF2, 0x3B}; //Отпустили кнопку 67 FF 3A CE DF F2 3B *Проверено
byte Return_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE1, 0xDF, 0xF2, 0x37}; // Нажатие кнопки 67 FF 3E E1 DF F2 37 *Проверено byte Return_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xC2, 0xDF, 0xF2, 0x35}; // Отпустили кнопку 67 FF 3A C2 DF F2 35 *Проверено
byte RightReturn_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xDF, 0xBE, 0xBE, 0xF2}; // Нажатие кнопки 67 FF 3E DF BE BE F2 *Проверено byte RightReturn_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xBE, 0xBE, 0xBE, 0xF2}; // Отпустили кнопку 67 FF 3A BE BE BE F2 *Проверено
byte Big_Left[8] = {0, 0x67, 0xFF, 0xBA, 0xF4, 0xBE, 0xF2, 0x11}; // Повернули против часовой 67 FF BA F4 BE F2 11 *Проверено byte Big_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xFD, 0xBE, 0xF2, 0x53}; // Нажатие кнопки 67 FF 3E FD BE F2 53 *Проверено byte Big_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xFA, 0xBE, 0xF2, 0x51}; // Отпустили кнопку 67 FF 3A FA BE F2 51 *Проверено byte Big_Right[8] = {0, 0x67, 0xFF, 0xBE, 0xF5, 0xBE, 0xF2, 0x13}; // Повернули по часовой 67 FF BE F5 BE F2 13 *Проверено
byte Small_Left[8] = {0, 0x67, 0xFF, 0xFA, 0xF5, 0xBE, 0xF2, 0x31}; // овернули против часовой 67 FF FA F5 BE F2 31 *Проверено byte Small_Right[8] = {0, 0x67, 0xFF, 0xFE, 0xF4, 0xBE, 0xF2, 0x33}; // Повернули по часовой 67 FF FE F4 BE F2 33 *Проверено byte Small_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0x8F, 0xBE, 0xF2, 0xE5}; // Нажатие кнопки 67 FF 3E 8F BE F2 E5 *Проверено byte Small_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0x1E, 0xBE, 0xF2, 0xE3}; // Отпустили кнопку 67 FF 3A 1E BE F2 E3 *Проверено
byte LeftUP_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xEB, 0xDF, 0xF2, 0x41}; // Нажатие кнопки 67 FF 3E EB DF F2 41 *Проверено byte LeftUP_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xD6, 0xDF, 0xF2, 0x3F}; // Отпустили кнопку 67 FF 3A D6 DF F2 3F *Проверено
byte LeftDown_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE9, 0xBE, 0xF2, 0x3F}; // Нажатие кнопки 67 FF 3E E9 BE F2 3F *Проверено byte LeftDown_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xD2, 0xBE, 0xF2, 0x3D}; // Отпустили кнопку 67 FF 3A D2 BE F2 3D *Проверено
byte RightUP_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE5, 0xBE, 0xF2, 0x3B}; // Нажатие кнопки 67 FF 3E E5 BE F2 3B *Проверено byte RightUP_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xCA, 0xBE, 0xF2, 0x39}; // Отпустили кнопку 67 FF 3A CA BE F2 39 *Проверено
byte RightDown_DOWN[8] = {0, 0x67, 0xFF, 0x3E, 0xE3, 0xBE, 0xF2, 0x39}; // Нажатие кнопки 67 FF 3E E3 BE F2 39 *Проверено byte RightDown_1_DOWN[8] = {0, 0x67, 0xFF, 0x3A, 0xC6, 0xBE, 0xF2, 0x37}; // Отпустили кнопку 67 FF 3A C6 BE F2 37 *Проверено
//***************************************************** Коды лампочек *******************************************************************
byte NAVI_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x05, 0x10, 0x03, 0x93}; // 10 02 68 01 05 10 03 93 *Проверено byte NAVI_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x05, 0x10, 0x03, 0x92}; // 10 02 68 00 05 10 03 92 *Проверено
byte INFO_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x06, 0x10, 0x03, 0x94}; // 10 02 68 01 06 10 03 94 *Проверено byte INFO_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x06, 0x10, 0x03 , 0x93}; // 10 02 68 00 06 10 03 93 *Проверено
byte CAR_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x07, 0x10, 0x03, 0x95}; // 10 02 68 01 07 10 03 95 *Проверено byte CAR_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x07, 0x10, 0x03, 0x94}; // 10 02 68 00 07 10 03 94 *Проверено
byte SETUP_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x08, 0x10, 0x03, 0x96}; // 10 02 68 01 08 10 03 96 *Проверено byte SETUP_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x08, 0x10, 0x03, 0x95}; // 10 02 68 00 08 10 03 95 *Проверено
byte RADIO_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x18, 0x10, 0x03, 0xA6}; // > 10 02 68 01 18 10 03 A6 *Проверено byte RADIO_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x18, 0x10, 0x03, 0xA5}; // > 10 02 68 00 18 10 03 A5 *Проверено
byte MEDIA_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x02, 0x10, 0x03, 0x90}; // 10 02 68 01 02 10 03 90 *Проверено byte MEDIA_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x02, 0x10, 0x03, 0x8F}; // 10 02 68 00 02 10 03 8F *Проверено
byte NAME_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x03, 0x10, 0x03, 0x91}; // 10 02 68 01 03 10 03 91 *Проверено byte NAME_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x03, 0x10, 0x03, 0x90}; // 10 02 68 00 03 10 03 90 *Проверено
byte TEL_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x04, 0x10, 0x03, 0x92}; // 10 02 68 01 04 10 03 92 *Проверено byte TEL_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x04, 0x10, 0x03, 0x91}; // 10 02 68 00 04 10 03 91 *Проверено
byte LeftUP_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0A, 0x10, 0x03, 0x98}; // 10 02 68 01 0A 10 03 98 *Проверено byte LeftUP_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0A, 0x10, 0x03, 0x97}; // 10 02 68 00 0A 10 03 97 *Проверено
byte LeftDown_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0B, 0x10, 0x03, 0x99}; // 10 02 68 01 0B 10 03 99 *Проверено byte LeftDown_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0B, 0x10, 0x03, 0x98}; // 10 02 68 00 0B 10 03 98 *Проверено byte RightUP_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0D, 0x10, 0x03, 0x9B}; // 10 02 68 01 0D 10 03 9B *Проверено byte RightUP_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0D, 0x10, 0x03, 0x9A}; // 10 02 68 00 0D 10 03 9A *Проверено
byte RightDown_ON[8] = {0x10, 0x02, 0x68, 0x01, 0x0E, 0x10, 0x03, 0x9C}; // 10 02 68 01 0E 10 03 9C *Проверено byte RightDown_OFF[8] = {0x10, 0x02, 0x68, 0x00, 0x0E, 0x10, 0x03, 0x9B}; // 10 02 68 00 0E 10 03 9B *Проверено
void setup() { Serial.begin(9600); // открываем порт на скорости 9600 для передачи в ПК MMI.begin(9600); // открываем порт на скорости 9600 для передачи в MMI }
void loop() { if (Serial.available()) { MMI.write(Serial.read()); } if (MMI.available() && MMIcom==0 ) { ReadMMI(); } else { switch (otvet) { case 1: delay (5); WriteMMI(Pult_ON, 8); break; case 2: delay (5); WriteMMI(Podsvetka_ON,8); delay (5); WriteMMI(Knopki_ON, 8); break; case 3: delay (5); WriteMMI(NAVI_ON, 8); break; case 4: delay (5); WriteMMI(INFO_ON, 8); break; case 5: delay (5); WriteMMI(CAR_ON, 8); break; case 6: delay (5); WriteMMI(SETUP_ON, 8); break; case 7: delay (5); WriteMMI(RADIO_ON, 8); break; case 8: delay (5); WriteMMI(MEDIA_ON, 8); break; case 9: delay (5); WriteMMI(NAME_ON, 8); break; case 10: delay (5); WriteMMI(TEL_ON, 8); break; case 11: delay (5); WriteMMI(LeftUP_ON, 8); break; case 12: delay (5); WriteMMI(LeftDown_ON, 8); break; case 13: delay (5); WriteMMI(RightUP_ON, 8); break; case 14: delay (5); WriteMMI(RightDown_ON, 8); break; case 15: delay (5); WriteMMI(SETUP_OFF, 8); break; case 16: delay (5); WriteMMI(CAR_OFF, 8); break; case 17: delay (5); WriteMMI(TEL_OFF, 8); break; case 18: delay (5); WriteMMI(LeftUP_OFF, 8); break; case 19: delay (5); WriteMMI(LeftDown_OFF, 8); break; case 20: delay (5); WriteMMI(RightUP_OFF, 8); break; case 21: delay (5); WriteMMI(RightDown_OFF, 8); break; case 22: delay (5); WriteMMI(RADIO_OFF, 8); break; case 23: delay (5); WriteMMI(NAVI_OFF, 8); break; } otvet = 0; } if (MMIcom==1) { switch (ComID) // обрабатываем команды, Основные Case это 1 и 2 , остальные связаны с кнопками. Сейчас я их использую что бы зажигать лампочки возле кнопок. // ************************************************************** впринципе их можно не использовать, либо использовать если нужна обработка длинных нажатий. { case 100: SerialPrintKey(); MMI.write(06); break; case 1: MMI.write(06); otvet = 1; break; case 2: MMI.write(06); otvet = 2; break; case 3: SerialPrintKey(); MMI.write(06); break; case 4: SerialPrintKey(); MMI.write(06); otvet = 3; break; case 5: SerialPrintKey(); MMI.write(06); break; case 6: SerialPrintKey(); MMI.write(06); otvet = 4; break; case 7: SerialPrintKey(); MMI.write(06); break; case 8: SerialPrintKey(); MMI.write(06); otvet = 5; break; case 9: SerialPrintKey(); MMI.write(06); break; case 10: SerialPrintKey(); MMI.write(06); otvet = 6; break; case 11: SerialPrintKey(); MMI.write(06); break; case 12: SerialPrintKey(); MMI.write(06); otvet = 7; break; case 13: SerialPrintKey(); MMI.write(06); break; case 14: SerialPrintKey(); MMI.write(06); otvet = 8; break; case 15: SerialPrintKey(); MMI.write(06); break; case 16: SerialPrintKey(); MMI.write(06); otvet = 9; break; case 17: SerialPrintKey(); MMI.write(06); break; case 18: SerialPrintKey(); MMI.write(06); otvet = 10; break; case 19: SerialPrintKey(); MMI.write(06); break; case 20: SerialPrintKey(); MMI.write(06); otvet = 15; break; case 21: SerialPrintKey(); MMI.write(06); break; case 22: SerialPrintKey(); MMI.write(06); otvet = 16; break; case 23: SerialPrintKey(); MMI.write(06); break; case 24: SerialPrintKey(); MMI.write(06); otvet = 17; break; case 25: SerialPrintKey(); MMI.write(06); otvet = 18; break; case 26: SerialPrintKey(); MMI.write(06); break; case 27: SerialPrintKey(); MMI.write(06); otvet = 19; break; case 28: SerialPrintKey(); MMI.write(06); otvet = 20; break; case 29: SerialPrintKey(); MMI.write(06); otvet = 21; break; case 30: SerialPrintKey(); MMI.write(06); otvet = 22; break; case 31: SerialPrintKey(); MMI.write(06); break; case 32: SerialPrintKey(); MMI.write(06); otvet = 23; break; case 33: SerialPrintKey(); MMI.write(06); break; case 34: SerialPrintKey(); MMI.write(06); otvet = 11; break; case 35: SerialPrintKey(); MMI.write(06); break; case 36: SerialPrintKey(); MMI.write(06); otvet = 12; break; case 37: SerialPrintKey(); MMI.write(06); break; case 38: SerialPrintKey(); MMI.write(06); otvet = 13; break; case 39: SerialPrintKey(); MMI.write(06); break; case 40: SerialPrintKey(); MMI.write(06); otvet = 14; break; } MMIcom = 0; MMI.flush(); } }
void ReadMMI() { MMIreceiveByte = MMI.read(); //read 1-st byte Если 67 то это пульт if (MMIreceiveByte==0x67) { MMIbyte[1]=0x67; for (int i=2; i <= 7; i++) { MMIbyte[i] = MMI.read(); //read 2,3,4,5,6,7 bytes of data - читаем следующие байты delay(Delay); } ComID=100; // по умолчанию не опознаный код if(memcmp(MMIbyte, START_12V, 8) == 0 ){ComID=1;} if(memcmp(MMIbyte, Pult_ON_Otvet, 8) == 0 ){ComID=2;} if(memcmp(MMIbyte, NAVI_DOWN, 8) == 0 ){ComID=3;} if(memcmp(MMIbyte, NAVI_1_DOWN, 8) == 0 ){ComID=4;} if(memcmp(MMIbyte, INFO_DOWN, 8) == 0 ){ComID=5;} if(memcmp(MMIbyte, INFO_1_DOWN, 8) == 0 ){ComID=6;} if(memcmp(MMIbyte, CAR_DOWN, 8) == 0 ){ComID=7;} if(memcmp(MMIbyte, CAR_1_DOWN, 8) == 0 ){ComID=8;} if(memcmp(MMIbyte, SETUP_DOWN, 8) == 0 ){ComID=9;} if(memcmp(MMIbyte, SETUP_1_DOWN, 8) == 0 ){ComID=10;} if(memcmp(MMIbyte, RADIO_DOWN, 8) == 0 ){ComID=11;} if(memcmp(MMIbyte, RADIO_1_DOWN, 8) == 0 ){ComID=12;} if(memcmp(MMIbyte, MEDIA_DOWN, 8) == 0 ){ComID=13;} if(memcmp(MMIbyte, MEDIA_1_DOWN, 8) == 0 ){ComID=14;} if(memcmp(MMIbyte, NAME_DOWN, 8) == 0 ){ComID=15;} if(memcmp(MMIbyte, NAME_1_DOWN, 8) == 0 ){ComID=16;} if(memcmp(MMIbyte, TEL_DOWN, 8) == 0 ){ComID=17;} if(memcmp(MMIbyte, TEL_1_DOWN, 8) == 0 ){ComID=18;} if(memcmp(MMIbyte, LeftReturn_DOWN, 8) == 0 ){ComID=19;} if(memcmp(MMIbyte, LeftReturn_1_DOWN, 8) == 0 ){ComID=20;} if(memcmp(MMIbyte, Return_DOWN, 8) == 0 ){ComID=21;} if(memcmp(MMIbyte, Return_1_DOWN, 8) == 0 ){ComID=22;} if(memcmp(MMIbyte, RightReturn_DOWN, 8) == 0 ){ComID=23;} if(memcmp(MMIbyte, RightReturn_1_DOWN, 8) == 0 ){ComID=24;} if(memcmp(MMIbyte, Big_Left, 8) == 0 ){ComID=25;} if(memcmp(MMIbyte, Big_DOWN, 8) == 0 ){ComID=26;} if(memcmp(MMIbyte, Big_1_DOWN, 8) == 0 ){ComID=27;} if(memcmp(MMIbyte, Big_Right, 8) == 0 ){ComID=28;} if(memcmp(MMIbyte, Small_Left, 8) == 0 ){ComID=29;} if(memcmp(MMIbyte, Small_Right, 8) == 0 ){ComID=30;} if(memcmp(MMIbyte, Small_DOWN, 8) == 0 ){ComID=31;} if(memcmp(MMIbyte, Small_1_DOWN, 8) == 0 ){ComID=32;} if(memcmp(MMIbyte, LeftUP_DOWN, 8) == 0 ){ComID=33;} if(memcmp(MMIbyte, LeftUP_1_DOWN, 8) == 0 ){ComID=34;} if(memcmp(MMIbyte, LeftDown_DOWN, 8) == 0 ){ComID=35;} if(memcmp(MMIbyte, LeftDown_1_DOWN, 8) == 0 ){ComID=36;} if(memcmp(MMIbyte, RightUP_DOWN, 8) == 0 ){ComID=37;} if(memcmp(MMIbyte, RightUP_1_DOWN, 8) == 0 ){ComID=38;} if(memcmp(MMIbyte, RightDown_DOWN, 8) == 0 ){ComID=39;} if(memcmp(MMIbyte, RightDown_1_DOWN, 8) == 0 ){ComID=40;} MMIcom=1; } else { MMIcom=0; } MMI.flush(); }
void SerialPrintKey() //Вывод команды в сериал порт , тут можно привести ее к привычному для iCar виду { for (int x=1; x <= 7; x++){ Serial.print(MMIbyte[x], HEX); Serial.print(" "); } Serial.println(); }
void WriteMMI(byte Mas[], int Byte) // Процедуры отправки команд на пульт { for (int i=0; i<Byte; i++) { MMI.write(Mas[i]); delay(2); } }
и видео того что получилось http://youtu.be/TGI83w3t2F8
|