@gmg

Не работает MAX485 на arduino mega2560?

Добрый день.
Сделал сеть при помощи 3 ардуин. Мастер(mega) и два слейва(nano). Так вот от слейва отправляю на мастер данные, но не чего не приходит.
Меняю mega на uno и в точности тот-же скетч работает.

Скетч мастера
#include <SoftwareSerial.h>
#include <ArduinoJson.h>

byte DERE = 8; // DE RE

SoftwareSerial RS485 = SoftwareSerial(7, 6); // pin 7 - RO, pin 6 - DI

void setup() {
      Serial.begin(9600);
      RS485.begin(4800);
      pinMode(DERE, OUTPUT);
}

void loop() {
      if (RS485.available()) {
         Serial.println(RS485.read());
      }
}


Вообще не какая информация не приходит. Хотя я уверен что она отправлена.
В чем может быть косяк?
Спасибо.
  • Вопрос задан
  • 672 просмотра
Пригласить эксперта
Ответы на вопрос 2
@asuv
Недостаточно информации в вопросе, но как возможный вариант проблемы следующий: насколько понимаю сеть RS485 на MAX485 для 3-ех Ардуин Мега не работает...вполне возможно питание этих Ардуин исходит из одного источника питания...попробуйте использовать индивидуальный источник питания(я про преобразователь 220В в 5В) для каждого Ардуино...у меня это явилось причиной неработы...
Ответ написан
Комментировать
@MrJet123
Среди известных ограничений библиотеки SoftwareSerial можно перечислить следующие:

При использовании нескольких последовательных портов, в каждый момент времени только один из них может получать данные одновременно
На платах Arduino Mega и Mega2560 некоторые выводы не поддерживают прерывания, возникающие при изменении уровня сигнала. В силу этого, на данных платах в качестве вывода RX могут использоваться только следующие выводы: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
Использовал те же пины что и вы, с ними не работает) Подключил 10, 11 и все завелось.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы