| Старший Пользователь 
				 
				Регистрация: 20.03.2012 Возраст: 35 Город: Москва Регион: 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 |