MCP2515 CAN Bus Модуль

Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

Помогите по выводу информации

Сообщение ElectroMechaniC »

[ref=#ff8000]Sancho[/ref], ГОДИТСЯ!

Отправлено спустя 28 секунд:
Спасибо! Пинцип понял
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

MCP2515 CAN Bus Модуль

Сообщение diman27 »

Привет всем. Может кто нибудь показать, на примере, как производить чтение шины. Например мне надо прочитать вот эти данные: HV Battery Temp 1,"HV Batt T1","21CF","(256 * 9 / 500) * K + (9 / 500) * L - 557.824","-558","622","F","7E3" Это из pid для торка.
autoelectronica
Сержант
Сообщения: 118
Зарегистрирован: 18 окт 2016, 21:46
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 2 раза

MCP2515 CAN Bus Модуль

Сообщение autoelectronica »

Вопрос вот какой, мы получаем информацию с блока в формате hex ? А в каком формате должны записать в блоке сравнения ? Ну например адрес 130, id0-f0, id1-ff.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

MCP2515 CAN Bus Модуль

Сообщение Sancho »

autoelectronica писал(а): 06 окт 2018, 23:26 мы получаем информацию с блока в формате hex ? А в каком формате должны записать в блоке сравнения ?
Все, абсолютно все данные, хранятся в виде нулей и единиц. Как мы их интерпретируем - наше желание. Можем сказать, что это чар, байт, и т.д. Поэтому, при сравнении должны соблюсти только размерность и привести к равнозначному типу- чтобы у компилятора крыша не поехала, сравнивая "ты чего" и 543. Поэтому, положив данные вида hex 0хСА в байтовые ячейки сравнивайте с 0-255, 0хСА7А с 0-65535( -32768 - 32767) и т.д. Будут сравниваться биты данных( 0,1) - вуаля.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
autoelectronica
Сержант
Сообщения: 118
Зарегистрирован: 18 окт 2016, 21:46
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 2 раза

MCP2515 CAN Bus Модуль

Сообщение autoelectronica »

Александр, спасибо за быстрый ответ. Вы не могли бы показать на примере в прикрепленном файле с адресом 130, id0-f0, id1-ff.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

MCP2515 CAN Bus Модуль

Сообщение Sancho »

[ref]autoelectronica[/ref], Берёшь каркулятор Win - включаешь режим "программист"( сверху - "Вид"), нажимаешь Нех, вводишь ожидаемое значение, нажимаешь Dec - получаешь его десятичное значение, вводишь в программе типом байт на блоке сравнения.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
autoelectronica
Сержант
Сообщения: 118
Зарегистрирован: 18 окт 2016, 21:46
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 2 раза

MCP2515 CAN Bus Модуль

Сообщение autoelectronica »

Sancho, еще раз спасибо за помощь .

Отправлено спустя 31 минуту 42 секунды:
А что делать если адрес 130 при переводе в Dec превышает предел 255 ?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

MCP2515 CAN Bus Модуль

Сообщение Sancho »

[ref]autoelectronica[/ref], Адреса идут изначально в integer (dec) :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
autoelectronica
Сержант
Сообщения: 118
Зарегистрирован: 18 окт 2016, 21:46
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 2 раза

MCP2515 CAN Bus Модуль

Сообщение autoelectronica »

Аааааа :shok:
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

MCP2515 CAN Bus Модуль

Сообщение Turb0user »

autoelectronica писал(а): 06 окт 2018, 23:26 Вопрос вот какой, мы получаем информацию с блока в формате hex ? А в каком формате должны записать в блоке сравнения ? Ну например адрес 130, id0-f0, id1-ff.
Здравствуйте
autoelectronica а что это за блок такой интересный (можно выбрать кварц-круто) не редактируется, не добавляется в библиотеку?
Что такое выход New Data?
Что такое выход Size?

УПС сорри. это стандартный блок
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

MCP2515 CAN Bus Модуль

Сообщение Turb0user »

Привет Sancho.
Помоги пожалуйста сделать блок для самодельного CanHackre адаптера. для того что бы к нему можно было подключить блюус модуль или WIFI. Проблема в том что если подключить HC-05 на прямую к TX RX ардуино то устройство не работает. Думаю потому что надо подкючать не железному Serial а к Softsrial. Сам к коде слабо разбираюсь, пробовал в FlProg сделать програмный ком порт и вставить код в оригинального скетча, но не заработало. В оригинале же работает отлично связка Arduino Uno и шилд МСР-2515.
Вот оригинал кода CanHackre адаптера.

Код: Выделить всё

#include <can.h>
#include <mcp2515.h>

#include <CanHacker.h>
#include <CanHackerLineReader.h>
#include <lib.h>

#include <SPI.h>
#include <SoftwareSerial.h>

const int SPI_CS_PIN = 10;
const int INT_PIN = 2;

const int SS_RX_PIN = 3;
const int SS_TX_PIN = 4;

CanHackerLineReader *lineReader = NULL;
CanHacker *canHacker = NULL;

SoftwareSerial softwareSerial(SS_RX_PIN, SS_TX_PIN);

void setup() {
    Serial.begin(115200);
    while (!Serial);
    SPI.begin();
    softwareSerial.begin(115200);

    Stream *interfaceStream = &Serial;
    Stream *debugStream = &softwareSerial;
    
    
    canHacker = new CanHacker(interfaceStream, debugStream, SPI_CS_PIN);
    //canHacker->enableLoopback(); // uncomment this for loopback
    lineReader = new CanHackerLineReader(canHacker);
    
    pinMode(INT_PIN, INPUT);
}

void loop() {
    CanHacker::ERROR error;
  
    if (digitalRead(INT_PIN) == LOW) {
        error = canHacker->processInterrupt();
        handleError(error);
    }

    error = lineReader->process();
    handleError(error);
}

void handleError(const CanHacker::ERROR error) {

    switch (error) {
        case CanHacker::ERROR_OK:
        case CanHacker::ERROR_UNKNOWN_COMMAND:
        case CanHacker::ERROR_NOT_CONNECTED:
        case CanHacker::ERROR_MCP2515_ERRIF:
        case CanHacker::ERROR_INVALID_COMMAND:
            return;

        default:
            break;
    }
  
    softwareSerial.print("Failure (code ");
    softwareSerial.print((int)error);
    softwareSerial.println(")");

    digitalWrite(SPI_CS_PIN, HIGH);
    pinMode(LED_BUILTIN, OUTPUT);
  
    while (1) {
        int c = (int)error;
        for (int i=0; i<c; i++) {
            digitalWrite(LED_BUILTIN, HIGH);
            delay(500);
            digitalWrite(LED_BUILTIN, LOW);
            delay(500);
        }
        
        delay(2000);
    } ;
}
Надеюсь для знающего человека это не составит труда
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

MCP2515 CAN Bus Модуль

Сообщение Sancho »

Turb0user писал(а): 02 фев 2019, 11:36В оригинале же работает отлично связка Arduino Uno и шилд МСР-2515.
Turb0user писал(а): 02 фев 2019, 11:36 Stream *interfaceStream = &Serial;
Stream *debugStream = &softwareSerial;
Как я понимаю, Вы смотрите в мониторе порта Serial?
Значится данные туда поступают.
Подключите блютуз, в мониторе порта выберите вход с блютуз-модуля компа - должно тоже присутствовать.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

MCP2515 CAN Bus Модуль

Сообщение Turb0user »

Я видимо не точно выразился. При подключении ВТ к TX RX (pin 1,0) плата не стартует и не соединяется с CAN машины. Программа CanHacher пишет что интерфейс не доступен, после отключения ВТ все работает.
hard3d
Рядовой
Сообщения: 6
Зарегистрирован: 29 янв 2018, 00:11
Имя: Виталий

MCP2515 CAN Bus Модуль

Сообщение hard3d »

Всем привет. Для одного из моих проектов необходимо читать данные из шины CAN. Очень порадовало, что появился штатный блок на MCP2515. Вопрос в следующем:
Авто Chevrolet Cruze, хочу прочитать статус педали тормоза. В сети нашел ID пакета 10250040
программе поставил блоки таким образом
2019-02-03_02-08-05.png
При чтении COM-порта получаю такие сообщения
2019-02-03_02-10-10.png
Сообщения ни как не похожи на то, что мне нужно. Каким образом вычислить ID из полученного мусора?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07 янв 2018, 13:47

MCP2515 CAN Bus Модуль

Сообщение benic »

Turb0user писал(а): 02 фев 2019, 21:40Я видимо не точно выразился. При подключении ВТ к TX RX (pin 1,0) плата не стартует и не соединяется с CAN машины. Программа CanHacher пишет что интерфейс не доступен, после отключения ВТ все работает.
:umnik:

https://www.drive2.ru/b/508723415402676325/
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

MCP2515 CAN Bus Модуль

Сообщение Turb0user »

этот скетч как раз от туда. я хотел услышать что ВТ наверно надо на 3 и 4 пины подключать. правильно я понимаю?

Код: Выделить всё

const int SS_RX_PIN = 3;
const int SS_TX_PIN = 4;

Код: Выделить всё

SoftwareSerial softwareSerial(SS_RX_PIN, SS_TX_PIN);
Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07 янв 2018, 13:47

MCP2515 CAN Bus Модуль

Сообщение benic »

По всей видимости верно.
Если да, то вместо usb-to-com блютуз.
RX-TX местами попробуй поменять.
На его схеме штатно нарисовано.

Отправлено спустя 21 минуту 36 секунд:
Turb0user писал(а): 02 фев 2019, 11:36... В оригинале же работает отлично связка Arduino Uno и шилд МСР-2515...
Через что ?
Turb0user
Рядовой
Сообщения: 46
Зарегистрирован: 20 мар 2017, 19:33
Имя: Евгений

MCP2515 CAN Bus Модуль

Сообщение Turb0user »

Через USB и CanHackeer на РС
Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07 янв 2018, 13:47

MCP2515 CAN Bus Модуль

Сообщение benic »

Turb0user писал(а): 14 фев 2019, 15:36Через USB и CanHackeer на РС
https://www.mictronics.de/projects/usb-can-bus/
DmitriyL
Рядовой
Сообщения: 32
Зарегистрирован: 07 янв 2017, 11:24
Откуда: Находка

MCP2515 CAN Bus Модуль

Сообщение DmitriyL »

Добрый день. Кто-нибудь пробовал считывать данные о скорости и пройденном пути при помощи блоков FLProg? Пытаюсь разобраться с чтением и записью этих параметров в CAN-протоколе SAE J1939. Сразу возникли вопросы: есть, грубо говоря, адрес и данные под каждые значения. Но для чего служит выход “Size” - размер полученного пакета? Как и зачем его определять, если таблицы содержат как два параметра: адрес и данные?
Ответить

Вернуться в «CAN»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость