RS485 и Arduino nano + uno

SVD
Offline
Зарегистрирован: 05.04.2018

Доброго времени суток. Пытаюсь разобраться с RS485 на простом примере. Почему-то не получается, подскажите пожалуйста, где и что я сделал не так?Скетч для нано:

[code]
#include <SoftwareSerial.h>

SoftwareSerial RS485 (0, 1);

#define DIR 10

void setup(){
  Serial.begin (9600);
  RS485.begin (4800);

  pinMode (DIR, OUTPUT);
  digitalWrite (DIR, LOW);
}

void loop(){
  digitalWrite(DIR, HIGH);
  RS485.println(millis());
  digitalWrite(DIR, LOW);
  delay (1000);
  }

[/code]

Скетч для Уно:

[code]
#include <SoftwareSerial.h>

SoftwareSerial RS485 (7, 6);

#define DIR 13

void setup(){
  Serial.begin (9600);
  RS485.begin (4800);

  pinMode (DIR, OUTPUT);
  digitalWrite (DIR, LOW);
}

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

[/code]

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Прежде всего потому, что у Вас на нано и программный и аппаратный порты сидят на одних и тех же ногах.

SVD
Offline
Зарегистрирован: 05.04.2018

Поменя ногу на Нано, теперь Уно начала принимать сигнал, но не корректный, не миллисекунды как нужно, а букву «я» =)) каждую итерацию приема данных…



Поменял скетч еще на Нано:

[code]
#define DIR 8

void setup(){
  Serial.begin (4800);
  pinMode (DIR, OUTPUT);
  digitalWrite (DIR, LOW);
}

void loop(){
  digitalWrite(DIR, HIGH);
  Serial.println(millis());
  digitalWrite(DIR, LOW);
  delay (1000);
  }
[/code]

 

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

GND соедини.