Arduino UNO и датчик уровня топлива передающий уровень по RS-485/

masaev92
Offline
Зарегистрирован: 18.03.2019

Добрый времени суток всем всем!

Не судите строго - я новичек!

На руках имеется плата Arduino UNO, MAX485, Цифравой индикатор ардуино и датчик уровня топлива LLS передающий уровень по RS-485.

Хочу собрать все это в одно целое, и получить готовый экран который будет отображать сконвентированный уровень топлива.

Перед тем как написать на форум гуглил и натыкался только на соединение двух ардуинок между собой по рс485, близкое к моей задумке я нечего не нашел.

Люди подскажите возможно ли это? какие библиотеки необходимо загрузить и как по средствам самой программы увидеть в мониторе порта показания с датчика?

 

masaev92
Offline
Зарегистрирован: 18.03.2019

Arduino должна работать только в режиме приема! 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну... что вы там находили? Фраза "Software Serial" вызывает какие-то ассоциации?

masaev92
Offline
Зарегистрирован: 18.03.2019

Вызывает чувство тревоги, и чувство собственной беспомощности! Я Новичек - и этим не горжусь!

sadman41
Offline
Зарегистрирован: 19.10.2016

Если бы гуглили, то запомнили бы эту фразу. Если не гуглили, то начинайте: "Arduino RS485 Software Serial"

masaev92
Offline
Зарегистрирован: 18.03.2019

Спасибо за наводку - буду изучать подробнее.

masaev92
Offline
Зарегистрирован: 18.03.2019

Загрузил в ардуино вот такой скейч подключил все по схеме и в мониторе порта не одного значения не одной буквы

 
#define SerialTxControl 9   //RS485 управляющий контакт на arduino pin 9

#define RS485Transmit    HIGH

#define RS485Receive     LOW



#include <SoftwareSerial.h>

SoftwareSerial RS_485(10, 11); // RX, TX



byte totalEnergy[8] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0xC4, 0x0B};

//byte currentFrequency[8] = {0x01, 0x03, 0x00, 0x11, 0x00, 0x01, 0xC4, 0x0B};


void setup(void) {

  Serial.begin(19200);

  RS_485.begin(19200);

  pinMode(SerialTxControl, OUTPUT);

  digitalWrite(SerialTxControl, RS485Receive);

}



void loop(void) {

  digitalWrite(SerialTxControl, RS485Transmit );

  RS_485.write(totalEnergy, sizeof(totalEnergy));

  delay(100);

  digitalWrite(SerialTxControl, RS485Receive);

  delay(500);

    if(Serial.available() > 0){

      Serial.print(Serial.read(), HEX);

      Serial.print(" ");

    }

}

 

 

masaev92
Offline
Зарегистрирован: 18.03.2019

Датчик подключен питание поданно скорость обмена данными датчика 19200

Ну хоть какоето значение в мониторе он же должен отобразить

sadman41
Offline
Зарегистрирован: 19.10.2016
masaev92
Offline
Зарегистрирован: 18.03.2019

Схема подключения такова

sadman41
Offline
Зарегистрирован: 19.10.2016

Смотрите скетч, строки #11, #01. И не занимайте на ардуине D0/D1, в противном случае в мониоре порта ничего не увидите.

masaev92
Offline
Зарегистрирован: 18.03.2019

Удалил и 1 и 11 строку - из платы вынул тх1 и rx0 

 

masaev92
Offline
Зарегистрирован: 18.03.2019

Как можно с вами связаться, готов оплатить вам за консультацию!???

sadman41
Offline
Зарегистрирован: 19.10.2016

wrk.sadman@gmail.com , если деньги жгут карман.