RS 232 и весы масса-к

Levkrss
Offline
Зарегистрирован: 14.03.2019

Товарищи выручайте! Хочу подключить arduino uno к весам масса-к по RS232 (выход на весах имеется). Но так как этим занимаюсь первый раз, ничего конкретного не получатся. В документах есть команды для их протокола. Подскажите что и как ?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

А как подключаете и что именно не получается?

nik182
Offline
Зарегистрирован: 04.05.2015

Нужен переходник rc232-ttl. Если использовать одновременно с программированием через USB от компьютера, то посадить на любые ноги, начиная с D3  и далее, переходник и использовать библиотеку softserial. 

Levkrss
Offline
Зарегистрирован: 14.03.2019

Подключаю RxD - TxD и соответсвенно TxD - RxD к пинам на arduino uno, также беру GND. Заливаю скетч для тестового считывания бита из сериал char incomingbyte;

 
void setup()
{
Serial.begin(9600);
}
 
void loop()
{
delay(1000);
Serial.println("0x45 - - - - -");
while (Serial.available() > 0) // если порт доступен
{
incomingbyte = Serial.read(); // считываем с порта данные
Serial.println(incomingbyte); //
}
}
 
И ничего. 
nik182
Offline
Зарегистрирован: 04.05.2015

Вставляйте скечи как положено по правилам форума.

Переходник используете? Из loop надо удалить delay.

Что и где вы хотите увидеть используя это код? 

Levkrss
Offline
Зарегистрирован: 14.03.2019

Только купил переходник max3232. Там пренципиально на какие ноги приходит Rx и Tx от весов? Или в даташите смотреть надо куда подключть через переходник ? В библиотеке SoftSerial я так понимаю Rx и Tx переназначить, я вас правильно понял ?

 

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Да, если в весах "честный" RS-232 то нужен согласователь уровней для подключения к ардуине.

nik182
Offline
Зарегистрирован: 04.05.2015

Да.

 

Levkrss
Offline
Зарегистрирован: 14.03.2019

Спасибо. Попробую сейчас, если подключать черех согласователь, принципиально на каком пине от весов приходит Rx и Tx от весов ?

nik182
Offline
Зарегистрирован: 04.05.2015

Как назначите при инициализации софтсериала так и подключайте. Соответственно вывод на комп через USB. В примерах среды есть программа передачи через софт сериал на компутер в терминальное расширение. Можно начать с него и тогда команды весам можно подавать с компа и видеть что получается. Только не забыть выставить в правом нижнем углу терминала как правильно реагировать на Enter при отправке команды в весы. Перед втыканием в весы очень рекомендую на разъёме rs232 закоротить 2 и 3 ноги и проверить программу. В терминале должно отражаться то что вы посылаете. Если не будет ответа то втыкать в весы рано. Надо искать, что не так. 

Levkrss
Offline
Зарегистрирован: 14.03.2019

А номер пина на который приходит Rx и Tx на DB9 max3232 сам понимает куда приходит ?

nik182
Offline
Зарегистрирован: 04.05.2015

Да

Levkrss
Offline
Зарегистрирован: 14.03.2019

Проделал все выше написаное и никакой реакции. В весы пока не вставлял, закоротил ноги и ничего ((

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

С софтсериалом закорачивание не прокатывает.

Levkrss
Offline
Зарегистрирован: 14.03.2019

Ну я так понимаю что проверить до поключения не получится ?

 

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

Если замените ATMega328-й на другой МК со вторым аппаратным UART - получится. А с софтсериалом на 328-м - нет. Во всяком случае - до недавнего времени всё было именно так. Может в госдуме уже приняли закон, по которому 328-е должны работать не так, как задумано производителем, а так, как удобно потребителю.

Levkrss
Offline
Зарегистрирован: 14.03.2019

Подключил через max3232, в итоге только при подключении разьема в ДБ9 получаю  FFFFFFF и так далее

 

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

Если всё было так просто - соединил и пользуйся, то не нужны были бы всякие осциллографы, лог. анализаторы и пр. инструменты.