Бортовой компьютер для Опель Зафира.
- Войдите на сайт для отправки комментариев
Ср, 18/01/2017 - 14:40
Доброе время суток. Делаю проэкт - Бортовой компьютер для Опель Зафира А 2001, Y20DTH дизель. Застрял на адаптерах K-Line. Уже месяц бьюсь. Сделал шесть разных адаптеров. 1. на МАХ232 (понял что он не TTL a RS232) 2. на 4N25 3. на 4N35 4. на BC547 5. на MC33290 6. на L9637D ( на него была последняя надежда что авто заговорит). Не один из них не разговорил машину. Толи адаптеры не верно работают, толи нет нормального скетча для разговора с авто, может нужно правильную инициализацию и запрос написать в скетче. Железо - мега 2560 + 6 адаптеров + OBD2 c Iso9141-2 + TFT 3,95(но это потом).

.......................................
Схемы прилагаю. Описание напряжений.
1.МАХ232
только питание 12в
К-Line : +9,6v RX:-8,25v TX:0v
питание 12в + ардуино
К-Line : 0v RX:+5,4v TX:+4,65v
тест с COMMTEST скачки напряжения
К-Line : 0v-(+9,14v) RX:+5,4v-(-0,75v) TX:+4,65v-(-0,56v)
.....................................................................
2.4N25
только питание 12в
К-Line:+11,72v RX:0v TX:0v
питание 12в + ардуино
К-Line:+11,5v RX:+2,98v TX:+4,65v
тест с COMMTEST скачки напряжения
К-Line:+11,5v-(+4,43v) RX:+2,98v-(+2,28v) TX:+4,65v-(0v)
.......................................................................
3.4N35
только питание 12в
К-Line:0v RX:0v TX:0v
питание 12в + ардуино
К-Line:+12,22v RX:+0,15v TX:+4,58v
тест с COMMTEST скачки напряжения
К-Line:+12,22v-(0v) RX:+0,15v-(+4,65v) TX:+4,58v-(0v)
..........................................................................
4.BC547
только питание 12в
К-Line:0v RX:-1,4v TX:0v
питание 12в + ардуино
К-Line:+8,87v RX:+5,29v TX:+4,65v
тест с COMMTEST скачки напряжения
К-Line:+8,87v-(0v) RX:+5,29v-(0v) TX:+4,65v-(0v)
..........................................................................
5.MC33290
только питание 12в
К-Line:+10,5v RX:+10,46v TX:0v
питание 12в + ардуино
К-Line:+4,68v RX:+4,44v TX:+4,68v
тест с COMMTEST скачки напряжения
К-Line:+4,68v-(+4,68v) RX:+4,44v-(+4,44v) TX:+4,68v-(+1,01v)
...............................................................................
6.L9637
только питание 12в
К-Line:+9,5v RX:+4,96v TX:+4,91v
питание 12в + ардуино
К-Line:+9,52v RX:+4,63v TX:+4,63v
тест с COMMTEST скачки напряжения
К-Line:+9,52v-(+9,37v) RX:+4,63v-(+4,63v) TX:+4,63v-(+1,03v)
...................................................................................
Покажите где я затупил. я уже и запутался во всем. Укажите какой из адаптеров работает правильно и может кто-то может подкинуть скетч для проверки, например чтобы я его загрузил в ардуино и подключил к авто и чтобы я хоть что-то уже увидел в терминале, хоть какие то ответы от авто. Как закончу проэкт, выложу его полностью с отчетом. Я только начинал работать с ардуино, прошу не пинать если что не так сказал. Спасибо.
извените ошибочка вышла в 6 адаптере
6.L9637
только питание 12в
К-Line:+12,4v RX:+5,01v TX:+4,96v
питание 12в + ардуино
К-Line:+12,4v RX:+4,69v TX:+4,69v
тест с COMMTEST скачки напряжения
К-Line:+12,4v-(+2,58v) RX:+4,69v-(+4,18v) TX:+4,63v-(+1,00v)
Попробуйте собрать K-line адаптер на микросхеме l9637D
Вот есчё схема для работы через com порт
http://cxema21.ru/publ/avtoehlektronika/k_l_line_adapter_na_max232_i_l9637d/25-1-0-215
если надо через usb выкидывайте MAX 232 и ставьте FT232RL
Спасибо. Но я уже собрал на l9637d, один из шести собраны, фото и схемы выше. И мне не юсб и не сом. У меня связка obd2-->adapter-->mega2560--> IDE por(в будущем экран 3.95).
пришлите схему в лучшем качестве на uu4juw собака yandex.ru на схеме очень плохо видно
Ок. Завтра вышлю. У меня все на рабочем компе.
ок, по возможности гляну, если на работу не выдернут на выходных
и так, подправил схему, добавил кандеры .
адаптер проверял разными способами, программами для ком портов, так же напряжение и скачки напряжений при запросе. эхо тоже работает. короче адаптер вроде как работет корректно. значит пробелма в инициализации.
нарыл на одном форуме скетч. у человека тоже мега2560 и L9637 и у него с этим скетчем проходит инициализация. у меня же машина упорно молчит, обидилась наврерно :). выкладываю скетч. может кто посмотрит и чета подскажет
//#include <SoftwareSerial.h> #define rxPin 3 #define txPin 2 #define K_IN 17 #define K_OUT 18 #define READ_ATTEMPTS 125 //SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin); char command; //Terminal Commands char pid_reslen[] = //PID Lengths { // pid 0x00 to 0x1F 4,4,2,2,1,1,1,1,1,1,1,1,2,1,1,1, 2,1,1,1,2,2,2,2,2,2,2,2,1,1,1,4, // pid 0x20 to 0x3F 4,2,2,2,4,4,4,4,4,4,4,4,1,1,1,1, 1,2,2,1,4,4,4,4,4,4,4,4,2,2,2,2, // pid 0x40 to 0x4E 4,8,2,2,2,1,1,1,1,1,1,1,1,2,2 }; long tempLong; char str[40]; void setup() { pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); digitalWrite(txPin, HIGH); delay(500); pinMode(K_IN, INPUT); pinMode(K_OUT, OUTPUT); pinMode(13, OUTPUT); Serial.begin(19200); Serial.println("-=Arduino OBD2 Terminal=-"); } void loop() { command = Serial.read(); switch (command) { case '1': obdConnect(); break; case '2': Serial.println("MIL Selected"); get_pid(0x01, str, &tempLong); break; case '3': Serial.println("RPM Selected"); get_pid(0x03, str, &tempLong); break; case '4': Serial.println("MAF Selected"); get_pid(0x10, str, &tempLong); break; case '5': Serial.println("Volt"); get_pid(0x14, str, &tempLong); break; } } int obdConnect(){ Serial.println("Attempting ECU initialization..."); if (iso_init() == 0){ Serial.println("PASS"); return 0; } else{ Serial.println("FAIL"); return 1; } } byte iso_init() { byte b; //serial_tx_off(); //disable UART so we can "bit-Bang" the slow init. //serial_rx_off(); Serial1.end(); Serial2.end(); delay(3000); //k line should be free of traffic for at least two secconds. digitalWrite(K_OUT, HIGH); // drive K line high for 300ms delay(300); // send 0x33 at 5 bauds digitalWrite(K_OUT, LOW); // start bit delay(200); b=0x33; for (byte mask = 0x01; mask != 0; mask <<= 1) { if (b & mask) digitalWrite(K_OUT, HIGH); else digitalWrite(K_OUT, LOW); delay(200); } digitalWrite(K_OUT, HIGH); // stop bit + 60 ms delay delay(260); Serial1.begin(10400); // switch now to 10400 bauds Serial2.begin(10400); byte i=0; // wait for 0x55 from the ECU (up to 300ms) while(i<3 && !iso_read_byte(&b)){ i++; } Serial1.write(b); if(b != 0x55){ return 1; } iso_read_byte(&b); Serial.print("In Synch: "); Serial.println(b, HEX); // wait for kw1 and kw2 iso_read_byte(&b); Serial.print("In KW1: "); Serial.println(b, HEX); iso_read_byte(&b); Serial.print("In KW2: "); Serial.println(b, HEX); Serial.print ("Out ~KW2: "); //Serial.println(~b, HEX); iso_write_byte(~b); // send ~kw2 (invert of last keyword) //delay (10); iso_read_byte(&b); //Serial.print ("In Addr: "); Serial.println(b, HEX); // ECU answer by 0xCC (~0x33) if(b!=0xCC) return 1; return 0; } void serial_rx_off() { UCSR0B &= ~(_BV(RXEN0)); } void serial_tx_off() { UCSR0B &= ~(_BV(TXEN0)); delay(20); //allow time for buffers to flush } void serial_rx_on() { Serial.begin(10400); } boolean iso_read_byte(byte * b) { int readData; boolean success = true; byte t=0; while(t != READ_ATTEMPTS && (readData=Serial1.read())==-1) { delay(1); t++; } if (t>=READ_ATTEMPTS) { success = false; } if (success) { *b = (byte) readData; } return success; } void iso_write_byte(byte b) { //serial_rx_off(); Serial1.write(b); delay(15); //serial_rx_on(); } byte iso_checksum(byte *data, byte len) { byte i; byte crc; crc=0; for(i=0; i<len; i++) crc=crc+data[i]; return crc; } byte iso_write_data(byte *data, byte len) { byte i, n; byte buf[20]; // ISO header buf[0]=0x68; buf[1]=0x6A; // 0x68 0x6A is an OBD-II request buf[2]=0xF1; // our requesterХs address (off-board tool) // append message for(i=0; i<len; i++) buf[i+3]=data[i]; // calculate checksum i+=3; buf[i]=iso_checksum(buf, i); // send char one by one n=i+1; for(i=0; i<n; i++) { iso_write_byte(buf[i]); } return 0; } // read n byte(s) of data (+ header + cmd and crc) // return the count of bytes of message (includes all data in message) byte iso_read_data(byte *data, byte len) { byte i; byte buf[20]; byte dataSize = 0; for(i=0; i<len+6; i++) { if (iso_read_byte(buf+i)) { dataSize++; } } memcpy(data, buf+5, len); delay(55); //guarantee 55 ms pause between requests return dataSize; } boolean get_pid(byte pid, char *retbuf, long *ret) { byte cmd[2]; // to send the command byte buf[10]; // to receive the result byte reslen = pid_reslen[pid]; // receive length depends on pid cmd[0]=0x01; // ISO cmd 1, get PID cmd[1]=pid; iso_write_data(cmd, 2); // send command, length 2 if (!iso_read_data(buf, reslen)) // read requested length, n bytes received in buf { Serial.println("ISO Read Data Error."); return false; } *ret=buf[0]*256U+buf[1]; // a lot of formulas are the same so calculate a default return value here Serial.print("Return Value "); Serial.print(pid, HEX); Serial.print(" : "); Serial.println(*ret, DEC); return true; }правда не пойму почему закоментирована библиотека софтвара и еще некоторые строки, и почему он использовал RX1 и RX2 а не ТХ1 и RХ1 ........ но главное что у него инициализируется. у меня же машина молчит. дальше ....
логический 0 и1 уровни напряжения. значит напряжение должно быть на к линии -логическая "1" это от 9.6в до 12в и логический "0" от 2.4в до 0в. ардуино на ТХ и RХ логическая "1" от 3.5в до 5в и логический "0" от 1.5в до 0в. мой адаптер справляется на УРА.
и инициализация
вроде как в скетче вся инициализация соблюдена. какие-то мысли господа?
продолжаем штудировать инициализацию. произошла непонятка. подключил ОПКОМ. показывает протокол kwp2000 и при инициализации показало keyword 2027 protocol, keyword1 - 6B , keyword2 - 8F . по утверждению документов это протокол ISO14230. но этот протокол использовался на машинах с 2003 года, а моя машина 2001. вот выдержка
ISO14230-4 (KWP2000)
Very common protocol for 2003+ vehicles using ISO9141 K-Line. Uses pin 7.
Two variants of ISO14230-4 exist. They differ only in method of communication initialization. All use 10400 bits per second.
ISO9141-2
Older protocol used mostly on European vehicles between 2000 and 2004. Uses pins 7 and optionally 15.
как такое возможно? разве что машине мозги меняли с какой-то зафиры 2003-2004 года. фантастика..... продолжаю штурмовать. у этого протокола другая инициализация, даже две, быстрая и медленная. попробую с ними...... так же нарыл оф документ по ISO 14230 и там есть
как раз то что мне показал ОПКОМ keyword 2027 protocol, keyword1 - 6B , keyword2 - 8F . странности продолжаются....
но вот нашел еще однин документ и в нем с 2000 года уже ISO 14230
Доброе время суток. Извеняюсь за долгое отсутсвие, дела, заботы. И так..... я продвинулся вперед. выяснил что действительно у меня KWP 2000. выяснил подсоединив тестер к К-линии всесте с ОП-КОМ и посмотрел скачки напряжения они оказались быстрыми и короткими и не падали ниже 11 вольт. вывод , быстарая инициализация, так как при медленнной падает до 3 вольт (проверено). едем дальше..... вывод: Fast init KWP2000. инициализация происходит так:
#define TX 18 byte message[6] = { 0x81,0x31,0xF1,0x81,0x24}; int length = 5; int counter; int mode; void setup() { Serial.begin(57600); pinMode(TX, OUTPUT); } void loop() { fastinit(); sendrequest(); //delay(50); recievedata(); } void fastinit(){ if (!mode) { digitalWrite (TX, HIGH); // makes K-line high 3 delay(2000); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message Serial1.begin(10400); // baud rate of the OBD mode++; } } void sendrequest() { if (counter < length) { Serial1.write(message[counter]); // delay(1); counter++; } } void recievedata() { if (Serial1.available()){ Serial.print(Serial1.read(),HEX); } }и второй вариант ( не очень интересует, много всего и он делает все циклично, по новой и поновой и......)
#define TX 18 //variables int dotdelay = 1000; int timeout = 10000; int timeold; int messagelength = 5; byte message[5] = { 0x81,0x31,0xF1,0x81,0x24 }; int responselength = 7; byte message_response[7] = { 0x83, 0xF1, 0x31, 0xC1, 0x9E, 0x8F, 0xDE }; int mode; void setup() { Serial.begin(57600); pinMode(TX, OUTPUT); } void loop() { fastinit(); sendrequest(); recievedata(); } void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); // makes K-line high 3 Serial.println("Set K-Line High"); delay(3000); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 Serial.println("Set K-Line Low"); delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 Serial.println("Set K-Line High"); delay(25); //last delay before first message Serial1.begin(10400); // baud rate of the OBD Serial.println("starting serial comunication"); mode++; } } void sendrequest() { Serial.println("send request"); for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { Serial1.write(message[i]); Serial.print("sending data: "); Serial.println(message[i], HEX); } Serial.println("request sent"); } void recievedata() { int i = 0; int req = 0; int data = 0; int dataok = 0; Serial.println("waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println("TIMEOUT"); mode = 0; Serial1.end(); return; } if (Serial1.available()) { byte inByte = Serial1.read(); Serial.print("recieving data: "); Serial.println(inByte,HEX); if (inByte == message[i]) { i++; Serial.println("OK"); if (messagelength == i) { Serial.println("request ok"); req++; i = 0; } } if ((req) & (inByte == message_response[i])) { i++; Serial.println("OK"); } if (responselength == i) { data++; i = 0; dataok++; Serial.println("Communication OK"); } } } }Значит так, что делает этот скетч, он проходит инициализацию и получает положительный ответ на первое сообщение. Теперь вот на чем я застрял. Как я не пытался в этот скетч влепить второе сообщение для для присутствия адаптера, ничего не работает. Вот пробовал так:
#define TX 18 int length = 5; int counter; int mode; byte message[6] = { 0x81,0x31,0xF1,0x81,0x24}; byte message2[6] = { 0x81,0x31,0xF1,0x3E,0xE1}; void setup() { Serial.begin(57600); pinMode(TX, OUTPUT); } void loop() { fastinit(); sendrequest(); recievedata(); sendpresent(); recievedata(); } void fastinit(){ if (!mode) { digitalWrite (TX, HIGH); // makes K-line high 3 delay(360); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message Serial1.begin(10400); // baud rate of the OBD mode++; } } void sendrequest() { if (counter < length) { Serial1.write(message[counter]); // delay(1); counter++; } } void sendpresent() { if (counter < length) { Serial1.write(message2[counter]); // delay(1); counter++; } } void recievedata() { if (Serial1.available()){ Serial.print(Serial1.read(),HEX); } }добавил byte message2[6] и void sendpresent()
должен получить положительный 8131F1812483F131C1E98FDE где "С1" положительный ответ и на второе сообщение 8131F13EE181F1317E21 где "7E" положительный ответ. но теперь у меня не приходит положителный ответ на первый пакет ни на второй пакет , приходит вот это 8131F13E24 и почему-то в конце контрольная сумма от первого пакета. Что-то не так.....
Похоже я сам с собой тут разговариваю, ну и ладно, может мой труд пригодится таким как я, новичкам. Я все таки добился рабочего скетча, теперь я получаю ответы на все посылы.
Отправляю 81 31 F1 81 24 получаю 83 F1 31 C1 E9 8F DE //запрос соединения где С1 соединение ОК
Отправляю 81 31 F1 3E E1 получаю 81 F1 31 7E 21 //запрос присутсвия где 7E присутсвие ОК
что такое //запрос присутсвия где 7E присутсвие ОК ? вот ответ : Если обмен данными с клиентом в течение длительного времени не происходит, блок управления (ECU) автоматически выходит из текущего сеанса и возвращается к «сеансу по умолчанию» назад. Поэтому существует дополнительная услуга, целью которой является сигнализация устройству о том, что клиент все еще присутствует.
вот скетч с коментариями......
#define TX 18 //пин отправки данных в К-линию (Serial1- TX 18,RX 19).подключение RX-TX,TX-RX int mode; int dotdelay = 1000; //вроде как не нужно, но пока оставил int timeout = 10000; //время ожидания данных в мили секунд int timeold; //относится к ожиданию данных int messagelength = 5; //длинна отправляемого сообщения byte message1[5] = {0x81,0x31,0xF1,0x81,0x24};//запрос на соединение byte message2[5] = {0x81,0x31,0xF1,0x3E,0xE1};//запрос присутсвия (что бы не терялась связь) void setup() { Serial.begin(57600); //скорость порта компа pinMode(TX, OUTPUT); //пин отправки даннх в К-линию } void loop() { fastinit(); //инициализация sendrequest(); //запрос на подключение delay(50); //обязательная задержка на 50мс, иначе не работает sendpresent(); //запрос присутсвия recievedata(); //получение ответов } void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); delay(360); digitalWrite (TX, LOW); delay(25); digitalWrite (TX, HIGH); delay(25); Serial1.begin(10400); Serial.println("starting serial comunication"); mode++; } } //запрос на соединение void sendrequest() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { Serial1.write(message1[i]); Serial.print(message1[i],HEX); } } //запрос присутсвия (что бы не терялась связь) void sendpresent() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { Serial1.write(message2[i]); Serial.print(message2[i],HEX); } } //проверка получение данных из авто, если данные перестают //поступать идет ожидание 10000мс, если нет то идет перезагрузка void loop(), //тоесть новая инициализация void recievedata() { int i = 0; int dataok = 0; Serial.println(" waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println(" TIMEOUT"); mode = 0; Serial1.end(); return; } if (Serial1.available()) { byte inByte = Serial1.read(); Serial.print(""); Serial.print(inByte,HEX); //получение данных } if (Serial.available()) { byte inByte = Serial.read(); Serial1.print(""); Serial1.print(inByte,HEX); //отправка данных из порта } } }Теперь изучаю как выйти на опрос датчиков. сделал запрос 82 31 F1 01 00 A5 чтобы узнать потдерживаемые параметры, пока глухо. В терминале выводит 83F317F11136 (где 7F это ошибка запроса) . Штудирую дальше. Если кто может подсказать как сделать запрос хотябы для температуры охлаждающей жидкости, чтобы уловаить суть...... буду очень признателен.
Привет всем. продолжаю разговор сам с собой. Значит так, по способу описаному выше нашел два адреса это 28 (блок ABS) и 31 (блок напряжений). А блок мотора так и не нашелся. Я подцепил OP-COM в ардуино залил написаный скетч для прослушки К-линии и подцепился в OP-COMе на К-линию и массу. В итоге он подцепился по адресу 11 (81 11 F1). Обрадывался написал скетч инициализации а адаптер не инитится. Долго мучился и вспонил что kwp2000 имеет fast init и fast init 5baud, никогда не мог подумать что блоки могут иметь разную инициализацию. Написал скетч fast init 5baud и о чудо я зацепился, попробовал температуру посмотреть 82 11 F1 01 05 8A и сново чудо, получил 83 11 F1 41 05 4C 17, где 4С это температура , формула расчета это: 4С(HEX)=76(DEC), 76-40=36 градусов. Вот как-то так. следующая задача это найти все параметры , нарисовать скетч и вывести это все на экран TFT 3,95.
Выкладываю все скетчи:
Написал скетч для проверки всех 220-и возможных адресов. просто заливаете в ардуино, цепляетесь к ОБД2 и ждете 15 минут, в сериале порта вы увидите к каким блокам он подцепился, будет что-то типи 83 F1 31 C1 E9 8F DE , где С1 это положительный ответ,смотрите перед ответом какой запрос и с каким адресом был отправлен. Так же не забываем что он может найти как у меня разные блоки но не моторный блок, возможно что у вас он тоже на fast init 5baud, не растраиваемся и пробуем 5baud c адресами: с 10 до 17 вроде как вычитал что это моторные адреса, поищите в инете возможные варианты адресов к вашей машине. Этот скетч только для fast init.
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); //R,T #define TX 11 int mode; //-----variables------------------------------------------------------------------ int dotdelay = 1000; int timeout = 4000; int timeold; int messagelength = 5; //int messagelength2 = 6; //int messagelength3 = 8; //-----PAQUETES HEX--------------------------------------------------------------- byte message1[5] = {0x81,0x01,0xF1,0x81,0xF4}; //COMUNICACION// byte message2[5] = {0x81,0x02,0xF1,0x81,0xF5}; //COMUNICACION// byte message3[5] = {0x81,0x03,0xF1,0x81,0xF6}; //COMUNICACION// byte message4[5] = {0x81,0x04,0xF1,0x81,0xF7}; //COMUNICACION// byte message5[5] = {0x81,0x05,0xF1,0x81,0xF8}; //COMUNICACION// byte message6[5] = {0x81,0x06,0xF1,0x81,0xF9}; //COMUNICACION// byte message7[5] = {0x81,0x07,0xF1,0x81,0xFA}; //COMUNICACION// byte message8[5] = {0x81,0x08,0xF1,0x81,0xFB}; //COMUNICACION// byte message9[5] = {0x81,0x09,0xF1,0x81,0xFC}; //COMUNICACION// byte message10[5] = {0x81,0x10,0xF1,0x81,0x03}; //COMUNICACION// byte message11[5] = {0x81,0x11,0xF1,0x81,0x04}; //COMUNICACION// byte message12[5] = {0x81,0x12,0xF1,0x81,0x05}; //COMUNICACION// byte message13[5] = {0x81,0x13,0xF1,0x81,0x06}; //COMUNICACION// byte message14[5] = {0x81,0x14,0xF1,0x81,0x07}; //COMUNICACION// byte message15[5] = {0x81,0x15,0xF1,0x81,0x08}; //COMUNICACION// byte message16[5] = {0x81,0x16,0xF1,0x81,0x09}; //COMUNICACION// byte message17[5] = {0x81,0x17,0xF1,0x81,0x0A}; //COMUNICACION// byte message18[5] = {0x81,0x18,0xF1,0x81,0x0B}; //COMUNICACION// byte message19[5] = {0x81,0x19,0xF1,0x81,0x0C}; //COMUNICACION// byte message20[5] = {0x81,0x20,0xF1,0x81,0x13}; //COMUNICACION// byte message21[5] = {0x81,0x21,0xF1,0x81,0x14}; //COMUNICACION// byte message22[5] = {0x81,0x22,0xF1,0x81,0x15}; //COMUNICACION// byte message23[5] = {0x81,0x23,0xF1,0x81,0x16}; //COMUNICACION// byte message24[5] = {0x81,0x24,0xF1,0x81,0x17}; //COMUNICACION// byte message25[5] = {0x81,0x25,0xF1,0x81,0x18}; //COMUNICACION// byte message26[5] = {0x81,0x26,0xF1,0x81,0x19}; //COMUNICACION// byte message27[5] = {0x81,0x27,0xF1,0x81,0x1A}; //COMUNICACION// byte message28[5] = {0x81,0x28,0xF1,0x81,0x1B}; //COMUNICACION// byte message29[5] = {0x81,0x29,0xF1,0x81,0x1C}; //COMUNICACION// byte message30[5] = {0x81,0x30,0xF1,0x81,0x23}; //COMUNICACION// byte message31[5] = {0x81,0x31,0xF1,0x81,0x24}; //COMUNICACION// byte message32[5] = {0x81,0x32,0xF1,0x81,0x25}; //COMUNICACION// byte message33[5] = {0x81,0x33,0xF1,0x81,0x26}; //COMUNICACION// byte message34[5] = {0x81,0x34,0xF1,0x81,0x27}; //COMUNICACION// byte message35[5] = {0x81,0x35,0xF1,0x81,0x28}; //COMUNICACION// byte message36[5] = {0x81,0x36,0xF1,0x81,0x29}; //COMUNICACION// byte message37[5] = {0x81,0x37,0xF1,0x81,0x2A}; //COMUNICACION// byte message38[5] = {0x81,0x38,0xF1,0x81,0x2B}; //COMUNICACION// byte message39[5] = {0x81,0x39,0xF1,0x81,0x2C}; //COMUNICACION// byte message40[5] = {0x81,0x40,0xF1,0x81,0x33}; //COMUNICACION// byte message41[5] = {0x81,0x41,0xF1,0x81,0x34}; //COMUNICACION// byte message42[5] = {0x81,0x42,0xF1,0x81,0x35}; //COMUNICACION// byte message43[5] = {0x81,0x43,0xF1,0x81,0x36}; //COMUNICACION// byte message44[5] = {0x81,0x44,0xF1,0x81,0x37}; //COMUNICACION// byte message45[5] = {0x81,0x45,0xF1,0x81,0x38}; //COMUNICACION// byte message46[5] = {0x81,0x46,0xF1,0x81,0x39}; //COMUNICACION// byte message47[5] = {0x81,0x47,0xF1,0x81,0x3A}; //COMUNICACION// byte message48[5] = {0x81,0x48,0xF1,0x81,0x3B}; //COMUNICACION// byte message49[5] = {0x81,0x49,0xF1,0x81,0x3C}; //COMUNICACION// byte message50[5] = {0x81,0x50,0xF1,0x81,0x43}; //COMUNICACION// byte message51[5] = {0x81,0x51,0xF1,0x81,0x44}; //COMUNICACION// byte message52[5] = {0x81,0x52,0xF1,0x81,0x45}; //COMUNICACION// byte message53[5] = {0x81,0x53,0xF1,0x81,0x46}; //COMUNICACION// byte message54[5] = {0x81,0x54,0xF1,0x81,0x47}; //COMUNICACION// byte message55[5] = {0x81,0x55,0xF1,0x81,0x48}; //COMUNICACION// byte message56[5] = {0x81,0x56,0xF1,0x81,0x49}; //COMUNICACION// byte message57[5] = {0x81,0x57,0xF1,0x81,0x4A}; //COMUNICACION// byte message58[5] = {0x81,0x58,0xF1,0x81,0x4B}; //COMUNICACION// byte message59[5] = {0x81,0x59,0xF1,0x81,0x4C}; //COMUNICACION// byte message60[5] = {0x81,0x60,0xF1,0x81,0x53}; //COMUNICACION// byte message61[5] = {0x81,0x61,0xF1,0x81,0x54}; //COMUNICACION// byte message62[5] = {0x81,0x62,0xF1,0x81,0x55}; //COMUNICACION// byte message63[5] = {0x81,0x63,0xF1,0x81,0x56}; //COMUNICACION// byte message64[5] = {0x81,0x64,0xF1,0x81,0x57}; //COMUNICACION// byte message65[5] = {0x81,0x65,0xF1,0x81,0x58}; //COMUNICACION// byte message66[5] = {0x81,0x66,0xF1,0x81,0x59}; //COMUNICACION// byte message67[5] = {0x81,0x67,0xF1,0x81,0x5A}; //COMUNICACION// byte message68[5] = {0x81,0x68,0xF1,0x81,0x5B}; //COMUNICACION// byte message69[5] = {0x81,0x69,0xF1,0x81,0x5C}; //COMUNICACION// byte message70[5] = {0x81,0x70,0xF1,0x81,0x63}; //COMUNICACION// byte message71[5] = {0x81,0x71,0xF1,0x81,0x64}; //COMUNICACION// byte message72[5] = {0x81,0x72,0xF1,0x81,0x65}; //COMUNICACION// byte message73[5] = {0x81,0x73,0xF1,0x81,0x66}; //COMUNICACION// byte message74[5] = {0x81,0x74,0xF1,0x81,0x67}; //COMUNICACION// byte message75[5] = {0x81,0x75,0xF1,0x81,0x68}; //COMUNICACION// byte message76[5] = {0x81,0x76,0xF1,0x81,0x69}; //COMUNICACION// byte message77[5] = {0x81,0x77,0xF1,0x81,0x6A}; //COMUNICACION// byte message78[5] = {0x81,0x78,0xF1,0x81,0x6B}; //COMUNICACION// byte message79[5] = {0x81,0x79,0xF1,0x81,0x6C}; //COMUNICACION// byte message80[5] = {0x81,0x80,0xF1,0x81,0x73}; //COMUNICACION// byte message81[5] = {0x81,0x81,0xF1,0x81,0x74}; //COMUNICACION// byte message82[5] = {0x81,0x82,0xF1,0x81,0x75}; //COMUNICACION// byte message83[5] = {0x81,0x83,0xF1,0x81,0x76}; //COMUNICACION// byte message84[5] = {0x81,0x84,0xF1,0x81,0x77}; //COMUNICACION// byte message85[5] = {0x81,0x85,0xF1,0x81,0x78}; //COMUNICACION// byte message86[5] = {0x81,0x86,0xF1,0x81,0x79}; //COMUNICACION// byte message87[5] = {0x81,0x87,0xF1,0x81,0x7A}; //COMUNICACION// byte message88[5] = {0x81,0x88,0xF1,0x81,0x7B}; //COMUNICACION// byte message89[5] = {0x81,0x89,0xF1,0x81,0x7C}; //COMUNICACION// byte message90[5] = {0x81,0x90,0xF1,0x81,0x83}; //COMUNICACION// byte message91[5] = {0x81,0x91,0xF1,0x81,0x84}; //COMUNICACION// byte message92[5] = {0x81,0x92,0xF1,0x81,0x85}; //COMUNICACION// byte message93[5] = {0x81,0x93,0xF1,0x81,0x86}; //COMUNICACION// byte message94[5] = {0x81,0x94,0xF1,0x81,0x87}; //COMUNICACION// byte message95[5] = {0x81,0x95,0xF1,0x81,0x88}; //COMUNICACION// byte message96[5] = {0x81,0x96,0xF1,0x81,0x89}; //COMUNICACION// byte message97[5] = {0x81,0x97,0xF1,0x81,0x8A}; //COMUNICACION// byte message98[5] = {0x81,0x98,0xF1,0x81,0x8B}; //COMUNICACION// byte message99[5] = {0x81,0x99,0xF1,0x81,0x8C}; //COMUNICACION// //----------------------------------------------------------------------------------------- byte message101[5] = {0x81,0x0A,0xF1,0x81,0xFD}; //COMUNICACION// byte message102[5] = {0x81,0x1A,0xF1,0x81,0x0D}; //COMUNICACION// byte message103[5] = {0x81,0x2A,0xF1,0x81,0x1D}; //COMUNICACION// byte message104[5] = {0x81,0x3A,0xF1,0x81,0x2D}; //COMUNICACION// byte message105[5] = {0x81,0x4A,0xF1,0x81,0x3D}; //COMUNICACION// byte message106[5] = {0x81,0x5A,0xF1,0x81,0x4D}; //COMUNICACION// byte message107[5] = {0x81,0x6A,0xF1,0x81,0x5D}; //COMUNICACION// byte message108[5] = {0x81,0x7A,0xF1,0x81,0x6D}; //COMUNICACION// byte message109[5] = {0x81,0x8A,0xF1,0x81,0x7D}; //COMUNICACION// byte message110[5] = {0x81,0x9A,0xF1,0x81,0x8D}; //COMUNICACION// byte message111[5] = {0x81,0xA0,0xF1,0x81,0x93}; //COMUNICACION// byte message112[5] = {0x81,0xA1,0xF1,0x81,0x94}; //COMUNICACION// byte message113[5] = {0x81,0xA2,0xF1,0x81,0x95}; //COMUNICACION// byte message114[5] = {0x81,0xA3,0xF1,0x81,0x96}; //COMUNICACION// byte message115[5] = {0x81,0xA4,0xF1,0x81,0x97}; //COMUNICACION// byte message116[5] = {0x81,0xA5,0xF1,0x81,0x98}; //COMUNICACION// byte message117[5] = {0x81,0xA6,0xF1,0x81,0x99}; //COMUNICACION// byte message118[5] = {0x81,0xA7,0xF1,0x81,0x9A}; //COMUNICACION// byte message119[5] = {0x81,0xA8,0xF1,0x81,0x9B}; //COMUNICACION// byte message120[5] = {0x81,0xA9,0xF1,0x81,0x9C}; //COMUNICACION// byte message121[5] = {0x81,0x0B,0xF1,0x81,0xFE}; //COMUNICACION// byte message122[5] = {0x81,0x1B,0xF1,0x81,0x0E}; //COMUNICACION// byte message123[5] = {0x81,0x2B,0xF1,0x81,0x1E}; //COMUNICACION// byte message124[5] = {0x81,0x3B,0xF1,0x81,0x2E}; //COMUNICACION// byte message125[5] = {0x81,0x4B,0xF1,0x81,0x3E}; //COMUNICACION// byte message126[5] = {0x81,0x5B,0xF1,0x81,0x4E}; //COMUNICACION// byte message127[5] = {0x81,0x6B,0xF1,0x81,0x5E}; //COMUNICACION// byte message128[5] = {0x81,0x7B,0xF1,0x81,0x6E}; //COMUNICACION// byte message129[5] = {0x81,0x8B,0xF1,0x81,0x7E}; //COMUNICACION// byte message130[5] = {0x81,0x9B,0xF1,0x81,0x8E}; //COMUNICACION// byte message131[5] = {0x81,0xB0,0xF1,0x81,0xA3}; //COMUNICACION// byte message132[5] = {0x81,0xB1,0xF1,0x81,0xA4}; //COMUNICACION// byte message133[5] = {0x81,0xB2,0xF1,0x81,0xA5}; //COMUNICACION// byte message134[5] = {0x81,0xB3,0xF1,0x81,0xA6}; //COMUNICACION// byte message135[5] = {0x81,0xB4,0xF1,0x81,0xA7}; //COMUNICACION// byte message136[5] = {0x81,0xB5,0xF1,0x81,0xA8}; //COMUNICACION// byte message137[5] = {0x81,0xB6,0xF1,0x81,0xA9}; //COMUNICACION// byte message138[5] = {0x81,0xB7,0xF1,0x81,0xAA}; //COMUNICACION// byte message139[5] = {0x81,0xB8,0xF1,0x81,0xAB}; //COMUNICACION// byte message140[5] = {0x81,0xB9,0xF1,0x81,0xAC}; //COMUNICACION// byte message141[5] = {0x81,0x0C,0xF1,0x81,0xFF}; //COMUNICACION// byte message142[5] = {0x81,0x1C,0xF1,0x81,0x0F}; //COMUNICACION// byte message143[5] = {0x81,0x2C,0xF1,0x81,0x1F}; //COMUNICACION// byte message144[5] = {0x81,0x3C,0xF1,0x81,0x2F}; //COMUNICACION// byte message145[5] = {0x81,0x4C,0xF1,0x81,0x3F}; //COMUNICACION// byte message146[5] = {0x81,0x5C,0xF1,0x81,0x4F}; //COMUNICACION// byte message147[5] = {0x81,0x6C,0xF1,0x81,0x5F}; //COMUNICACION// byte message148[5] = {0x81,0x7C,0xF1,0x81,0x6F}; //COMUNICACION// byte message149[5] = {0x81,0x8C,0xF1,0x81,0x7F}; //COMUNICACION// byte message150[5] = {0x81,0x9C,0xF1,0x81,0x8F}; //COMUNICACION// byte message151[5] = {0x81,0xC0,0xF1,0x81,0xB3}; //COMUNICACION// byte message152[5] = {0x81,0xC1,0xF1,0x81,0xB4}; //COMUNICACION// byte message153[5] = {0x81,0xC2,0xF1,0x81,0xB5}; //COMUNICACION// byte message154[5] = {0x81,0xC3,0xF1,0x81,0xB6}; //COMUNICACION// byte message155[5] = {0x81,0xC4,0xF1,0x81,0xB7}; //COMUNICACION// byte message156[5] = {0x81,0xC5,0xF1,0x81,0xB8}; //COMUNICACION// byte message157[5] = {0x81,0xC6,0xF1,0x81,0xB9}; //COMUNICACION// byte message158[5] = {0x81,0xC7,0xF1,0x81,0xBA}; //COMUNICACION// byte message159[5] = {0x81,0xC8,0xF1,0x81,0xBB}; //COMUNICACION// byte message160[5] = {0x81,0xC9,0xF1,0x81,0xBC}; //COMUNICACION// byte message161[5] = {0x81,0x0D,0xF1,0x81,0x00}; //COMUNICACION// byte message162[5] = {0x81,0x1D,0xF1,0x81,0x10}; //COMUNICACION// byte message163[5] = {0x81,0x2D,0xF1,0x81,0x20}; //COMUNICACION// byte message164[5] = {0x81,0x3D,0xF1,0x81,0x30}; //COMUNICACION// byte message165[5] = {0x81,0x4D,0xF1,0x81,0x40}; //COMUNICACION// byte message166[5] = {0x81,0x5D,0xF1,0x81,0x50}; //COMUNICACION// byte message167[5] = {0x81,0x6D,0xF1,0x81,0x60}; //COMUNICACION// byte message168[5] = {0x81,0x7D,0xF1,0x81,0x70}; //COMUNICACION// byte message169[5] = {0x81,0x8D,0xF1,0x81,0x80}; //COMUNICACION// byte message170[5] = {0x81,0x9D,0xD9,0x81,0x90}; //COMUNICACION// byte message171[5] = {0x81,0xD0,0xD0,0x81,0xC3}; //COMUNICACION// byte message172[5] = {0x81,0xD1,0x0D,0x81,0xC4}; //COMUNICACION// byte message173[5] = {0x81,0xD2,0x9D,0x81,0xC5}; //COMUNICACION// byte message174[5] = {0x81,0xD3,0x8D,0x81,0xC6}; //COMUNICACION// byte message175[5] = {0x81,0xD4,0x7D,0x81,0xC7}; //COMUNICACION// byte message176[5] = {0x81,0xD5,0x6D,0x81,0xC8}; //COMUNICACION// byte message177[5] = {0x81,0xD6,0x5D,0x81,0xC9}; //COMUNICACION// byte message178[5] = {0x81,0xD7,0x4D,0x81,0xCA}; //COMUNICACION// byte message179[5] = {0x81,0xD8,0x3D,0x81,0xCB}; //COMUNICACION// byte message180[5] = {0x81,0xD9,0x2D,0x81,0xCC}; //COMUNICACION// byte message181[5] = {0x81,0x0E,0x1D,0x81,0x01}; //COMUNICACION// byte message182[5] = {0x81,0x1E,0xF1,0x81,0x11}; //COMUNICACION// byte message183[5] = {0x81,0x2E,0xF1,0x81,0x21}; //COMUNICACION// byte message184[5] = {0x81,0x3E,0xF1,0x81,0x31}; //COMUNICACION// byte message185[5] = {0x81,0x4E,0xF1,0x81,0x41}; //COMUNICACION// byte message186[5] = {0x81,0x5E,0xF1,0x81,0x51}; //COMUNICACION// byte message187[5] = {0x81,0x6E,0xF1,0x81,0x61}; //COMUNICACION// byte message188[5] = {0x81,0x7E,0xF1,0x81,0x71}; //COMUNICACION// byte message189[5] = {0x81,0x8E,0xF1,0x81,0x81}; //COMUNICACION// byte message190[5] = {0x81,0x9E,0xF1,0x81,0x91}; //COMUNICACION// byte message191[5] = {0x81,0xE0,0xF1,0x81,0xD3}; //COMUNICACION// byte message192[5] = {0x81,0xE1,0xF1,0x81,0xD4}; //COMUNICACION// byte message193[5] = {0x81,0xE2,0xF1,0x81,0xD5}; //COMUNICACION// byte message194[5] = {0x81,0xE3,0xF1,0x81,0xD6}; //COMUNICACION// byte message195[5] = {0x81,0xE4,0xF1,0x81,0xD7}; //COMUNICACION// byte message196[5] = {0x81,0xE5,0xF1,0x81,0xD8}; //COMUNICACION// byte message197[5] = {0x81,0xE6,0xF1,0x81,0xD9}; //COMUNICACION// byte message198[5] = {0x81,0xE7,0xF1,0x81,0xDA}; //COMUNICACION// byte message199[5] = {0x81,0xE8,0xF1,0x81,0xDB}; //COMUNICACION// byte message200[5] = {0x81,0xE9,0xF1,0x81,0xDC}; //COMUNICACION// byte message201[5] = {0x81,0x0F,0xF1,0x81,0x02}; //COMUNICACION// byte message202[5] = {0x81,0x1F,0xF1,0x81,0x12}; //COMUNICACION// byte message203[5] = {0x81,0x2F,0xF1,0x81,0x22}; //COMUNICACION// byte message204[5] = {0x81,0x3F,0xF1,0x81,0x32}; //COMUNICACION// byte message205[5] = {0x81,0x4F,0xF1,0x81,0x42}; //COMUNICACION// byte message206[5] = {0x81,0x5F,0xF1,0x81,0x52}; //COMUNICACION// byte message207[5] = {0x81,0x6F,0xF1,0x81,0x62}; //COMUNICACION// byte message208[5] = {0x81,0x7F,0xF1,0x81,0x72}; //COMUNICACION// byte message209[5] = {0x81,0x8F,0xF1,0x81,0x82}; //COMUNICACION// byte message210[5] = {0x81,0x9F,0xF1,0x81,0x92}; //COMUNICACION// byte message211[5] = {0x81,0xF0,0xF1,0x81,0xE3}; //COMUNICACION// byte message212[5] = {0x81,0xF1,0xF1,0x81,0xE4}; //COMUNICACION// byte message213[5] = {0x81,0xF2,0xF1,0x81,0xE5}; //COMUNICACION// byte message214[5] = {0x81,0xF3,0xF1,0x81,0xE6}; //COMUNICACION// byte message215[5] = {0x81,0xF4,0xF1,0x81,0xE7}; //COMUNICACION// byte message216[5] = {0x81,0xF5,0xF1,0x81,0xE8}; //COMUNICACION// byte message217[5] = {0x81,0xF6,0xF1,0x81,0xE9}; //COMUNICACION// byte message218[5] = {0x81,0xF7,0xF1,0x81,0xEA}; //COMUNICACION// byte message219[5] = {0x81,0xF8,0xF1,0x81,0xEB}; //COMUNICACION// byte message220[5] = {0x81,0xF9,0xF1,0x81,0xEC}; //COMUNICACION// //----------------------------------------------------------------------------------- void setup() { Serial.begin(57600); pinMode(TX, OUTPUT); } //----------------------------------------------------------------------------------- void loop() { fastinit(); comunicacion1(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion2(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion3(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion4(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion5(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion6(); delay(50); recievedata(); delay(360); fastinit(); comunicacion7(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion8(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion9(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion10(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion11(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion12(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion13(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion14(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion15(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion16(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion17(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion18(); delay(50); recievedata(); delay(360); fastinit(); comunicacion19(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion20(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion21(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion22(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion23(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion24(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion25(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion26(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion27(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion28(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion29(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion30(); delay(50); recievedata(); delay(360); fastinit(); comunicacion31(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion32(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion33(); delay(50); recievedata(); delay(360); fastinit(); comunicacion34(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion35(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion36(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion37(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion38(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion39(); delay(50); recievedata(); delay(360); fastinit(); comunicacion40(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion41(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion42(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion43(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion44(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion45(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion46(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion47(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion48(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion49(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion50(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion51(); delay(50); recievedata(); delay(360); fastinit(); comunicacion52(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion53(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion54(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion55(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion56(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion57(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion58(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion59(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion60(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion61(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion62(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion62(); delay(50); recievedata(); delay(360); fastinit(); comunicacion64(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion65(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion66(); delay(50); recievedata(); delay(360); fastinit(); comunicacion67(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion68(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion69(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion70(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion71(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion72(); delay(50); recievedata(); delay(360); fastinit(); comunicacion73(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion74(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion75(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion76(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion77(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion78(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion79(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion80(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion81(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion82(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion83(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion84(); delay(50); recievedata(); delay(360); fastinit(); comunicacion85(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion86(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion87(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion88(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion89(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion90(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion91(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion92(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion93(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion94(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion95(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion96(); delay(50); recievedata(); delay(360); fastinit(); comunicacion97(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion98(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion99(); delay(50); recievedata(); delay(360); //-------------------------------------------------------------------------------------------------------- fastinit(); comunicacion101(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion102(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion103(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion104(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion105(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion106(); delay(50); recievedata(); delay(360); fastinit(); comunicacion107(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion108(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion109(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion110(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion111(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion112(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion113(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion114(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion115(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion116(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion117(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion118(); delay(50); recievedata(); delay(360); fastinit(); comunicacion119(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion120(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion121(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion122(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion123(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion124(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion125(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion126(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion127(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion128(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion129(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion130(); delay(50); recievedata(); delay(360); fastinit(); comunicacion131(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion132(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion133(); delay(50); recievedata(); delay(360); fastinit(); comunicacion134(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion135(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion136(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion137(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion138(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion139(); delay(50); recievedata(); delay(360); fastinit(); comunicacion140(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion141(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion142(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion143(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion144(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion145(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion146(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion147(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion148(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion149(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion150(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion151(); delay(50); recievedata(); delay(360); fastinit(); comunicacion152(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion153(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion154(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion155(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion156(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion157(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion158(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion159(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion160(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion161(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion162(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion163(); delay(50); recievedata(); delay(360); fastinit(); comunicacion164(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion165(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion166(); delay(50); recievedata(); delay(360); fastinit(); comunicacion167(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion168(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion169(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion170(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion171(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion172(); delay(50); recievedata(); delay(360); fastinit(); comunicacion173(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion174(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion175(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion176(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion177(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion178(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion179(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion180(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion181(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion182(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion183(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion184(); delay(50); recievedata(); delay(360); fastinit(); comunicacion185(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion186(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion187(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion188(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion189(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion190(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion191(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion192(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion193(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion194(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion195(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion196(); delay(50); recievedata(); delay(360); fastinit(); comunicacion197(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion198(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion199(); delay(50); recievedata(); delay(360); fastinit(); comunicacion200(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion201(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion202(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion203(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion204(); delay(50); recievedata(); delay(360); fastinit(); comunicacion205(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion206(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion207(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion208(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion209(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion210(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion211(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion212(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion213(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion214(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion215(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion216(); delay(50); recievedata(); delay(360); fastinit(); comunicacion217(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion218(); delay(50); recievedata(); delay(360); Serial.println(""); fastinit(); comunicacion219(); delay(50); recievedata(); delay(360); fastinit(); comunicacion220(); delay(50); recievedata(); delay(360); Serial.println(""); Serial.println("FIN COMUNICACION PRUEBA"); //fincomun(); //delay(50); recievedata(); delay(50000); } //-----FAST INIT--------------------------------------------------------------------- void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); delay(360); digitalWrite (TX, LOW); delay(25); digitalWrite (TX, HIGH); delay(25); mySerial.begin(10400); Serial.println("starting serial comunication"); mode++; } } //-----ENVIO DE PAQUETES------------------------------------------------------------- void comunicacion1() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message1[i]); Serial.print(message1[i],HEX); } } void comunicacion2() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message2[i]); Serial.print(message2[i],HEX); } } void comunicacion3() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message3[i]); Serial.print(message3[i],HEX); } } void comunicacion4() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message4[i]); Serial.print(message4[i],HEX); } } void comunicacion5() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message5[i]); Serial.print(message5[i],HEX); } } void comunicacion6() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message6[i]); Serial.print(message6[i],HEX); } } void comunicacion7() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message7[i]); Serial.print(message7[i],HEX); } } void comunicacion8() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message8[i]); Serial.print(message8[i],HEX); } } void comunicacion9() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message9[i]); Serial.print(message9[i],HEX); } } void comunicacion10() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message10[i]); Serial.print(message10[i],HEX); } } void comunicacion11() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message11[i]); Serial.print(message11[i],HEX); } } void comunicacion12() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message12[i]); Serial.print(message12[i],HEX); } } void comunicacion13() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message13[i]); Serial.print(message13[i],HEX); } } void comunicacion14() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message14[i]); Serial.print(message14[i],HEX); } } void comunicacion15() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message15[i]); Serial.print(message15[i],HEX); } } void comunicacion16() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message16[i]); Serial.print(message16[i],HEX); } } void comunicacion17() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message17[i]); Serial.print(message17[i],HEX); } } void comunicacion18() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message18[i]); Serial.print(message18[i],HEX); } } void comunicacion19() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message19[i]); Serial.print(message19[i],HEX); } } void comunicacion20() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message20[i]); Serial.print(message20[i],HEX); } } void comunicacion21() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message21[i]); Serial.print(message21[i],HEX); } } void comunicacion22() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message22[i]); Serial.print(message22[i],HEX); } } void comunicacion23() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message23[i]); Serial.print(message23[i],HEX); } } void comunicacion24() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message24[i]); Serial.print(message24[i],HEX); } } void comunicacion25() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message25[i]); Serial.print(message25[i],HEX); } } void comunicacion26() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message26[i]); Serial.print(message26[i],HEX); } } void comunicacion27() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message27[i]); Serial.print(message27[i],HEX); } } void comunicacion28() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message28[i]); Serial.print(message28[i],HEX); } } void comunicacion29() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message29[i]); Serial.print(message29[i],HEX); } } void comunicacion30() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message30[i]); Serial.print(message30[i],HEX); } } void comunicacion31() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message31[i]); Serial.print(message31[i],HEX); } } void comunicacion32() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message32[i]); Serial.print(message32[i],HEX); } } void comunicacion33() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message33[i]); Serial.print(message33[i],HEX); } } void comunicacion34() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message34[i]); Serial.print(message34[i],HEX); } } void comunicacion35() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message35[i]); Serial.print(message35[i],HEX); } } void comunicacion36() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message36[i]); Serial.print(message36[i],HEX); } } void comunicacion37() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message37[i]); Serial.print(message37[i],HEX); } } void comunicacion38() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message38[i]); Serial.print(message38[i],HEX); } } void comunicacion39() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message39[i]); Serial.print(message39[i],HEX); } } void comunicacion40() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message40[i]); Serial.print(message40[i],HEX); } } void comunicacion41() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message41[i]); Serial.print(message41[i],HEX); } } void comunicacion42() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message42[i]); Serial.print(message42[i],HEX); } } void comunicacion43() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message43[i]); Serial.print(message43[i],HEX); } } void comunicacion44() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message44[i]); Serial.print(message44[i],HEX); } } void comunicacion45() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message45[i]); Serial.print(message45[i],HEX); } } void comunicacion46() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message46[i]); Serial.print(message46[i],HEX); } } void comunicacion47() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message47[i]); Serial.print(message47[i],HEX); } } void comunicacion48() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message48[i]); Serial.print(message48[i],HEX); } } void comunicacion49() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message49[i]); Serial.print(message49[i],HEX); } } void comunicacion50() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message50[i]); Serial.print(message50[i],HEX); } } void comunicacion51() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message51[i]); Serial.print(message51[i],HEX); } } void comunicacion52() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message52[i]); Serial.print(message52[i],HEX); } } void comunicacion53() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message53[i]); Serial.print(message53[i],HEX); } } void comunicacion54() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message54[i]); Serial.print(message54[i],HEX); } } void comunicacion55() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message55[i]); Serial.print(message55[i],HEX); } } void comunicacion56() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message56[i]); Serial.print(message56[i],HEX); } } void comunicacion57() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message57[i]); Serial.print(message57[i],HEX); } } void comunicacion58() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message58[i]); Serial.print(message58[i],HEX); } } void comunicacion59() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message59[i]); Serial.print(message59[i],HEX); } } void comunicacion60() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message60[i]); Serial.print(message60[i],HEX); } } void comunicacion61() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message61[i]); Serial.print(message61[i],HEX); } } void comunicacion62() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message62[i]); Serial.print(message62[i],HEX); } } void comunicacion63() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message63[i]); Serial.print(message63[i],HEX); } } void comunicacion64() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message64[i]); Serial.print(message64[i],HEX); } } void comunicacion65() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message65[i]); Serial.print(message65[i],HEX); } } void comunicacion66() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message66[i]); Serial.print(message66[i],HEX); } } void comunicacion67() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message67[i]); Serial.print(message67[i],HEX); } } void comunicacion68() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message68[i]); Serial.print(message68[i],HEX); } } void comunicacion69() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message69[i]); Serial.print(message69[i],HEX); } } void comunicacion70() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message70[i]); Serial.print(message70[i],HEX); } } void comunicacion71() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message71[i]); Serial.print(message71[i],HEX); } } void comunicacion72() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message72[i]); Serial.print(message72[i],HEX); } } void comunicacion73() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message73[i]); Serial.print(message73[i],HEX); } } void comunicacion74() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message74[i]); Serial.print(message74[i],HEX); } } void comunicacion75() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message75[i]); Serial.print(message75[i],HEX); } } void comunicacion76() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message76[i]); Serial.print(message76[i],HEX); } } void comunicacion77() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message77[i]); Serial.print(message77[i],HEX); } } void comunicacion78() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message78[i]); Serial.print(message78[i],HEX); } } void comunicacion79() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message79[i]); Serial.print(message79[i],HEX); } } void comunicacion80() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message80[i]); Serial.print(message80[i],HEX); } } void comunicacion81() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message81[i]); Serial.print(message81[i],HEX); } } void comunicacion82() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message82[i]); Serial.print(message82[i],HEX); } } void comunicacion83() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message83[i]); Serial.print(message83[i],HEX); } } void comunicacion84() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message84[i]); Serial.print(message84[i],HEX); } } void comunicacion85() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message85[i]); Serial.print(message85[i],HEX); } } void comunicacion86() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message86[i]); Serial.print(message86[i],HEX); } } void comunicacion87() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message87[i]); Serial.print(message87[i],HEX); } } void comunicacion88() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message88[i]); Serial.print(message88[i],HEX); } } void comunicacion89() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message89[i]); Serial.print(message89[i],HEX); } } void comunicacion90() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message90[i]); Serial.print(message90[i],HEX); } } void comunicacion91() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message91[i]); Serial.print(message91[i],HEX); } } void comunicacion92() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message92[i]); Serial.print(message92[i],HEX); } } void comunicacion93() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message93[i]); Serial.print(message93[i],HEX); } } void comunicacion94() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message94[i]); Serial.print(message94[i],HEX); } } void comunicacion95() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message95[i]); Serial.print(message95[i],HEX); } } void comunicacion96() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message96[i]); Serial.print(message96[i],HEX); } } void comunicacion97() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message97[i]); Serial.print(message97[i],HEX); } } void comunicacion98() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message98[i]); Serial.print(message98[i],HEX); } } void comunicacion99() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message99[i]); Serial.print(message99[i],HEX); } } void comunicacion101() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message101[i]); Serial.print(message101[i],HEX); } } void comunicacion102() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message102[i]); Serial.print(message102[i],HEX); } } void comunicacion103() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message103[i]); Serial.print(message103[i],HEX); } } void comunicacion104() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message104[i]); Serial.print(message104[i],HEX); } } void comunicacion105() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message105[i]); Serial.print(message105[i],HEX); } } void comunicacion106() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message106[i]); Serial.print(message106[i],HEX); } } void comunicacion107() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message107[i]); Serial.print(message107[i],HEX); } } void comunicacion108() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message108[i]); Serial.print(message108[i],HEX); } } void comunicacion109() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message109[i]); Serial.print(message109[i],HEX); } } void comunicacion110() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message110[i]); Serial.print(message110[i],HEX); } } void comunicacion111() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message111[i]); Serial.print(message111[i],HEX); } } void comunicacion112() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message112[i]); Serial.print(message112[i],HEX); } } void comunicacion113() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message113[i]); Serial.print(message113[i],HEX); } } void comunicacion114() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message114[i]); Serial.print(message114[i],HEX); } } void comunicacion115() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message115[i]); Serial.print(message115[i],HEX); } } void comunicacion116() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message116[i]); Serial.print(message116[i],HEX); } } void comunicacion117() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message117[i]); Serial.print(message117[i],HEX); } } void comunicacion118() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message118[i]); Serial.print(message118[i],HEX); } } void comunicacion119() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message119[i]); Serial.print(message119[i],HEX); } } void comunicacion120() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message120[i]); Serial.print(message120[i],HEX); } } void comunicacion121() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message121[i]); Serial.print(message121[i],HEX); } } void comunicacion122() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message122[i]); Serial.print(message122[i],HEX); } } void comunicacion123() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message123[i]); Serial.print(message123[i],HEX); } } void comunicacion124() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message124[i]); Serial.print(message124[i],HEX); } } void comunicacion125() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message125[i]); Serial.print(message125[i],HEX); } } void comunicacion126() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message126[i]); Serial.print(message126[i],HEX); } } void comunicacion127() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message127[i]); Serial.print(message127[i],HEX); } } void comunicacion128() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message128[i]); Serial.print(message128[i],HEX); } } void comunicacion129() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message129[i]); Serial.print(message129[i],HEX); } } void comunicacion130() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message130[i]); Serial.print(message130[i],HEX); } } void comunicacion131() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message131[i]); Serial.print(message131[i],HEX); } } void comunicacion132() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message132[i]); Serial.print(message132[i],HEX); } } void comunicacion133() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message133[i]); Serial.print(message133[i],HEX); } } void comunicacion134() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message134[i]); Serial.print(message134[i],HEX); } } void comunicacion135() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message135[i]); Serial.print(message135[i],HEX); } } void comunicacion136() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message136[i]); Serial.print(message136[i],HEX); } } void comunicacion137() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message137[i]); Serial.print(message137[i],HEX); } } void comunicacion138() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message138[i]); Serial.print(message138[i],HEX); } } void comunicacion139() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message139[i]); Serial.print(message139[i],HEX); } } void comunicacion140() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message140[i]); Serial.print(message140[i],HEX); } } void comunicacion141() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message141[i]); Serial.print(message141[i],HEX); } } void comunicacion142() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message142[i]); Serial.print(message142[i],HEX); } } void comunicacion143() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message143[i]); Serial.print(message143[i],HEX); } } void comunicacion144() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message144[i]); Serial.print(message144[i],HEX); } } void comunicacion145() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message145[i]); Serial.print(message145[i],HEX); } } void comunicacion146() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message146[i]); Serial.print(message146[i],HEX); } } void comunicacion147() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message147[i]); Serial.print(message147[i],HEX); } } void comunicacion148() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message148[i]); Serial.print(message148[i],HEX); } } void comunicacion149() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message149[i]); Serial.print(message149[i],HEX); } } void comunicacion150() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message150[i]); Serial.print(message150[i],HEX); } } void comunicacion151() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message151[i]); Serial.print(message151[i],HEX); } } void comunicacion152() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message152[i]); Serial.print(message152[i],HEX); } } void comunicacion153() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message153[i]); Serial.print(message153[i],HEX); } } void comunicacion154() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message154[i]); Serial.print(message154[i],HEX); } } void comunicacion155() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message155[i]); Serial.print(message155[i],HEX); } } void comunicacion156() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message156[i]); Serial.print(message156[i],HEX); } } void comunicacion157() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message157[i]); Serial.print(message157[i],HEX); } } void comunicacion158() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message158[i]); Serial.print(message158[i],HEX); } } void comunicacion159() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message159[i]); Serial.print(message159[i],HEX); } } void comunicacion160() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message160[i]); Serial.print(message160[i],HEX); } } void comunicacion161() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message161[i]); Serial.print(message161[i],HEX); } } void comunicacion162() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message162[i]); Serial.print(message162[i],HEX); } } void comunicacion163() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message163[i]); Serial.print(message163[i],HEX); } } void comunicacion164() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message164[i]); Serial.print(message164[i],HEX); } } void comunicacion165() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message165[i]); Serial.print(message165[i],HEX); } } void comunicacion166() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message166[i]); Serial.print(message166[i],HEX); } } void comunicacion167() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message167[i]); Serial.print(message167[i],HEX); } } void comunicacion168() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message168[i]); Serial.print(message168[i],HEX); } } void comunicacion169() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message169[i]); Serial.print(message169[i],HEX); } } void comunicacion170() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message170[i]); Serial.print(message170[i],HEX); } } void comunicacion171() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message171[i]); Serial.print(message171[i],HEX); } } void comunicacion172() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message172[i]); Serial.print(message172[i],HEX); } } void comunicacion173() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message173[i]); Serial.print(message173[i],HEX); } } void comunicacion174() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message174[i]); Serial.print(message174[i],HEX); } } void comunicacion175() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message175[i]); Serial.print(message175[i],HEX); } } void comunicacion176() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message176[i]); Serial.print(message176[i],HEX); } } void comunicacion177() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message177[i]); Serial.print(message177[i],HEX); } } void comunicacion178() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message178[i]); Serial.print(message178[i],HEX); } } void comunicacion179() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message179[i]); Serial.print(message179[i],HEX); } } void comunicacion180() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message180[i]); Serial.print(message180[i],HEX); } } void comunicacion181() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message181[i]); Serial.print(message181[i],HEX); } } void comunicacion182() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message182[i]); Serial.print(message182[i],HEX); } } void comunicacion183() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message183[i]); Serial.print(message183[i],HEX); } } void comunicacion184() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message184[i]); Serial.print(message184[i],HEX); } } void comunicacion185() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message185[i]); Serial.print(message185[i],HEX); } } void comunicacion186() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message186[i]); Serial.print(message186[i],HEX); } } void comunicacion187() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message187[i]); Serial.print(message187[i],HEX); } } void comunicacion188() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message188[i]); Serial.print(message188[i],HEX); } } void comunicacion189() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message189[i]); Serial.print(message189[i],HEX); } } void comunicacion190() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message190[i]); Serial.print(message190[i],HEX); } } void comunicacion191() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message191[i]); Serial.print(message191[i],HEX); } } void comunicacion192() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message192[i]); Serial.print(message192[i],HEX); } } void comunicacion193() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message193[i]); Serial.print(message193[i],HEX); } } void comunicacion194() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message194[i]); Serial.print(message194[i],HEX); } } void comunicacion195() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message195[i]); Serial.print(message195[i],HEX); } } void comunicacion196() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message196[i]); Serial.print(message196[i],HEX); } } void comunicacion197() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message197[i]); Serial.print(message197[i],HEX); } } void comunicacion198() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message198[i]); Serial.print(message198[i],HEX); } } void comunicacion199() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message199[i]); Serial.print(message199[i],HEX); } } void comunicacion200() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message200[i]); Serial.print(message200[i],HEX); } } void comunicacion201() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message201[i]); Serial.print(message201[i],HEX); } } void comunicacion202() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message202[i]); Serial.print(message202[i],HEX); } } void comunicacion203() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message203[i]); Serial.print(message203[i],HEX); } } void comunicacion204() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message204[i]); Serial.print(message204[i],HEX); } } void comunicacion205() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message205[i]); Serial.print(message205[i],HEX); } } void comunicacion206() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message206[i]); Serial.print(message206[i],HEX); } } void comunicacion207() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message207[i]); Serial.print(message207[i],HEX); } } void comunicacion208() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message208[i]); Serial.print(message208[i],HEX); } } void comunicacion209() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message209[i]); Serial.print(message209[i],HEX); } } void comunicacion210() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message210[i]); Serial.print(message210[i],HEX); } } void comunicacion211() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message211[i]); Serial.print(message211[i],HEX); } } void comunicacion212() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message212[i]); Serial.print(message212[i],HEX); } } void comunicacion213() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message213[i]); Serial.print(message213[i],HEX); } } void comunicacion214() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message214[i]); Serial.print(message214[i],HEX); } } void comunicacion215() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message215[i]); Serial.print(message215[i],HEX); } } void comunicacion216() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message216[i]); Serial.print(message216[i],HEX); } } void comunicacion217() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message217[i]); Serial.print(message217[i],HEX); } } void comunicacion218() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message218[i]); Serial.print(message218[i],HEX); } } void comunicacion219() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message219[i]); Serial.print(message219[i],HEX); } } void comunicacion220() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message220[i]); Serial.print(message220[i],HEX); } } //-----RESPUESTAS DE DATOS---------------------------------------------------------------------- void recievedata() { int i = 0; int dataok = 0; Serial.println(" waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println(" TIMEOUT"); mode = 0; mySerial.end(); return; } if (mySerial.available()) { byte inByte = mySerial.read(); Serial.print(""); Serial.println(inByte,HEX); } if (Serial.available()) { byte inByte = Serial.read(); mySerial.print(""); mySerial.print(inByte,HEX); } } }-------------------------------------------------------------------------------------------------------------------
Теперь fast init 5baud. Секрет 5baud это при отправке задержка в 5-10 мили секунд между каждым байтом.
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); //R,T #define TX 11 int mode; int dotdelay = 1000; int timeout = 10100; int timeold; int messagelength = 1; byte message1[1] = {0x81}; byte message2[1] = {0x11}; byte message3[1] = {0xF1}; byte message4[1] = {0x81}; byte message5[1] = {0x04}; void setup() { Serial.begin(115200); pinMode(TX, OUTPUT); } void loop() { fastinit(); sendrequest(); recievedata(); } //FAST INIT 5baud-------------------------------------- void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); // makes K-line high 3 delay(360); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message mySerial.begin(10400); // baud rate of the OBD Serial.println("starting serial comunication"); mode++; } } void sendrequest(){ sendrequest1(); delay(5); sendrequest2(); delay(5); sendrequest3(); delay(5); sendrequest4(); delay(5); sendrequest5(); delay(5); delay(50); Serial.println(""); } //PAQUETE SEND INIT----------------------------------------------------------- void sendrequest1() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message1[i]); Serial.print(message1[i],HEX); } } void sendrequest2() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message2[i]); Serial.print(message2[i],HEX); } } void sendrequest3() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message3[i]); Serial.print(message3[i],HEX); } } void sendrequest4() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message4[i]); Serial.print(message4[i],HEX); } } void sendrequest5() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message5[i]); Serial.print(message5[i],HEX); } } //RESEBIR DATA--------------------------------------------------- void recievedata() { int i = 0; int dataok = 0; Serial.println(" waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println(" TIMEOUT"); mode = 0; mySerial.end(); return; } if (mySerial.available()) { byte inByte = mySerial.read(); Serial.print(""); Serial.println(inByte,HEX); } if (Serial.available()) { byte inByte = Serial.read(); mySerial.print(""); mySerial.print(inByte,HEX); } } }--------------------------------------------------------------------------------------------------------------------------------
Далее fast init может у гого-то сработает так а не 5baud
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); //R,T #define TX 11 int mode; int dotdelay = 1000; int timeout = 10100; int timeold; int messagelength = 5; byte message[5] = {0x81,0x11,0xF1,0x81,0x04}; void setup() { Serial.begin(115200); pinMode(TX, OUTPUT); } void loop() { fastinit(); sendrequest(); delay(50); recievedata(); } //FAST INIT 5baud-------------------------------------- void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); // makes K-line high 3 delay(360); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message mySerial.begin(10400); // baud rate of the OBD Serial.println("starting serial comunication"); mode++; } } //PAQUETE SEND INIT----------------------------------------------------------- void sendrequest() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message[i]); Serial.print(message[i],HEX); } } //RESEBIR DATA--------------------------------------------------- void recievedata() { int i = 0; int dataok = 0; Serial.println(" waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println(" TIMEOUT"); mode = 0; mySerial.end(); return; } if (mySerial.available()) { byte inByte = mySerial.read(); Serial.print(""); Serial.println(inByte,HEX); } if (Serial.available()) { byte inByte = Serial.read(); mySerial.print(""); mySerial.print(inByte,HEX); } } }------------------------------------------------------------------------------------------------------------------------------------
Ну и самое вкусное скетч с fast init 5baud+present+температура мотора. Он еще кривоват, но работает.
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); //R,T #define TX 11 int mode; //variables int dotdelay = 1000; int timeout = 1000; int timeold; int messagelength = 1; int messagelength2 = 5; int messagelength3 = 6; byte message1[1] = {0x81}; byte message2[1] = {0x11}; byte message3[1] = {0xF1}; byte message4[1] = {0x81}; byte message5[1] = {0x04}; byte message6[6] = {0x82,0x11,0xF1,0x01,0x05,0x8A}; byte message7[5] = {0x81,0x11,0xF1,0x3E,0xC1}; void setup() { Serial.begin(115200); pinMode(TX, OUTPUT); } void loop() { fastinit(); sendrequest1(); delay(5); sendrequest2(); delay(5); sendrequest3(); delay(5); sendrequest4(); delay(5); sendrequest5(); delay(5); delay(50); Serial.println(""); recievedata(); } void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); // makes K-line high 3 delay(360); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message mySerial.begin(10400); // baud rate of the OBD Serial.println("starting serial comunication"); mode++; } } //----------------------------------------------------------- void sendrequest1() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message1[i]); Serial.print(message1[i],HEX); } } void sendrequest2() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message2[i]); Serial.print(message2[i],HEX); } } void sendrequest3() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message3[i]); Serial.print(message3[i],HEX); } } void sendrequest4() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message4[i]); Serial.print(message4[i],HEX); } } void sendrequest5() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message5[i]); Serial.print(message5[i],HEX); } } //--------------------------------------------------------------------- void pids() { for (int i = 0; ((i < messagelength3 ) & (mode == 1)); i++) { mySerial.write(message6[i]); Serial.print(message6[i],HEX); } } void present() { for (int i = 0; ((i < messagelength2) & (mode == 1)); i++) { mySerial.write(message7[i]); Serial.print(message7[i],HEX); } } void recievedata() { present(); delay(55); Serial.println(""); int i = 0; int dataok = 0; Serial.println(" waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println(" TIMEOUT"); pids(); delay(55); Serial.println(""); recievedata(); return; } if (mySerial.available()) { byte inByte = mySerial.read(); Serial.print(""); Serial.print(inByte,HEX); } } }Во всех моих скетчах просто заменяете на свои адреса блоков. например :byte message[5] = {0x81,0x11,0xF1,0x81,0x04};
второй байт 0x11 это мой блок мотора заменяете на свой например 0x17 который вы нашли , не забываем что последний байт это контрольная сумма при замене своего адрес перещитываем ,получаем 0x81,0x17,0xF1,0x81,0x0A. Как считать контрольную сумму, можно использовать калькулятор Виндоус а можно скачать приложение на телефон, я пользуюсь Simple HEX DEC найдете на плаймаркете. сумма выводится так пример: 0x81,0x17,0xF1,0x81,0x0A это 81+17+F1+81=0A контрольная сумма.
Еще не большая инфа по адресам.
с 10 по 17 адреса мотора
с 18 до 1F адреса коробки
с 28 до 2F адреса тормоза/ABS
с 30 до 37 адреса рулевого управления
Ну вот пожалуй пока и все , надеюсь новечкам очень поможет, все разжевано от а до я. Дерзайте. Всем удачи. Будут вопросы, спрашивайте , я не спец я как вы, но чем смогу помогу.
автору спасибо за труды. Предстоит тоже самое. Но у меня задача еще сложнее. Надо не только вытянуть информацию из K-Line но изапихать её в CAN. Машина хонда старая. Вернее двигатель от хонды старой. а теперь стоит на аккорде 7. где уже щиток приборов уже CANовый и нужно тахометр оживить.
MaksVV щ. Спасибо за спасибо. Предлагаю вам взять на АлиЕхспрес за пару евров CAN shield. Мне кажется с ним будет не так уж сложно как с моим случаем. шилд уже готов ко всему, и описаний по кану очень много и с премерами скетчей, по крайней мере мне очень много попадалось пока искал свои ответы. Удачи.
так и сделал только вместо шилда заказал модуль на mcp2515, вроде как тоже самое, только дешеле
По идеи у продавца есть библиотека. Если нет на сайте товара попроси у продовца. Просто шилд подключается на прямую к ардуино и имеет готовые библиотеки. Жаль что я далеко, в Испании, имею шилд, мог бы за пиво отдать.
библиотеку легко нашел в инете. Подключил can модуль к программе CAN Hacker - работает. Показывает пакеты, летающие в кане. Также программа может отправлять свои созданные пакеты (фреймы).
А вот k-line микруха пока ещё не пришла. Кстати есть идея использовать ELM адаптер, который сделает всю "грязную" работу общения с эбу и сам выберет протокол. Ардуине только останется взять нужную инфу с elm через АТ команды. Подключение ардуино-elm по Serial (есть даже готовые библиотеки для elm. всё придумано за нас)
А какую микруху для k-line заказал? На драйве несколько вариантов есть.
L9637D на али
недавно видел что такие микрухи стоят в иммобилайзерах
Я рад что тебе легче все далось, с каном проще. Какую микрухе заказал? Я как говорил из первого моего поста использую адаптер на l9637d, но так же проверил и мой четвёртый адаптер из первого поста на вс547, пашет супер. Я не хотел елм, надо кнопку делать для питания, короче я хотел на прямую без посредников. Я вот застрял на скетче для вывода инфы с перщитаной формулой, например температуры. Не могу въехать как это запихнуть в скетче. Я получаю ответ, но как как выделить из ответа конкретный байт и пересчитал его по формуле вывести в сериал. Может кто знает?
ну например так
byte message[6] = {0x82,0x11,0xF1,0x01,0x05,0x8A}; int a; void setup() { Serial.begin (9600); } void loop() { a = message[0] + message [1]; Serial.println (a); delay (1000); }то есть программа складывает 0-вой байт число 130 (0х82 в Hex) и 1 байт число 17 (0х11 в hex) и выводит в сериал. Получается естественно 147.
То есть, в кавычках 0 и 1 это позиция байта в ответе? Это значит что я могу взять четвертую позицию ( температура) пересчитать и вывести?
да, только не в кавычках, а в квадратных скобках
вот, например, так можно объединить два байта в одно число (один байт может нести число от 0 до 255, а если число больше, его несут два байта и более)
byte message[6] = {0x82,0x11,0xF1,0x01,0x05,0x8A}; int var; void setup() { Serial.begin (9600); } void loop() { var = ( ( unsigned int )message[1] << 8 ) | message[0]; Serial.println (var); delay (1000); }пока ковырялся в инете нашел ODBuino, детально не изучал, все на английском, может поможет чем :"OBDuino является открытым исходным кодом маршрутного компьютера дизайна , основанный на Arduino платформе. OBDuino может быть собран и настроен радиолюбителем; он отображает информацию , такие как мгновенная экономия топлива (например , л / 100 км, мили на галлон или километры на литр), параметры настройки двигателя и т.д. на ЖКАХ."
покажи строку и какие байты по какой формуле посчитать
Например запрос температуры в твоём примере выше, приходит 82 F1 11 70 cs. Четвёртый байт 70 в dec это 112 отнять 40 и получаем 72 градуса для вывода в монитор
..
Понятно, буду завтра как и все до этого методом тыка пробовать. Спасибо
byte message[4] = {0x82, 0xF1, 0x11, 0x70}; int Temp; void setup() { Serial.begin (9600); } void loop() { Temp = message[3]-40; Serial.println (Temp); delay (1000); }ну вот, в сериале значение 72. По факту 0х70 это третий байт, т.к. начинается с нулевого. всего соответственно четыре
Сенкс. Завтра попробую. И отпишусь.
пока ковырялся в инете нашел ODBuino, детально не изучал, все на английском, может поможет чем :"OBDuino является открытым исходным кодом маршрутного компьютера дизайна , основанный на Arduino платформе. OBDuino может быть собран и настроен радиолюбителем; он отображает информацию , такие как мгновенная экономия топлива (например , л / 100 км, мили на галлон или километры на литр), параметры настройки двигателя и т.д. на ЖКАХ."
я так понял это тоже связка elm327 + arduino
MaksVV вы меня не поняли, мне надо вывести определенный байт из ответа, а ваши варианты выводят байт из отправленного сообщения. Мне нужно отправить сообщение
bytemessage[6] = {0x82,0x11,0xF1,0x01,0x05,0x8A}; и приходит ответ 83 F1 11 41 05 6C 37 , мне нужно выловить только пятый байт (6С) перевести в DEC (108) и отнять 40, итог 68 градусов и вывести в Serial. Пробую такint Temp;
Temp = mySerial.read (byte 5); // и так (byte [5])Serial.println (Temp);
не компилится, ошибка. Может надо всеж таки применить буфер и char? Но пока еще до этого не дошел. Вопрос как правильно из ответа вылавливать нужный байт и обработать его.....
Пытаюсь разобратся с буфером и char. нашел скетч там.... приходит ответ 83 F1 10 C1 B6 8F CS и в скетче строка while (buffer[18] != 0xC1); //Положительный ответ на соединение ,как он высчитал что это 18 в буфере, или ответ 9E F1 10 61...........CS(или так 80 F1 10 26 61......CS не поню точно) в скетче строка if (buffer[10] == 0x61) { // Положительный ответ (buffer[10] == 0x61) как подсчитал что это buffer 10, или ответ 9E F1 10 61........... (где то тут температура).......CS в скетче строка To1 = buffer[20] - 40; //Температура ОЖ . Подтолкните плиз, обычно сам дохожу до всего, а вот с выводом значений застраял.
понятно, я то думал сообщение уже приведено к виду byte[] {тра та та }. нужно посмотреть весь скетч
Выше мои пост и написано # а теперь самое вкусное# там свернуть весь скетче, но через часа 2 закину ещё раз, чуток переделанный.
а в конце принятого сообщения всегда CS ?
На сколько я знаю да. CS это контрольная сумма. В посте 12 полный скетче, самое вкусное.
попробуй так, в этом скетче при принятии данных с mySerial они записываются в массив байтов MessageRx[8]. Записываются только 8 байт (можно поменять). Потом можно вытягивать нужные байты и делать вычисления, аналогично скетчам выше
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); //R,T #define TX 11 int mode; //variables int dotdelay = 1000; int timeout = 1000; int timeold; int messagelength = 1; int messagelength2 = 5; int messagelength3 = 6; int k=0; byte inbyte=0; byte MessageRx[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // массив байтов принимаемого сообщения byte message1[1] = {0x81}; byte message2[1] = {0x11}; byte message3[1] = {0xF1}; byte message4[1] = {0x81}; byte message5[1] = {0x04}; byte message6[6] = {0x82,0x11,0xF1,0x01,0x05,0x8A}; byte message7[5] = {0x81,0x11,0xF1,0x3E,0xC1}; void setup() { Serial.begin(115200); pinMode(TX, OUTPUT); } void loop() { fastinit(); sendrequest1(); delay(5); sendrequest2(); delay(5); sendrequest3(); delay(5); sendrequest4(); delay(5); sendrequest5(); delay(5); delay(50); Serial.println(""); recievedata(); } void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); // makes K-line high 3 delay(360); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message mySerial.begin(10400); // baud rate of the OBD Serial.println("starting serial comunication"); mode++; } } //----------------------------------------------------------- void sendrequest1() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message1[i]); Serial.print(message1[i],HEX); } } void sendrequest2() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message2[i]); Serial.print(message2[i],HEX); } } void sendrequest3() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message3[i]); Serial.print(message3[i],HEX); } } void sendrequest4() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message4[i]); Serial.print(message4[i],HEX); } } void sendrequest5() { for (int i = 0; ((i < messagelength) & (mode == 1)); i++) { mySerial.write(message5[i]); Serial.print(message5[i],HEX); } } //--------------------------------------------------------------------- void pids() { for (int i = 0; ((i < messagelength3 ) & (mode == 1)); i++) { mySerial.write(message6[i]); Serial.print(message6[i],HEX); } } void present() { for (int i = 0; ((i < messagelength2) & (mode == 1)); i++) { mySerial.write(message7[i]); Serial.print(message7[i],HEX); } } void recievedata() { present(); delay(55); Serial.println(""); int i = 0; int dataok = 0; Serial.println(" waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println(" TIMEOUT"); pids(); delay(55); Serial.println(""); recievedata(); return; } if (mySerial.available()) { delay(100); k=0; inbyte=0; int Temp = 0; while( mySerial.available() && k < 10) { inbyte = mySerial.read(); k++; if (k==1 )MessageRx[0] = inbyte; if (k==2 ) MessageRx[1] = inbyte; if (k==3 ) MessageRx[2] = inbyte; if (k==4 ) MessageRx[3] = inbyte; if (k==5 ) MessageRx[4] = inbyte; if (k==6 ) MessageRx[5] = inbyte; if (k==7 ) MessageRx[6] = inbyte; if (k==8 ) MessageRx[7] = inbyte; } Temp = MessageRx[5]-40; // распечатаем принятое сообщение, после того как в буфере сериала перестали появляться данные Serial.print (MessageRx[0], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[1], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[2], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[3], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[4], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[5], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[6], HEX) ; Serial.print (" ") ; Serial.println (MessageRx[7], HEX) ; Serial.print ("Температура: "); Serial.print (Temp); Serial.println ("*C"); } } }Это интересно. Спасибо, завтра попробую и отпишусь.
ещё чуть поправил, убрал циклы фор, где не нужно
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); //R,T #define TX 11 int mode; //variables int dotdelay = 1000; int timeout = 1000; int timeold; int messagelength2 = 5; int messagelength3 = 6; int k=0; byte inbyte=0; int Temp = 0; // температура byte MessageRx[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // массив байтов принимаемого сообщения byte message1 = 0x81; byte message2 = 0x11; byte message3 = 0xF1; byte message4 = 0x81; byte message5 = 0x04; byte message6[6] = {0x82,0x11,0xF1,0x01,0x05,0x8A}; byte message7[5] = {0x81,0x11,0xF1,0x3E,0xC1}; void setup() { Serial.begin(115200); pinMode(TX, OUTPUT); } void loop() { fastinit(); mySerial.write (message1); Serial.print(message1,HEX); delay(5); mySerial.write(message2); Serial.print(message2,HEX); delay(5); mySerial.write(message3); Serial.print(message3,HEX); delay(5); mySerial.write(message4); Serial.print(message4,HEX); delay(5); mySerial.write(message5); Serial.print(message5,HEX); delay(5); delay(50); Serial.println(""); recievedata(); } void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); // makes K-line high 3 delay(360); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message mySerial.begin(10400); // baud rate of the OBD Serial.println("starting serial comunication"); mode++; } } //--------------------------------------------------------------------- void pids() { for (int i = 0; ((i < messagelength3 ) & (mode == 1)); i++) { mySerial.write(message6[i]); Serial.print(message6[i],HEX); } } void present() { for (int i = 0; ((i < messagelength2) & (mode == 1)); i++) { mySerial.write(message7[i]); Serial.print(message7[i],HEX); } } void recievedata() { present(); delay(55); Serial.println(""); int i = 0; int dataok = 0; Serial.println(" waiting for data"); while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; Serial.println(" TIMEOUT"); pids(); delay(55); Serial.println(""); recievedata(); return; } if (mySerial.available()) { delay(100); k=0; inbyte=0; while( mySerial.available() && k < 10) { inbyte = mySerial.read(); k++; if (k==1 )MessageRx[0] = inbyte; if (k==2 ) MessageRx[1] = inbyte; if (k==3 ) MessageRx[2] = inbyte; if (k==4 ) MessageRx[3] = inbyte; if (k==5 ) MessageRx[4] = inbyte; if (k==6 ) MessageRx[5] = inbyte; if (k==7 ) MessageRx[6] = inbyte; if (k==8 ) MessageRx[7] = inbyte; } Temp = MessageRx[5]-40; // распечатаем принятое сообщение, после того как в буфере сериала перестали появляться данные Serial.print (MessageRx[0], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[1], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[2], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[3], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[4], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[5], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[6], HEX) ; Serial.print (" ") ; Serial.println (MessageRx[7], HEX) ; Serial.print ("Температура: "); Serial.print (Temp); Serial.println ("*C"); } } }Ок. Огромное спасибо. Не терпится уже попробовать. Первый раз кто то пытается мне помочь. Огромное человеческое спасибо. Завтра отпишусь. Блин, ты убрал весь мусор в котором я сомневался, респект и увпжуха тебе.
Привет. Продолжим. Еще раз огромное спасибо MaksVV за толчок в нужном направлении. Есть парочка проблем. Я подкоррективровал все, повыкидывал лишнее и т.д. проблемы: 1. при ините идет пересчет байта из ответа после инита ( естественно не коректная температура), потом начинает показывать корректно температуру крутя loop. Я попытался вывести чтение в отдельную функцию tempdata(); но оно все равно считывает при старте из ответа после инита. Нужно чтобы чтение косалось только ответа из температуры. Может нудно как то после каждого запроса очищать масив? Тем более в будущем то будет много других параметров. 2. В void temp() хотел убрать строчку Serial.print(message6[i],HEX); чтобы не выводило на экран отправленное сообщение, так как в будущем это все будет выводится на TFT LCD и мне нужна будет только цифра, но после этого удалелния перестает читатся температура. MaksVV как всегда надежда на тебя. вот переделанный скетч:
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); //R,T #define TX 11 int mode; int dotdelay = 1000; int timeout = 1000; int timeold; int messagelength2 = 5; int messagelength3 = 6; int k=0; byte inbyte=0; int Temp = 0; // температура //ПРИНИМАЕМЫЙ МАССИВ БАЙТОВ-------------------------------------------------------- byte MessageRx[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //MESSAGES SEND--------------------------------------------------------------------- byte message1 = 0x81; byte message2 = 0x11; byte message3 = 0xF1; byte message4 = 0x81; byte message5 = 0x04; byte message6[6] = {0x82,0x11,0xF1,0x01,0x05,0x8A}; byte message7[5] = {0x81,0x11,0xF1,0x3E,0xC1}; //SETUP----------------------------------------------------------- void setup() { Serial.begin(115200); pinMode(TX, OUTPUT); fastinit(); } //LOOP------------------------------------------------------------ void loop() { temp(); delay(55); tempdata(); } //FAST INIT 5boud-------------------------------------------------- void fastinit(){ if (!mode) { Serial.println("starting comunication (fastinit)"); digitalWrite (TX, HIGH); // makes K-line high 3 delay(360); // wait for K-line to be clear 3 digitalWrite (TX, LOW); // makes K-line low 3 delay(25); digitalWrite (TX, HIGH); // makes K-line high 3 delay(25); //last delay before first message mySerial.begin(10400); // baud rate of the OBD Serial.println("starting serial comunication"); mode++; } mySerial.write (message1); delay(5); mySerial.write(message2); delay(5); mySerial.write(message3); delay(5); mySerial.write(message4); delay(5); mySerial.write(message5);; delay(55); Serial.println("FAST INIT OK"); recievedata(); } //MENSSAGES----------------------------------------------------------- void temp() { for (int i = 0; ((i < messagelength3 ) & (mode == 1)); i++) { mySerial.write(message6[i]); Serial.print(message6[i],HEX); } } void present() { for (int i = 0; ((i < messagelength2) & (mode == 1)); i++) { mySerial.write(message7[i]); Serial.print(message7[i],HEX); } } //RECIEVE DATA------------------------------------------------------ void recievedata() { int i = 0; int dataok = 0; while (!dataok) { int time = millis(); if ((timeold + timeout) < time) { timeold = time; present(); delay(55); return; } } } //RECIEVE TEMPERATURE--------------------------------------------- void tempdata(){ if (mySerial.available()) { delay(100); k=0; inbyte=0; while( mySerial.available() && k < 10) { inbyte = mySerial.read(); k++; if (k==6 ) MessageRx[5] = inbyte; } Temp = MessageRx[5]-40; Serial.print (Temp); Serial.println ("*C"); } }а у тебя после инита в ответе только байт с температурой отличается? просто можно делать проверку по другим байтам при расчете температуры. Напиши ответ ЭБУ после инита и который приходит в loope .
дак толку то , у тебя выводиться в сериал только то, что ты отправляешь. Зря убрал запись всех байтов в массив и вывод в сериал всего сообщения от эбу.
типа так
while( mySerial.available() && k < 10) { inbyte = mySerial.read(); k++; if (k==1 )MessageRx[0] = inbyte; if (k==2 ) MessageRx[1] = inbyte; if (k==3 ) MessageRx[2] = inbyte; if (k==4 ) MessageRx[3] = inbyte; if (k==5 ) MessageRx[4] = inbyte; if (k==6 ) MessageRx[5] = inbyte; } Temp = MessageRx[5]-40; // распечатаем принятое сообщение, после того как в буфере сериала перестали появляться данные Serial.print (MessageRx[0], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[1], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[2], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[3], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[4], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[5], HEX) ; Serial.print (" ") ; Serial.print (MessageRx[6], HEX) ; Serial.print (" ") ; Serial.println (MessageRx[7], HEX) ; Serial.print ("Температура: "); Serial.print (Temp); Serial.println ("*C");и в строках 72 и 78 вместо print сделай println
можт и в этом проблема. но я буду выводить на TFT LCD и хотел все убрать, но только что подумал , пусть оно себе в сериал в воздух выводит а я на экран выведу только то что мне нужно типа myGLCD.printNumI(Temp, 410, 40); , я прав?