Добрый день, прошу помочь разобраться в проблеме. Две платы Ардуино на расстоянии 15 метров. Одна опрашивает датчики, другая выводит данные на экран. При передаче данных (переменных или целых чисел) от одной платы Ардуино к другой по последовательному порту через MAX485, данные обрезаются до величины 255. Переменные объявлял int. Что я делаю неверно? СО СТОРОНЫ АРДУИНО С ДИСПЛЕЕМ void loop(){ if (time.seconds != atoi (time.gettime("s"))) { digitalWrite(PIN_direction_TX_RX, HIGH); // переводим модуль в режим передачи данных delay(1); Serial.write(4); // отправляем число для распознавания delay(1); digitalWrite(PIN_direction_TX_RX, LOW); // переводим модуль в режим приёма данных delay(5); if(Serial.available()>0){ resultat = Serial.read() } и далее resultat идёт в нужную точку дисплея. СО СТОРОНЫ АРДУИНО С ДАТЧИКАМИ void loop(){ if(Serial.available()>0){ zapros = Serial.read(); delay(1); if(zapros==4) { uroven = analogRead(2); digitalWrite(PIN_direction_TX_RX, HIGH); // переводим модуль в режим передачи данных delay(1); Serial.write(uroven); delay(1); digitalWrite(PIN_direction_TX_RX, LOW); // переводим модуль в режим приёма данных delay(1); } } }
Разобрался сам. read() - считывание и удаление из буфера одного байта. Соответственно требуется разбиение больших чисел на "байтовые" числа - передача - склеивание. Прошу модераторов убрать мою тему.