RS485 и Arduino nano + uno
- Войдите на сайт для отправки комментариев
Вс, 10/06/2018 - 17:46
Доброго времени суток. Пытаюсь разобраться с 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]
Прежде всего потому, что у Вас на нано и программный и аппаратный порты сидят на одних и тех же ногах.
Поменя ногу на Нано, теперь Уно начала принимать сигнал, но не корректный, не миллисекунды как нужно, а букву «я» =)) каждую итерацию приема данных…
Поменял скетч еще на Нано:
[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]GND соедини.