RS232 arduino выдает цифры!

avolon
Offline
Зарегистрирован: 31.01.2017

Привет всем Есть регистратор у него есть выход 232 так вот если подключаю его к компу по COM чистому без преобразователей то все вижу как грузится и выполняет команды которые с консоле даю! Подключаю к ардуино с таким скетчем

#include <SoftwareSerial.h>

SoftwareSerial softSerial(8, 9); // RX, TX>

void setup(){

Serial.begin(115200); 

softSerial.begin(115200); 

}

void loop(){

    if (softSerial.available()){

               Serial.print(softSerial.read());

        }


}

ТО в мониторе получаю кучуу цифр и все ((

вопрос как их скрестить (

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а зачем софтовый использовать, коли есть хардовый?

avolon
Offline
Зарегистрирован: 31.01.2017

ММ просветите тогда как всетаки скрестить не софтово??

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

так откуда я знаю, что вы с ардуины хотите, давать команды через монитор порта - она лишний элемент вообще, а хардовый на пинах RX и  TX к ним и подключите )))

Araris
Offline
Зарегистрирован: 09.11.2012

Также есть мнение, что SoftwareSerial не работает нормально на высоких скоростях обмена, кто-то называет максимум 57600, а кто-то и 19200.

См. https://www.google.com.ua/?gws_rd=ssl#q=arduino+softwareserial+maximum+baud+rate

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А уровни преобразовываете?

avolon
Offline
Зарегистрирован: 31.01.2017

Привет!

Если подключаю к компьютеру по COM порту без преобразователя на скорости 115200 то вижу загрузку устройства!!

Как мне у видить все тоже самое тока на ардуино?

Для проверки делаю скетч

#define led 13
String input_string = "";
const String Led_off = "switch led off";
const String Led_on = "switch led on";
bool led_running;

void setup() {
  Serial.begin(115200);
  pinMode(led, OUTPUT);
}

void loop() {
  while (Serial.available() > 0) {
    char c = Serial.read();
    if (c == '\n') { 
      Serial.print("Input_string is: ");
      Serial.println(input_string);
      switch ( parse(input_string, Led_off, Led_on) ) {
        case 10:
          led_running=false;
          Serial.println("Switching off is done");
          break;
        case 11:
          led_running=true;
          Serial.println("Switching on is done");
          break;
        case 0:
          Serial.println("invalid String");
          break;
      }
      input_string = "";
      digitalWrite(led, led_running);
    } else {
      input_string += c;

    }
  }
}

byte parse(String input_string, const String Led_off, const String Led_on) {
  if (input_string.equals(Led_off) == true) {
    return 10;
  }
  else if (input_string.equals(Led_on) == true) {
    return 11;
  }
  else return 0;
}

Но в итоге получаю постоянно

Switching off is done
Input_string is: Ik}
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А если второй раз спросить: "уровни преобразовываете?"

avolon
Offline
Зарегистрирован: 31.01.2017

ЕвгенийП пишет:

А если второй раз спросить: "уровни преобразовываете?"

Походу нет (

Просто между Регистратором и ардуиной нет нечего !!

С регистратора 3 контакта rx tx и gnd

Я так понимаю нужен какойто преобразователь ????

Я просто думал если компьютер по com(не преобразователь с usb на com) видет все ,то и arduino тоже увидет!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, да. У компьютера там на контактах 12В, а у Ардуино - 5, а так ничего, увидит. Кстати, ардуина могла уже и сдохнуть от такого издевательства.

В правом верхнем углу есть окно поиска. Забиваем там "RS232 преобразование уровней" и смотрим как это делается. Тем по этому вопросу было много.

avolon
Offline
Зарегистрирован: 31.01.2017

Тоесть вы хотите сказать что мой регистратор тоже 12в дает?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Или ожидает. И не только +12, а ещё и -12

Там дело не только в 12В, там вообще принцип другой.

В ардуине логический ноль - от 0 до 0,7В, а единица (при пятивольтовом питании) от 3,5 до 5 вольт.

А в RS232  логический ноль от +3 до +12 вольт, а единица от -3В до -12В, соответственно. 

Вот и смотрите, как им понимать друг друга. Где смотреть, я уже сказал.

avolon
Offline
Зарегистрирован: 31.01.2017
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не знаю, я же Вам сказал где смотреть. Там люди пробовали разное и описывали, что у них получилось.

avolon
Offline
Зарегистрирован: 31.01.2017

спасибо буду думать!