конвертер скоростей на ардуино для k-line bluetooth адаптера

Александр597
Offline
Зарегистрирован: 30.01.2016

Сделал конвертер на ардуино. т.е. использую на ардуино два serial порта. к одному подключаю блютуз модуль, к другому переходник usb-uart на ftdi. в терминалах обмен происходит. подключаю вместо переходника k-line адаптер, программа дианостики автомобиля его не видет. k-line адаптер работает на скорости 10400. пробовал вместо программы диагностики включать терминал. какие то данные приходят при включении зажигания.почему программа не видет адаптер?

#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(10, 11); // RX, TX
 
void setup()  
{
  // Инициализируем последовательный интерфейс и ждем открытия порта:
  Serial.begin(9600);
  while (!Serial) 
 
 
  Serial.println("Goodnight moon!");
 
  // устанавливаем скорость передачи данных для последовательного порта, созданного 
  // библиотекой SoftwareSerial
  mySerial.begin(10400);
}
 
void loop() // выполняется циклически
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

 

Александр597
Offline
Зарегистрирован: 30.01.2016

и в библиотеке SoftwareSerial в файле SoftwareSerial.cpp добавлял в трех местах строчки для нестандартной скорости: { 10400,    106,       218,       218,      215,   },

Александр597
Offline
Зарегистрирован: 30.01.2016

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

#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(10, 11); // RX, TX
 
void setup()  
{
  // Инициализируем последовательный интерфейс и ждем открытия порта:
  Serial.begin(10400);
  while (!Serial) 
 
 
  Serial.println("Goodnight moon!");
 
  // устанавливаем скорость передачи данных для последовательного порта, созданного 
  // библиотекой SoftwareSerial
  mySerial.begin(9600);
}
 
void loop() // выполняется циклически
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

 

Buzoff
Offline
Зарегистрирован: 03.04.2018

Здравствуйте.
Получилось решить проблему?