Alexandr597 Опубликовано 30 января, 2016 Поделиться Опубликовано 30 января, 2016 (изменено) Сделал конвертер на ардуино. т.е. использую на ардуино два serial порта. к одному подключаю блютуз модуль, к другому переходник usb-uart на ftdi. в библиотеке SoftwareSerial в файле SoftwareSerial.cpp добавлял в трех местах строчки для нестандартной скорости: { 10400, 106, 218, 218, 215, }, В терминалах обмен происходит. подключаю вместо переходника k-line адаптер, программа дианостики автомобиля его не видет. k-line адаптер работает на скорости 10400. пробовал вместо программы диагностики включать терминал. какие то данные приходят при включении зажигания.почему программа не видет адаптер? Пробовал вместо блютуза использовать ардуино как usb-uart переходник, все работает. #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()); } Изменено 31 января, 2016 пользователем Alexandr597 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 30 января, 2016 Поделиться Опубликовано 30 января, 2016 А зачем нужен переходник ? Тем более, на такой громадине. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Alexandr597 Опубликовано 30 января, 2016 Автор Поделиться Опубликовано 30 января, 2016 А зачем нужен переходник ? Тем более, на такой громадине. Просто есть интерес сделать. А так если и применить его то с минимальными деталями к МК. Будет компактно и удобно. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Alex Опубликовано 30 января, 2016 Поделиться Опубликовано 30 января, 2016 Ну тогда осциллограф в руки и вперёд... Встаём на RX и TX и смотрим что там не так. Ибо угадать, из-за чего там что-то не работает, очень будет трудно. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 30 января, 2016 Автор Поделиться Опубликовано 30 января, 2016 Ну тогда осциллограф в руки и вперёд... Встаём на RX и TX и смотрим что там не так. Ибо угадать, из-за чего там что-то не работает, очень будет трудно. Может влияет скорость указанная в программе? Порт по блютуз открывается 9600, а в программе выбор только 10400 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 30 января, 2016 Поделиться Опубликовано 30 января, 2016 И ещё, не понятно, причём тут USB-UART переходник. На схеме он не нарисован. Из Вашего поста, не понятно, что и к чему Вы подключаете через переходник. Может влияет скорость указанная в программе? Влиять может только из-за разности скоростей. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 30 января, 2016 Автор Поделиться Опубликовано 30 января, 2016 И ещё, не понятно, причём тут USB-UART переходник. На схеме он не нарисован. Из Вашего поста, не понятно, что и к чему Вы подключаете через переходник. Может влияет скорость указанная в программе? Влиять может только из-за разности скоростей. usb-uart переходник использовал вместо схемы k-line адаптера на L9637D, чтобы убедиться что скетч работает. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 30 января, 2016 Поделиться Опубликовано 30 января, 2016 Ваш скетч будет работать только при передаче одного байта. Он даже передачу 2-ух байт подряд не обслужит. Нужно делать буфер. Причём его величина должна быть максимально-возможной. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 30 января, 2016 Автор Поделиться Опубликовано 30 января, 2016 Искал подобные скетчи для обмена данными через два uart ардуино, но ничего подходящего не нашел, а сам писать скетчи не умею. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 31 января, 2016 Автор Поделиться Опубликовано 31 января, 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()); } Изменено 31 января, 2016 пользователем Alexandr597 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 31 января, 2016 Поделиться Опубликовано 31 января, 2016 Не понял, что поменяли местами ? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 31 января, 2016 Автор Поделиться Опубликовано 31 января, 2016 Не понял, что поменяли местами ? Подключения к лайн адаптера и блютуз модуля к ардуино. По схемам видно. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 31 января, 2016 Поделиться Опубликовано 31 января, 2016 Ну этим Вы ничего и не решите. В одну сторону данные будут идти нормально, в другую - нет. Что делать - я уже говорил выше. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 31 января, 2016 Автор Поделиться Опубликовано 31 января, 2016 (изменено) Ну этим Вы ничего и не решите. В одну сторону данные будут идти нормально, в другую - нет. Что делать - я уже говорил выше. Как сделать максимально возможный буфер? В файле HardwareSerial.cpp изменить значение? Изменено 31 января, 2016 пользователем Alexandr597 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 31 января, 2016 Поделиться Опубликовано 31 января, 2016 Буфер - это массив данных, в который данные записываются при приёме и отправляются из него при передаче. Ну а как сделать - зависит от программиста. Главное - это понять принцип и что делается у вас с данными. Почитайте про кольцевой буфер. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 5 февраля, 2016 Автор Поделиться Опубликовано 5 февраля, 2016 Вопрос решен. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 5 февраля, 2016 Поделиться Опубликовано 5 февраля, 2016 Мы рады за Вас. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Pentium_dnk Опубликовано 2 января, 2018 Поделиться Опубликовано 2 января, 2018 Alexandr597, как решили вопрос?хочу сделать k-line адаптер по блютузу, но без мк не получится 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 4 января, 2018 Автор Поделиться Опубликовано 4 января, 2018 В 03.01.2018 в 03:56, Pentium_dnk сказал: Alexandr597, как решили вопрос?хочу сделать k-line адаптер по блютузу, но без мк не получится #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX char s; char incByte; // входящие данные int iLED = 13; // LED подключен к 13 пину void setup() { Serial.begin(10400); //Скорость портов mySerial.begin(9600); // —----||----- pinMode(iLED, OUTPUT); Serial.print("START:"); } void loop() { digitalWrite(iLED, LOW); /* \*********************Устройство - комп*********************************/ if (mySerial.available() > 0) // прием данных от устройства { delay(5); // задержка перед выводом сообщений на комп while (mySerial.available()) { char s = mySerial.read(); Serial.write(s); // WRITE! вывод на комп } } else { digitalWrite(iLED, HIGH); } /***********************Обратная связь: Комп - устройство********************/ if (Serial.available()) { // ввод данных с компа char incByte = Serial.read(); mySerial.print(incByte); // передача на устройство } } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Pentium_dnk Опубликовано 17 января, 2018 Поделиться Опубликовано 17 января, 2018 Кстати, забыл спросить а библиотеку править надо? если да то в каких местах? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexandr597 Опубликовано 21 января, 2018 Автор Поделиться Опубликовано 21 января, 2018 я уже не помню вообще нужно править или нет 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Александр Опубликовано 21 августа, 2018 Поделиться Опубликовано 21 августа, 2018 здравствуйте. подскажите, пожалуйста, а почему в одну сторону мы ждем пока передаются данный, а в другую - нет? я про это кусок кода: if (mySerial.available() > 0) // прием данных от устройства { delay(5); // задержка перед выводом сообщений на комп while (mySerial.available()) { 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Александр Опубликовано 5 сентября, 2018 Поделиться Опубликовано 5 сентября, 2018 В 21.01.2018 в 18:14, Alexandr597 сказал: я уже не помню вообще нужно править или нет вроде для аппаратного менять ничего не нужно. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.