Соединение по MAX485 не работает

Тема в разделе "Arduino & Shields", создана пользователем Logger, 12 мар 2018.

  1. Logger

    Logger Нуб

    Добрый день, прошу помочь разобраться в проблеме.

    Две платы Ардуино на расстоянии 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);
    }
    }
    }
     
  2. Logger

    Logger Нуб

    Разобрался сам.
    read() - считывание и удаление из буфера одного байта.
    Соответственно требуется разбиение больших чисел на "байтовые" числа - передача - склеивание.
    Прошу модераторов убрать мою тему.
     
    arkadyf нравится это.